feat(tvix/eval): Store hash in key of interner

Rather than storing the leaked allocation for the string as the key in
the interner, store the hash (using NoHashHashBuilder). I thought this
would improve performance, but it doesn't:

hello outpath           time:   [736.85 ms 748.42 ms 760.42 ms]
                        change: [-2.0754% +0.4798% +2.7096%] (p = 0.72 > 0.05)
                        No change in performance detected.

but it at least doesn't *hurt* performance, and it *does* avoid an
`unsafe`, so it's probably net good.

Change-Id: Ie413955bdb6f04b1f468f511e5ebce56e329fa37
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12049
Tested-by: BuildkiteCI
Reviewed-by: flokli <flokli@flokli.de>
Autosubmit: aspen <root@gws.fyi>
This commit is contained in:
Aspen Smith 2024-07-28 12:50:09 -04:00 committed by clbot
parent a6d6fc418d
commit d378111d77
6 changed files with 69 additions and 7 deletions

View file

@ -7525,6 +7525,19 @@ rec {
};
resolvedDefaultFeatures = [ "async" "default" "pin-project-lite" "tokio" "wire" ];
};
"nohash-hasher" = rec {
crateName = "nohash-hasher";
version = "0.2.0";
edition = "2018";
sha256 = "0lf4p6k01w4wm7zn4grnihzj8s7zd5qczjmzng7wviwxawih5x9b";
authors = [
"Parity Technologies <admin@parity.io>"
];
features = {
"default" = [ "std" ];
};
resolvedDefaultFeatures = [ "default" "std" ];
};
"nom" = rec {
crateName = "nom";
version = "7.1.3";
@ -16042,6 +16055,10 @@ rec {
name = "md-5";
packageId = "md-5";
}
{
name = "nohash-hasher";
packageId = "nohash-hasher";
}
{
name = "os_str_bytes";
packageId = "os_str_bytes";