1
0
Fork 0
forked from lix-project/lix
lix/src/libexpr
pennae c96460f352 force-inline a few much-used functions
these functions are called a whole lot, and they're all comparatively small.
always inlining them gives ~0.7% performance boost on eval.

before:

  Benchmark 1: nix flakes search --no-eval-cache --offline ../nixpkgs hello
    Time (mean ± σ):      6.935 s ±  0.052 s    [User: 5.852 s, System: 0.853 s]
    Range (min … max):    6.808 s …  7.026 s    20 runs

  Benchmark 2: nix flakes eval -f ../nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix
    Time (mean ± σ):     329.8 ms ±   2.7 ms    [User: 299.0 ms, System: 30.8 ms]
    Range (min … max):   326.6 ms … 336.5 ms    20 runs

  Benchmark 3: nix flakes eval --raw --impure --file expr.nix
    Time (mean ± σ):      2.655 s ±  0.038 s    [User: 2.364 s, System: 0.220 s]
    Range (min … max):    2.574 s …  2.737 s    20 runs

after:

  Benchmark 1: nix flakes search --no-eval-cache --offline ../nixpkgs hello
    Time (mean ± σ):      6.912 s ±  0.036 s    [User: 5.823 s, System: 0.856 s]
    Range (min … max):    6.849 s …  6.980 s    20 runs

  Benchmark 2: nix flakes eval -f ../nixpkgs/pkgs/development/haskell-modules/hackage-packages.nix
    Time (mean ± σ):     325.1 ms ±   2.5 ms    [User: 293.2 ms, System: 31.8 ms]
    Range (min … max):   322.2 ms … 332.8 ms    20 runs

  Benchmark 3: nix flakes eval --raw --impure --file expr.nix
    Time (mean ± σ):      2.636 s ±  0.024 s    [User: 2.352 s, System: 0.226 s]
    Range (min … max):    2.574 s …  2.681 s    20 runs
2022-03-08 23:30:18 +01:00
..
flake Fix segfault in headerCallback() 2022-03-03 11:11:16 +01:00
primops Merge pull request from hercules-ci/fetchTree-reuse-local-paths 2022-03-01 13:15:42 +01:00
attr-path.cc Remove std::string alias (for real this time) 2022-02-25 16:13:02 +01:00
attr-path.hh Remove std::string alias (for real this time) 2022-02-25 16:13:02 +01:00
attr-set.cc Remove EvalState::mkAttrs() 2022-01-04 20:29:17 +01:00
attr-set.hh Remove std::string alias (for real this time) 2022-02-25 16:13:02 +01:00
common-eval-args.cc Remove std::string alias (for real this time) 2022-02-25 16:13:02 +01:00
common-eval-args.hh Remove std::string alias (for real this time) 2022-02-25 16:13:02 +01:00
eval-cache.cc Remove std::string alias (for real this time) 2022-02-25 16:13:02 +01:00
eval-cache.hh libcmd/installables: force re-evaluation of cached failures 2021-04-19 19:51:04 +02:00
eval-inline.hh force-inline a few much-used functions 2022-03-08 23:30:18 +01:00
eval.cc force-inline a few much-used functions 2022-03-08 23:30:18 +01:00
eval.hh force-inline a few much-used functions 2022-03-08 23:30:18 +01:00
fetchurl.nix Move <nix/fetchurl.nix> into the nix binary 2020-12-22 14:43:20 +01:00
function-trace.cc Revert the enum struct change 2020-06-18 22:11:26 +00:00
function-trace.hh Hide FunctionCallTrace constructor/destructor 2020-01-05 16:21:34 +01:00
get-drvs.cc Add EvalState::coerceToStorePath() helper 2022-03-02 23:58:58 +01:00
get-drvs.hh Add EvalState::coerceToStorePath() helper 2022-03-02 23:58:58 +01:00
imported-drv-to-derivation.nix Move some corepkgs into the nix binary 2020-03-11 16:57:48 +01:00
json-to-value.cc return string_views from forceString* 2022-01-27 17:15:43 +01:00
json-to-value.hh return string_views from forceString* 2022-01-27 17:15:43 +01:00
lexer.l remove ExprIndStr 2022-01-19 13:39:42 +01:00
local.mk Merge pull request from Pamplemousse/make 2021-08-30 12:44:29 +02:00
nix-expr.pc.in pkg-config files: Use c++17 2019-03-14 14:11:12 +01:00
nixexpr.cc Remove std::string alias (for real this time) 2022-02-25 16:13:02 +01:00
nixexpr.hh Remove std::string alias (for real this time) 2022-02-25 16:13:02 +01:00
parser.y Remove std::string alias (for real this time) 2022-02-25 16:13:02 +01:00
primops.cc Add EvalState::allowAndSetStorePathString helper 2022-02-28 21:37:49 +01:00
primops.hh libexpr: throw a more helpful eval-error if a builtin is not available due to a missing feature-flag 2021-09-29 11:57:15 +02:00
symbol-table.hh Remove std::string alias 2022-02-21 16:37:25 +01:00
value-to-json.cc Support range-based for loop over list values 2021-11-25 16:31:39 +01:00
value-to-json.hh toJSON: report error position for fancier output 2021-10-25 21:17:52 +00:00
value-to-xml.cc Remove std::string alias (for real this time) 2022-02-25 16:13:02 +01:00
value-to-xml.hh toXML: display errors position 2021-11-13 20:33:34 -05:00
value.hh Remove std::string alias 2022-02-21 16:37:25 +01:00