Unknown and ___channel_get_opt takes most of the ticks in node.js profiling results

I just did profiling for my node.js app by following the guide given here: https://nodejs.org/en/docs/guides/simple-profiling/ . My node.js app provides an API that has multiple calls for cloud computing. The profiling result shows ___channel_get_opt and the unknown seems like most ticks are listed below.

What is the potential bottleneck?

Thank.

[C++]:

   ticks  total  nonlib   name
  15622   15.9%   16.0%  ___channel_get_opt
   1968    2.0%    2.0%  v8::internal::IncrementalMarking::Step(long, v8::internal::IncrementalMarking::CompletionAction, v8::internal::IncrementalMarking::ForceMarkingAction, v8::internal::IncrementalMarking::ForceCompletionAction)
   1500    1.5%    1.5%  void node::StreamBase::JSMethod<node::StreamWrap, &(int node::StreamBase::WriteString<(node::encoding)1>(v8::FunctionCallbackInfo<v8::Value> const&))>(v8::FunctionCallbackInfo<v8::Value> const&)
   1278    1.3%    1.3%  v8::internal::Context::RemoveOptimizedFunction(v8::internal::JSFunction*)
   1240    1.3%    1.3%  node::TCPWrap::Connect(v8::FunctionCallbackInfo<v8::Value> const&)
   1171    1.2%    1.2%  _szone_malloc_should_clear
 [Summary]:
   ticks  total  nonlib   name
  18462   18.8%   19.0%  JavaScript
  67692   68.8%   69.5%  C++
   6486    6.6%    6.7%  GC
   1021    1.0%          Shared libraries
  11182   11.4%          Unaccounted

 [C++ entry points]:

   ticks    cpp   total   name
   7122   19.9%    7.2%  v8::internal::Builtin_HandleApiCall(int, v8::internal::Object**, v8::internal::Isolate*)
   3957   11.1%    4.0%  v8::internal::Runtime_KeyedStoreIC_Miss(int, v8::internal::Object**, v8::internal::Isolate*)
   1480    4.1%    1.5%  v8::internal::Builtin_ObjectKeys(int, v8::internal::Object**, v8::internal::Isolate*)
   1289    3.6%    1.3%  v8::internal::Runtime_KeyedLoadIC_Miss(int, v8::internal::Object**, v8::internal::Isolate*)
   1285    3.6%    1.3%  v8::internal::Runtime_NotifyDeoptimized(int, v8::internal::Object**, v8::internal::Isolate*)
   1139    3.2%    1.2%  v8::internal::Runtime_KeyedGetProperty(int, v8::internal::Object**, v8::internal::Isolate*)
    998    2.8%    1.0%  v8::internal::Runtime_DebugPromiseEvent(int, v8::internal::Object**, v8::internal::Isolate*)
    961    2.7%    1.0%  v8::internal::Runtime_AllocateInTargetSpace(int, v8::internal::Object**, v8::internal::Isolate*)
    928    2.6%    0.9%  v8::internal::Runtime_DebugAsyncTaskEvent(int, v8::internal::Object**, v8::internal::Isolate*)
    895    2.5%    0.9%  v8::internal::Runtime_CompileOptimized_Concurrent(int, v8::internal::Object**, v8::internal::Isolate*)
    862    2.4%    0.9%  v8::internal::Runtime_ParseJson(int, v8::internal::Object**, v8::internal::Isolate*)
    721    2.0%    0.7%  v8::internal::Runtime_StoreIC_Miss(int, v8::internal::Object**, v8::internal::Isolate*)
    699    2.0%    0.7%  v8::internal::Runtime_SetProperty(int, v8::internal::Object**, v8::internal::Isolate*)

[Bottom up (heavy) profile]:

  Note: percentage shows a share of a particular caller in the total
  amount of its parent calls.
  Callers occupying less than 2.0% are not shown.

   ticks parent  name

  15622   15.9%  ___channel_get_opt

  11182   11.4%  UNKNOWN
   1675   15.0%    v8::internal::Builtin_HandleApiCall(int, v8::internal::Object**, v8::internal::Isolate*)
   1337   79.8%      LazyCompile: *Socket._writeGeneric net.js:665:42
   1077   80.6%        LazyCompile: *Socket._writev net.js:728:36
    874   81.2%          LazyCompile: *clearBuffer _stream_writable.js:403:21
    791   90.5%            LazyCompile: *Writable.uncork _stream_writable.js:259:37
     52    5.9%            LazyCompile: ~end /Users/winattack/Documents/work/engage-service/node_modules/compression/index.js:91:28
     24    2.7%            Handler: uri {22}
    203   18.8%          LazyCompile: ~doWrite _stream_writable.js:326:17
    203  100.0%            LazyCompile: ~clearBuffer _stream_writable.js:403:21
    198   14.8%        LazyCompile: *clearBuffer _stream_writable.js:403:21
    160   80.8%          LazyCompile: *_flushOutput _http_outgoing.js:667:63
    160  100.0%            LazyCompile: *OutgoingMessage._flush _http_outgoing.js:649:44
     38   19.2%          LazyCompile: *OutgoingMessage.end _http_outgoing.js:548:41
     38  100.0%            LazyCompile: ~end /Users/winattack/Documents/work/engage-service/node_modules/compression/index.js:91:28
     52    3.9%        Handler: body {10}
     52  100.0%          LazyCompile: ~clearBuffer _stream_writable.js:403:21
     52  100.0%            LazyCompile: *_flushOutput _http_outgoing.js:667:63
    181   10.8%      LazyCompile: *TLSSocket._start _tls_wrap.js:613:38
    181  100.0%        LazyCompile: ~<anonymous> _tls_wrap.js:1064:41
    181  100.0%          LazyCompile: ~g events.js:287:13
    173   95.6%            LazyCompile: *emit events.js:136:44
      8    4.4%            LazyCompile: ~emitNone events.js:84:18
    157    9.4%      LazyCompile: *createWriteReq net.js:737:24
    121   77.1%        LazyCompile: *Socket._writeGeneric net.js:665:42
    121  100.0%          LazyCompile: ~Socket._write net.js:733:35
    100   82.6%            LazyCompile: *clearBuffer _stream_writable.js:403:21
     12    9.9%            LazyCompile: ~doWrite _stream_writable.js:326:17
      9    7.4%            LazyCompile: ~controller /Users/winattack/Documents/work/engage-service/server_build/idea_garage_server.js:3637:29
     36   22.9%        LazyCompile: ~Socket._writeGeneric net.js:665:42
     36  100.0%          LazyCompile: ~Socket._write net.js:733:35
     18   50.0%            LazyCompile: ~doWrite _stream_writable.js:326:17
     10   27.8%            LazyCompile: *clearBuffer _stream_writable.js:403:21
      8   22.2%            Handler: getFieldInfo

      

+3


source to share





All Articles