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.

Reply via email to