Skip to content

crypto: recent large performance regressions #31739

@mscdex

Description

@mscdex
  • Version: master
  • Platform: linux
  • Subsystem: crypto

While working on a system that automatically and regularly runs benchmarks on master and compares the results between builds, I found some large crypto performance regressions between f368210 and 93c4c1a. Here are the crypto benchmarks that showed a greater than 10% regression (numeric values below are the % change with "***" confidence):

'aes-gcm-throughput': {
   'cipher="aes-128-gcm" len=1024 n=500': -45.12,
   'cipher="aes-128-gcm" len=4096 n=500': -29.89,
   'cipher="aes-128-gcm" len=16384 n=500': -13.18,
   'cipher="aes-192-gcm" len=1024 n=500': -44.51,
   'cipher="aes-192-gcm" len=4096 n=500': -30.73,
   'cipher="aes-192-gcm" len=16384 n=500': -10.44,
   'cipher="aes-256-gcm" len=1024 n=500': -44.13,
   'cipher="aes-256-gcm" len=4096 n=500': -27.38,
   'cipher="aes-256-gcm" len=16384 n=500': -11.74 },
'hash-stream-creation': {
   'algo="sha256" api="legacy" len=2 out="hex" type="asc" writes=500': -68.41,
   'algo="sha256" api="legacy" len=1024 out="hex" type="asc" writes=500': -60.25,
   'algo="sha256" api="legacy" len=2 out="binary" type="asc" writes=500': -68.58,
   'algo="sha256" api="legacy" len=1024 out="binary" type="asc" writes=500': -60.51,
   'algo="sha256" api="legacy" len=2 out="buffer" type="asc" writes=500': -64.06,
   'algo="sha256" api="legacy" len=1024 out="buffer" type="asc" writes=500': -57.33,
   'algo="sha256" api="legacy" len=2 out="hex" type="utf" writes=500': -69.56,
   'algo="sha256" api="legacy" len=1024 out="hex" type="utf" writes=500': -58.65,
   'algo="sha256" api="legacy" len=2 out="binary" type="utf" writes=500': -70.01,
   'algo="sha256" api="legacy" len=1024 out="binary" type="utf" writes=500': -58.88,
   'algo="sha256" api="legacy" len=2 out="buffer" type="utf" writes=500': -65.12,
   'algo="sha256" api="legacy" len=1024 out="buffer" type="utf" writes=500': -56.01,
   'algo="sha256" api="legacy" len=2 out="hex" type="buf" writes=500': -67.46,
   'algo="sha256" api="legacy" len=1024 out="hex" type="buf" writes=500': -58.93,
   'algo="sha256" api="legacy" len=2 out="binary" type="buf" writes=500': -67.74,
   'algo="sha256" api="legacy" len=1024 out="binary" type="buf" writes=500': -58.98,
   'algo="sha256" api="legacy" len=2 out="buffer" type="buf" writes=500': -62.85,
   'algo="sha256" api="legacy" len=1024 out="buffer" type="buf" writes=500': -55.95,
   'algo="md5" api="legacy" len=2 out="hex" type="asc" writes=500': -68.92,
   'algo="md5" api="legacy" len=1024 out="hex" type="asc" writes=500': -65.12,
   'algo="md5" api="legacy" len=102400 out="hex" type="asc" writes=500': -11.61,
   'algo="md5" api="legacy" len=2 out="binary" type="asc" writes=500': -69.65,
   'algo="md5" api="legacy" len=1024 out="binary" type="asc" writes=500': -65.85,
   'algo="md5" api="legacy" len=102400 out="binary" type="asc" writes=500': -11.46,
   'algo="md5" api="legacy" len=2 out="buffer" type="asc" writes=500': -64.73,
   'algo="md5" api="legacy" len=1024 out="buffer" type="asc" writes=500': -61.71,
   'algo="md5" api="legacy" len=102400 out="buffer" type="asc" writes=500': -11.4,
   'algo="md5" api="legacy" len=2 out="hex" type="utf" writes=500': -70.09,
   'algo="md5" api="legacy" len=1024 out="hex" type="utf" writes=500': -63.91,
   'algo="md5" api="legacy" len=2 out="binary" type="utf" writes=500': -70.61,
   'algo="md5" api="legacy" len=1024 out="binary" type="utf" writes=500': -63.95,
   'algo="md5" api="legacy" len=2 out="buffer" type="utf" writes=500': -65.73,
   'algo="md5" api="legacy" len=1024 out="buffer" type="utf" writes=500': -60.23,
   'algo="md5" api="legacy" len=2 out="hex" type="buf" writes=500': -67.93,
   'algo="md5" api="legacy" len=1024 out="hex" type="buf" writes=500': -63.9,
   'algo="md5" api="legacy" len=102400 out="hex" type="buf" writes=500': -11.59,
   'algo="md5" api="legacy" len=2 out="binary" type="buf" writes=500': -68.48,
   'algo="md5" api="legacy" len=1024 out="binary" type="buf" writes=500': -64.36,
   'algo="md5" api="legacy" len=102400 out="binary" type="buf" writes=500': -11.55,
   'algo="md5" api="legacy" len=2 out="buffer" type="buf" writes=500': -63.59,
   'algo="md5" api="legacy" len=1024 out="buffer" type="buf" writes=500': -60.13,
   'algo="md5" api="legacy" len=102400 out="buffer" type="buf" writes=500': -11.73 },
'hash-stream-throughput': {
   'algo="sha1" api="legacy" len=2 type="asc" writes=500': -35.71,
   'algo="sha1" api="legacy" len=1024 type="asc" writes=500': -24.66,
   'algo="sha1" api="legacy" len=2 type="utf" writes=500': -41.67,
   'algo="sha1" api="legacy" len=1024 type="utf" writes=500': -21.52,
   'algo="sha1" api="legacy" len=2 type="buf" writes=500': -33.78,
   'algo="sha1" api="legacy" len=1024 type="buf" writes=500': -22.71,
   'algo="sha256" api="legacy" len=2 type="asc" writes=500': -36.48,
   'algo="sha256" api="legacy" len=1024 type="asc" writes=500': -18.78,
   'algo="sha256" api="legacy" len=2 type="utf" writes=500': -41.03,
   'algo="sha256" api="legacy" len=1024 type="utf" writes=500': -16.56,
   'algo="sha256" api="legacy" len=2 type="buf" writes=500': -33.76,
   'algo="sha256" api="legacy" len=1024 type="buf" writes=500': -17.47,
   'algo="sha512" api="legacy" len=2 type="asc" writes=500': -36.95,
   'algo="sha512" api="legacy" len=1024 type="asc" writes=500': -20.98,
   'algo="sha512" api="legacy" len=2 type="utf" writes=500': -42.2,
   'algo="sha512" api="legacy" len=1024 type="utf" writes=500': -18.5,
   'algo="sha512" api="legacy" len=2 type="buf" writes=500': -34.29,
   'algo="sha512" api="legacy" len=1024 type="buf" writes=500': -19.05 },

The culprits seem to be at least e559842 and possibly also d016b9d.

/cc @ronag

Metadata

Metadata

Assignees

No one assigned

    Labels

    cryptoIssues and PRs related to the crypto subsystem.performanceIssues and PRs related to the performance of Node.js.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions