From: Ben Noordhuis Date: Wed, 27 Nov 2013 02:48:44 +0000 (+0100) Subject: stream_wrap: don't call Number::New() X-Git-Tag: v0.10.23~25 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=658aeb2ca0f7c99c002db149d6e91154ff0e2c2d;p=platform%2Fupstream%2Fnodejs.git stream_wrap: don't call Number::New() Replace call to Number::New() with a call to Integer::NewFromUnsigned(). Profiling a Real World(TM) application with perf(1) suggests that the conversion of its argument from integer to double is disproportionally costly: over 60% of CPU cycles accountable to WriteStringImpl() are attributable to the conversion. After changing it to Integer::NewFromUnsigned(), WriteStringImpl() has dropped from the 'most costly functions' top ten altogether. --- diff --git a/src/stream_wrap.cc b/src/stream_wrap.cc index a1e7ded17..f01884666 100644 --- a/src/stream_wrap.cc +++ b/src/stream_wrap.cc @@ -412,7 +412,7 @@ Handle StreamWrap::WriteStringImpl(const Arguments& args) { } req_wrap->Dispatched(); - req_wrap->object_->Set(bytes_sym, Number::New((uint32_t) data_size)); + req_wrap->object_->Set(bytes_sym, Integer::NewFromUnsigned(data_size)); wrap->UpdateWriteQueueSize();