!OqhvaDMJdKYUicLDiE:nixos.org

Nixpkgs Stdenv

187 Members
59 Servers

You have reached the beginning of time (for this room).


SenderMessageTime
24 May 2025
@reckenrode:matrix.orgRandy EckenrodeOnly 1%?17:59:21
@rosscomputerguy:matrix.orgTristan Ross Would be hard to say if that's truly the performance impact 18:00:28
@rosscomputerguy:matrix.orgTristan RossBest thing is to compare the variants stdenv with the cross stdenv that matches along and see how the evaluation compares.18:00:58
25 May 2025
@rosscomputerguy:matrix.orgTristan Ross So I have a comparison between pkgsMusl.stdenv and crossStdenv.configs.aarch64-unknown-linux-musl 01:37:56
@rosscomputerguy:matrix.orgTristan Ross

crossStdenv.configs.aarch64-unknown-linux-musl

{
  "cpuTime": 0.43762001395225525,
  "envs": {
    "bytes": 5428488,
    "elements": 369695,
    "number": 308866
  },
  "gc": {
    "cycles": 1,
    "heapSize": 402915328,
    "totalBytes": 79396896
  },
  "list": {
    "bytes": 717400,
    "concats": 4609,
    "elements": 89675
  },
  "nrAvoided": 294217,
  "nrExprs": 135112,
  "nrFunctionCalls": 295668,
  "nrLookups": 152167,
  "nrOpUpdateValuesCopied": 2227726,
  "nrOpUpdates": 12343,
  "nrPrimOpCalls": 114176,
  "nrThunks": 263414,
  "sets": {
    "bytes": 42449136,
    "elements": 2626304,
    "number": 26767
  },
  "sizes": {
    "Attr": 16,
    "Bindings": 16,
    "Env": 8,
    "Value": 24
  },
  "symbols": {
    "bytes": 321885,
    "number": 32150
  },
  "time": {
    "cpu": 0.43762001395225525,
    "gc": 0.043000000000000003,
    "gcFraction": 0.09825876017793679
  },
  "values": {
    "bytes": 20363664,
    "number": 848486
  }
}

pkgsMusl.stdenv

{
  "cpuTime": 0.5026220083236694,
  "envs": {
    "bytes": 4656672,
    "elements": 324861,
    "number": 257223
  },
  "gc": {
    "cycles": 1,
    "heapSize": 402915328,
    "totalBytes": 125050816
  },
  "list": {
    "bytes": 601264,
    "concats": 4389,
    "elements": 75158
  },
  "nrAvoided": 262676,
  "nrExprs": 131023,
  "nrFunctionCalls": 242926,
  "nrLookups": 125858,
  "nrOpUpdateValuesCopied": 3930750,
  "nrOpUpdates": 13551,
  "nrPrimOpCalls": 104327,
  "nrThunks": 322854,
  "sets": {
    "bytes": 73163712,
    "elements": 4542912,
    "number": 29820
  },
  "sizes": {
    "Attr": 16,
    "Bindings": 16,
    "Env": 8,
    "Value": 24
  },
  "symbols": {
    "bytes": 320546,
    "number": 32025
  },
  "time": {
    "cpu": 0.5026220083236694,
    "gc": 0.07200000000000001,
    "gcFraction": 0.14324880090335151
  },
  "values": {
    "bytes": 32448624,
    "number": 1352026
  }
}
01:38:49
@emilazy:matrix.orgemilylooks still expensive enough that we'd want to avoid it wherever possible?02:29:09
@emilazy:matrix.orgemilyit's not clear to me if Firefox could just use an unwrapped compiler though02:29:22
@rosscomputerguy:matrix.orgTristan Ross

crossStdenv.predicated.useLLVM.configs.aarch64-unknown-linux-gnu

{
  "cpuTime": 0.8687459826469421,
  "envs": {
    "bytes": 12327288,
    "elements": 839812,
    "number": 701099
  },
  "gc": {
    "cycles": 1,
    "heapSize": 402915328,
    "totalBytes": 124386272
  },
  "list": {
    "bytes": 1597240,
    "concats": 14954,
    "elements": 199655
  },
  "nrAvoided": 651102,
  "nrExprs": 190283,
  "nrFunctionCalls": 673020,
  "nrLookups": 340854,
  "nrOpUpdateValuesCopied": 2985262,
  "nrOpUpdates": 30307,
  "nrPrimOpCalls": 244291,
  "nrThunks": 553576,
  "sets": {
    "bytes": 58833760,
    "elements": 3619956,
    "number": 57154
  },
  "sizes": {
    "Attr": 16,
    "Bindings": 16,
    "Env": 8,
    "Value": 24
  },
  "symbols": {
    "bytes": 445341,
    "number": 42001
  },
  "time": {
    "cpu": 0.8687459826469421,
    "gc": 0.061,
    "gcFraction": 0.07021615203806976
  },
  "values": {
    "bytes": 31742712,
    "number": 1322613
  }
}

pkgsLLVM.stdenv

{
  "cpuTime": 1.1511069536209106,
  "envs": {
    "bytes": 10916216,
    "elements": 771025,
    "number": 593502
  },
  "gc": {
    "cycles": 1,
    "heapSize": 402915328,
    "totalBytes": 258382960
  },
  "list": {
    "bytes": 3100896,
    "concats": 16000,
    "elements": 387612
  },
  "nrAvoided": 624277,
  "nrExprs": 189716,
  "nrFunctionCalls": 558370,
  "nrLookups": 220405,
  "nrOpUpdateValuesCopied": 7006441,
  "nrOpUpdates": 39748,
  "nrPrimOpCalls": 191955,
  "nrThunks": 873127,
  "sets": {
    "bytes": 148522576,
    "elements": 9080341,
    "number": 202320
  },
  "sizes": {
    "Attr": 16,
    "Bindings": 16,
    "Env": 8,
    "Value": 24
  },
  "symbols": {
    "bytes": 444992,
    "number": 41976
  },
  "time": {
    "cpu": 1.1511069536209106,
    "gc": 0.202,
    "gcFraction": 0.17548325927889744
  },
  "values": {
    "bytes": 66434280,
    "number": 2768095
  }
}
02:33:13
@rosscomputerguy:matrix.orgTristan RossYeah, ideally no cross when possible.02:33:26
@rosscomputerguy:matrix.orgTristan Ross From what I was able to gleam when trying to test the wasm cross stdenv, it looks like it's only necessary for sandboxing things in a way? We could provide an option but idk if it's worth it. 02:34:48
@rosscomputerguy:matrix.orgTristan Ross

crossStdenv.predicated.useLLVM.configs.wasm32-unknown-wasi

{
  "cpuTime": 0.8086940050125122,
  "envs": {
    "bytes": 9276688,
    "elements": 643991,
    "number": 515595
  },
  "gc": {
    "cycles": 1,
    "heapSize": 402915328,
    "totalBytes": 113596128
  },
  "list": {
    "bytes": 1192696,
    "concats": 14033,
    "elements": 149087
  },
  "nrAvoided": 507605,
  "nrExprs": 191950,
  "nrFunctionCalls": 489091,
  "nrLookups": 246990,
  "nrOpUpdateValuesCopied": 2948940,
  "nrOpUpdates": 28801,
  "nrPrimOpCalls": 197474,
  "nrThunks": 490984,
  "sets": {
    "bytes": 57271296,
    "elements": 3526449,
    "number": 53007
  },
  "sizes": {
    "Attr": 16,
    "Bindings": 16,
    "Env": 8,
    "Value": 24
  },
  "symbols": {
    "bytes": 446123,
    "number": 42055
  },
  "time": {
    "cpu": 0.8086940050125122,
    "gc": 0.101,
    "gcFraction": 0.12489272750134622
  },
  "values": {
    "bytes": 29123448,
    "number": 1213477
  }
}

pkgsCross.wasi32.stdenv

{
  "cpuTime": 1.1445599794387817,
  "envs": {
    "bytes": 11093168,
    "elements": 793274,
    "number": 593372
  },
  "gc": {
    "cycles": 1,
    "heapSize": 402915328,
    "totalBytes": 257411904
  },
  "list": {
    "bytes": 3087112,
    "concats": 17218,
    "elements": 385889
  },
  "nrAvoided": 634315,
  "nrExprs": 191436,
  "nrFunctionCalls": 554713,
  "nrLookups": 216783,
  "nrOpUpdateValuesCopied": 6831370,
  "nrOpUpdates": 46625,
  "nrPrimOpCalls": 194292,
  "nrThunks": 908524,
  "sets": {
    "bytes": 146253904,
    "elements": 8929195,
    "number": 211674
  },
  "sizes": {
    "Attr": 16,
    "Bindings": 16,
    "Env": 8,
    "Value": 24
  },
  "symbols": {
    "bytes": 446471,
    "number": 42080
  },
  "time": {
    "cpu": 1.1445599794387817,
    "gc": 0.20500000000000002,
    "gcFraction": 0.17910813210550902
  },
  "values": {
    "bytes": 67181760,
    "number": 2799240
  }
}
02:36:27
@emilazy:matrix.orgemilyRLBox is important, I mean what's the reason it can't use an unwrappd multi-target Clang?02:50:40
@emilazy:matrix.orgemily it uses libcxx for WASM, I guess? but does it use anything else from pkgsCross? 02:50:52
@rosscomputerguy:matrix.orgTristan RossYeah, idk02:51:04
@rosscomputerguy:matrix.orgTristan RossI think it needs wasilibc02:52:01
@rosscomputerguy:matrix.orgTristan RossOk yeah, it needs a wasm toolchain. It looks like upstream uses the wasi-sdk.02:54:37
@reckenrode:matrix.orgRandy Eckenrode How does crossStdenv handle cross-compiled dependencies? DXVK needs SPIRV and Vulkan headers and windows.pthreads. 13:39:07

Show newer messages


Back to Room ListRoom Version: 9