Comment #10 on issue 2935 by [email protected]: Poor performance in
Ember app Discourse
http://code.google.com/p/v8/issues/detail?id=2935
I ran a trace with the simplified example in #8 (attached). From this
trace, it looks like the recompile (sync/async) is a reasonable overhead
(16% or so), but I'm not sure this is the cause of the ~3 second pause in
rendering the page - code execution is taking a much larger amount (67.5%)
of the trace time. Running with --nouse-osr or --concurrent-osr didn't
seem to make much impact on the trace or time taken to render.
In any case, after using --trace-opt, most functions were in the sub-ms
range to compile, with only a couple reaching tens of ms. One of the
longest functions to compile is the "get" function. --hydrogen-stats
results for this below:
I/v8 (20623): [marking
I/v8 (20623): 0x2aaa4611 <JS Function get (SharedFunctionInfo
0x2aa43b99)>
I/v8 (20623): for recompilation, reason: hot and stable
I/v8 (20623): , ICs with typeinfo: 28/29 (96%)
I/v8 (20623): ]
I/v8 (20623): [optimizing
I/v8 (20623): 0x2aaa4611 <JS Function get (SharedFunctionInfo
0x2aa43b99)>
I/v8 (20623): - took 15.839, 71.991, 6.440 ms]
I/v8 (20623): Timing results:
I/v8 (20623): H_Block building
I/v8 (20623): 21.904 ms / 14.2 %
I/v8 (20623): 1024364 bytes / 28.7 %
I/v8 (20623): H_Block ordering
I/v8 (20623): 0.947 ms / 0.6 %
I/v8 (20623): 39052 bytes / 1.1 %
I/v8 (20623): H_Assign dominators
I/v8 (20623): 0.307 ms / 0.2 %
I/v8 (20623): 72 bytes / 0.0 %
I/v8 (20623): H_Environment liveness analysis
I/v8 (20623): 5.833 ms / 3.8 %
I/v8 (20623): 54812 bytes / 1.5 %
I/v8 (20623): H_Redundant phi elimination
I/v8 (20623): 1.223 ms / 0.8 %
I/v8 (20623): 4628 bytes / 0.1 %
I/v8 (20623): H_Mark unrechable blocks
I/v8 (20623): 0.670 ms / 0.4 %
I/v8 (20623): 0 bytes / 0.0 %
I/v8 (20623): H_Dead code elimination
I/v8 (20623): 3.781 ms / 2.5 %
I/v8 (20623): 18936 bytes / 0.5 %
I/v8 (20623): H_Escape analysis
I/v8 (20623): 0.789 ms / 0.5 %
I/v8 (20623): 4628 bytes / 0.1 %
I/v8 (20623): H_Infer representations
I/v8 (20623): 1.409 ms / 0.9 %
I/v8 (20623): 8440 bytes / 0.2 %
I/v8 (20623): H_Merge removable simulates
I/v8 (20623): 1.190 ms / 0.8 %
I/v8 (20623): 968 bytes / 0.0 %
I/v8 (20623): H_Mark deoptimize on undefined
I/v8 (20623): 0.306 ms / 0.2 %
I/v8 (20623): 7744 bytes / 0.2 %
I/v8 (20623): H_Representation changes
I/v8 (20623): 2.439 ms / 1.6 %
I/v8 (20623): 48248 bytes / 1.4 %
I/v8 (20623): H_Inferring types
I/v8 (20623): 0.609 ms / 0.4 %
I/v8 (20623): 4852 bytes / 0.1 %
I/v8 (20623): H_Compute safe UInt32 operations
I/v8 (20623): 0.243 ms / 0.2 %
I/v8 (20623): 1936 bytes / 0.1 %
I/v8 (20623): H_Canonicalize
I/v8 (20623): 1.252 ms / 0.8 %
I/v8 (20623): 0 bytes / 0.0 %
I/v8 (20623): H_Global value numbering
I/v8 (20623): 6.589 ms / 4.3 %
I/v8 (20623): 614908 bytes / 17.2 %
I/v8 (20623): H_Range analysis
I/v8 (20623): 1.706 ms / 1.1 %
I/v8 (20623): 50264 bytes / 1.4 %
I/v8 (20623): H_Compute change undefined to nan
I/v8 (20623): 0.702 ms / 0.5 %
I/v8 (20623): 0 bytes / 0.0 %
I/v8 (20623): H_Compute minus zero checks
I/v8 (20623): 2.443 ms / 1.6 %
I/v8 (20623): 984 bytes / 0.0 %
I/v8 (20623): H_Stack check elimination
I/v8 (20623): 0.243 ms / 0.2 %
I/v8 (20623): 0 bytes / 0.0 %
I/v8 (20623): H_Bounds checks elimination
I/v8 (20623): 1.035 ms / 0.7 %
I/v8 (20623): 30324 bytes / 0.9 %
I/v8 (20623): H_Dehoist index computations
I/v8 (20623): 1.894 ms / 1.2 %
I/v8 (20623): 0 bytes / 0.0 %
I/v8 (20623): H_Restore actual values
I/v8 (20623): 0.431 ms / 0.3 %
I/v8 (20623): 0 bytes / 0.0 %
I/v8 (20623): L_Building chunk
I/v8 (20623): 8.030 ms / 5.2 %
I/v8 (20623): 674816 bytes / 18.9 %
I/v8 (20623): L_Register constraints
I/v8 (20623): 4.728 ms / 3.1 %
I/v8 (20623): 179508 bytes / 5.0 %
I/v8 (20623): L_Resolve phis
I/v8 (20623): 0.977 ms / 0.6 %
I/v8 (20623): 21332 bytes / 0.6 %
I/v8 (20623): L_Build live ranges
I/v8 (20623): 15.684 ms / 10.2 %
I/v8 (20623): 695804 bytes / 19.5 %
I/v8 (20623): L_Allocate general registers
I/v8 (20623): 40.037 ms / 26.0 %
I/v8 (20623): 12940 bytes / 0.4 %
I/v8 (20623): L_Allocate double registers
I/v8 (20623): 0.731 ms / 0.5 %
I/v8 (20623): 0 bytes / 0.0 %
I/v8 (20623): L_Populate pointer maps
I/v8 (20623): 1.221 ms / 0.8 %
I/v8 (20623): 5572 bytes / 0.2 %
I/v8 (20623): L_Connect ranges
I/v8 (20623): 0.549 ms / 0.4 %
I/v8 (20623): 1936 bytes / 0.1 %
I/v8 (20623): L_Resolve control flow
I/v8 (20623): 10.618 ms / 6.9 %
I/v8 (20623): 72 bytes / 0.0 %
I/v8 (20623): L_Mark empty blocks
I/v8 (20623): 1.160 ms / 0.8 %
I/v8 (20623): 0 bytes / 0.0 %
I/v8 (20623): Z_Code generation
I/v8 (20623): 12.058 ms / 7.8 %
I/v8 (20623): 59692 bytes / 1.7 %
I/v8 (20623):
-------------------------------------------------------------------------------
I/v8 (20623): Create graph 15.839 ms / 16.8 %
I/v8 (20623): Optimize graph 71.991 ms / 76.4 %
I/v8 (20623): Generate and install code 6.440 ms / 6.8 %
I/v8 (20623):
-------------------------------------------------------------------------------
I/v8 (20623): Total 94.270 ms (386.4
times slower than full code gen)
I/v8 (20623): Average per kB source 103.023 ms
3806.395 kB allocated
I'm not sure what is normal on these stats, does anything stick out to you
Yang?
Attachments:
ember-timer-events.png 63.2 KB
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.