Skip to content

stream performance regression 12.6.0 vs 10.16.0 Β #28586

@ledbit

Description

@ledbit

Seeing major performance regression, ~50% drop in throughput, in one of our benchmarks. I will work on creating a minimal repro. In the meantime though, here are some snippets of the profile outputs - it is pretty strange that 12.6.0 is spending ~70% of the time in shared library land (maybe there's an issue with the profile too?)

#uname -a
Linux ledion-vm 4.10.0-33-generic #37~16.04.1-Ubuntu SMP Fri Aug 11 14:07:24 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

10.16.0

 [Shared libraries]:
   ticks  total  nonlib   name
   1021    2.5%          /lib/x86_64-linux-gnu/libc-2.23.so
    724    1.8%          /lib/x86_64-linux-gnu/libpthread-2.23.so
     17    0.0%          [vdso]
      6    0.0%          /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21


 [Summary]:
   ticks  total  nonlib   name
  26260   63.9%   66.8%  JavaScript
  11860   28.9%   30.2%  C++
    947    2.3%    2.4%  GC
   1768    4.3%          Shared libraries
   1178    2.9%          Unaccounted


 [Bottom up (heavy) profile]:
   ticks parent  name
    3566    8.7%  Builtin: LoadIC
     858   24.1%    LazyCompile: *onwrite _stream_writable.js:450:17
     358   41.7%      LazyCompile: *afterTransform _stream_transform.js:78:24
     349   97.5%        LazyCompile: *Transform._read _stream_transform.js:185:37
     349  100.0%          LazyCompile: *Readable.read _stream_readable.js:377:35
     348   99.7%            LazyCompile: *pipeOnDrainFunctionResult _stream_reada

12.6.0

 [Shared libraries]:
   ticks  total  nonlib   name
  28413   64.4%          /usr/local/bin/node
   1845    4.2%          /lib/x86_64-linux-gnu/libc-2.23.so
    455    1.0%          /lib/x86_64-linux-gnu/libpthread-2.23.so
      7    0.0%          [vdso]
      6    0.0%          /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21
      4    0.0%          /lib/x86_64-linux-gnu/libm-2.23.so

 [Summary]:
   ticks  total  nonlib   name
   8697   19.7%   65.1%  JavaScript
   4515   10.2%   33.8%  C++
   1969    4.5%   14.7%  GC
  30730   69.7%          Shared libraries
    154    0.3%          Unaccounted


   ticks parent  name
  28413   64.4%  /usr/local/bin/node
   6958   24.5%    LazyCompile: *Readable.read _stream_readable.js:394:35
   6901   99.2%      LazyCompile: *pipeOnDrainFunctionResult _stream_readable.js
   6901  100.0%        LazyCompile: *emit events.js:153:44
   6901  100.0%          LazyCompile: *EventEmitter.emit domain.js:460:39
   6901  100.0%            LazyCompile: *onwrite _stream_writable.js:445:17
   3237   11.4%    LazyCompile: *ondata _stream_readable.js:711:18
   3237  100.0%      LazyCompile: *emit events.js:153:44
   3237  100.0%        LazyCompile: *Readable.read _stream_readable.js:394:35
   3214   99.3%          LazyCompile: *pipeOnDrainFunctionResult _stream_readabl
   3214  100.0%            LazyCompile: *emit events.js:153:44

Metadata

Metadata

Assignees

No one assigned

    Labels

    confirmed-bugIssues with confirmed bugs.performanceIssues and PRs related to the performance of Node.js.streamIssues and PRs related to the stream subsystem.

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions