Hi Yang, I have spent quite some time to create a repro that executes the exact same code in the exact same state, once with the code loaded from cached data, and once with the code running from a startup snapshot.
In this standalone repro, the total time is indeed better for starting from a startup snapshot (column 2), but note that executing the startup code (blue) is 27% slower when the same code executes with the same state from a startup snapshot: <https://github.com/alexandrudima/v8-repro/raw/master/chart2.png> The repro is at https://github.com/alexandrudima/v8-repro and I would appreciate if you can please take a look. The README there contains all the steps needed to set it up. Here are some specific answers in blue: > When you say classes run slower, do you mean they take longer to execute, or do you mean they spend time on compilation too? I mean the code takes longer to execute, I use Date.now() before and after executing the code. > Does your non-snapshotted version use proxies too? Proxies are indeed significantly slower. This makes a lot of sense. I have removed the usage of proxies, such that both versions have the exact same code. > You should no longer need --ignition --turbo. This is the default with the newest V8. > What version of V8 are you using? The one that comes with Electron 1.7.9, v8 version 5.8.283.38 > It's not expected that code in the snapshot is slower than code at runtime. But I expect that there is no code embedded in the snapshot in the first place. I'm sorry, I don't understand what you mean. The startup snapshot contains the source code inside of it (see index2.html in the repro where no code loading is needed, as the code is part of the startup snapshot). > Do you have a small repro I can play with? E.g. source to include in the snapshot and the code to run. Ideally pure JS that I can run in Node. See https://github.com/alexandrudima/v8-repro I'm sorry, the repro is not small and it involves running Electron, as the source code which reproduces needs electron to execute. I have tried to load only a subset of the code (some editor text buffer and stress it out by doing large text operations), but I could not reproduce the same slowdown in that case. If you can guide me through it, I can try to reduce the repro, but I don't know what I'm looking for. Everything is slower, there is not one particular section of code that is slower. P.S. If you uncomment the link tag in the html files, this is what the code is doing: <https://github.com/alexandrudima/v8-repro/raw/master/explanation.png> Thank you, Alex > -- -- v8-users mailing list v8-users@googlegroups.com http://groups.google.com/group/v8-users --- You received this message because you are subscribed to the Google Groups "v8-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to v8-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.