Skip to content

src: use libuv to get env vars

Rodrigo Muino Tomonari requested to merge github/fork/addaleax/env-var-os into master

benchmark: improve process.env benchmarks

Benchmark different types of operations and make results comparable by normalizing process.env for enumeartion.

src: use libuv to get env vars

This allows us to remove OS-dependent code.

                                                       confidence improvement accuracy (*)    (**)   (***)
 process/bench-env.js operation='delete' n=1000000                    3.57 %      ±10.86% ±14.46% ±18.85%
 process/bench-env.js operation='enumerate' n=1000000        ***    -14.06 %       ±7.46%  ±9.94% ±12.96%
 process/bench-env.js operation='get' n=1000000                      -7.97 %      ±11.80% ±15.70% ±20.45%
 process/bench-env.js operation='query' n=1000000                    -1.32 %       ±8.38% ±11.17% ±14.58%
 process/bench-env.js operation='set' n=1000000                      -0.98 %       ±9.63% ±12.81% ±16.68%

The drop in enumeration performance is likely due to the large number of extra allocations that libuv performs. However, enumerating process.env should generally not be a hot path in most applications.

Checklist
  • make -j4 test (UNIX), or vcbuild test (Windows) passes
  • tests and/or benchmarks are included
  • commit message follows commit guidelines

Merge request reports

Loading