Marty suggested I try configuring with --enable-more-deterministic, but that didn't help. I still get huge variations.
Cachegrind causes a big slow-down, e.g. 50x or more. Could that be affecting something? It hasn't caused problems in the past, though. One interest data point: my Cachegrind script does two runs for each Sunspider test, so I can compare two different shells. If I tell it to run the same shell both times, the before/after results are always the same for that invocation of the script. But subsequent invocations will differ. E.g. I'll get 200M/200M, then 118M/118M, then 228M/228M, etc. I'm not sure what to make of that. Another data point: timed, native runs of Sunspider only show ~1% variation, as you'd expect. Nick On Sun, Feb 9, 2014 at 3:56 PM, Nicholas Nethercote <[email protected]> wrote: > Hi, > > For a long time I've had Cachegrind set up to run SunSpider in the > shell. It's really useful being able to see instruction counts at the > level of source code lines when optimizing. > > I just tried it today for the first time in a while, and I'm getting > hugely variable results. For example, I ran 3d-cube several times, and > got the following total instruction counts: > > 119,082,296 > 88,322,419 > 47,020,727 > 57,980,873 > > I've never seen variation like this before. Normally the counts are > identical or almost identical between runs. > > Most of the variation is in generated code, which Cachegrind lumps > into a single bucket -- I've seen it as low as 58M and as high as > 119M. The following functions near the top of the profiles also varied > quite a bit. > - DoSetElemFallback() > - _ZL23DefinePropertyOrElementILN2j > s13ExecutionModeE0EEbNS0_19ExecutionModeTraitsIXT_EE20ExclusiveContextTypeEN2JS6 > HandleIP8JSObjectEENS6_I4jsidEEPFbP9JSContextS9_SB_NS5_13MutableHandleINS5_5Valu > eEEEEPFbSD_S9_SB_bSG_EjjiNS6_ISF_EEbb (not sure why that wasn't demangled) > - Shape::search() > - TypeMonitorResult() > - DefineNativeProperty() > - ensureDenseElementsNoPackedCheck() > > In contrast, functions in the front-end such as getTokenInternal() and > Fold() and NameResolver::resolve() gave identical results for each > run. > > Has anyone else seen anything resembling this? I get it with both GCC > and clang builds. > > Nick _______________________________________________ dev-tech-js-engine-internals mailing list [email protected] https://lists.mozilla.org/listinfo/dev-tech-js-engine-internals

