From 658aeb2ca0f7c99c002db149d6e91154ff0e2c2d Mon Sep 17 00:00:00 2001 From: Ben Noordhuis Date: Wed, 27 Nov 2013 03:48:44 +0100 Subject: [PATCH] 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. --- src/stream_wrap.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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(); -- 2.34.1