Example output:

 [C++ entry points]:
   ticks    cpp   total   name
     82   13.0%    7.2%  v8::internal::Builtin_HandleApiCall(int,
v8::internal::Object**, v8::internal::Isolate*)
     60    9.5%    5.3%  v8::internal::Builtin_ArraySplice(int,
v8::internal::Object**, v8::internal::Isolate*)
     56    8.9%    4.9%  v8::internal::Runtime_CompileOptimized(int,
v8::internal::Object**, v8::internal::Isolate*)
     50    7.9%    4.4%
 v8::internal::Runtime_CompileForOnStackReplacement(int,
v8::internal::Object**, v8::internal::Isolate*)
     43    6.8%    3.8%  v8::internal::LoadIC_Miss(int,
v8::internal::Object**, v8::internal::Isolate*)
     34    5.4%    3.0%  v8::internal::StoreIC_Miss(int,
v8::internal::Object**, v8::internal::Isolate*)
     28    4.4%    2.5%  v8::internal::Runtime_CreateObjectLiteral(int,
v8::internal::Object**, v8::internal::Isolate*)
     27    4.3%    2.4%  v8::internal::Runtime_StackGuard(int,
v8::internal::Object**, v8::internal::Isolate*)
     27    4.3%    2.4%  v8::internal::Runtime_CompileLazy(int,
v8::internal::Object**, v8::internal::Isolate*)
     24    3.8%    2.1%  v8::internal::Runtime_StringParseInt(int,
v8::internal::Object**, v8::internal::Isolate*)
     22    3.5%    1.9%  v8::internal::Runtime_StringCharCodeAtRT(int,
v8::internal::Object**, v8::internal::Isolate*)
     22    3.5%    1.9%  v8::internal::Runtime_CreateArrayLiteral(int,
v8::internal::Object**, v8::internal::Isolate*)
     17    2.7%    1.5%  v8::internal::Builtin_ArrayPush(int,
v8::internal::Object**, v8::internal::Isolate*)
     12    1.9%    1.1%  v8::internal::Runtime_KeyedGetProperty(int,
v8::internal::Object**, v8::internal::Isolate*)
     11    1.7%    1.0%  v8::internal::Runtime_GetProperty(int,
v8::internal::Object**, v8::internal::Isolate*)
     11    1.7%    1.0%  v8::internal::Builtin_ArraySlice(int,
v8::internal::Object**, v8::internal::Isolate*)
and so on...


On Tue, Oct 7, 2014 at 5:13 PM, <[email protected]> wrote:

> Reviewers: Yang,
>
> Message:
> Alexei, Yury: I'd like to make this change for internal profiling purposes
> (--prof + linux-tick-processor). For analyzing big
> applications/benchmarks, it
> can be helpful to know which C++ entry points (say, LoadIC_Miss,
> Runtime_ArrayConcat, etc) were expensive in aggregate.
> It appears that this CL as is would also affect the public sampling API,
> as of
> https://codereview.chromium.org/596533002. Do you have any suggestions
> how to
> modify the mechanism so the publicly exported information is unchanged? I
> could
> thread through a flag so when we're coming from Sampler::SampleStack(),
> we'll
> record the extra frame, and otherwise (CpuProfiler::StartProfiling() or
> V8::GetStackSample()), we won't. Does that sound reasonable?
> Or would you even prefer to specifically include these extra frames in
> public
> samples? Personally I think it doesn't make much sense, as such internal
> details
> are likely not interesting to JS developers.
>
> Yang, please review.
>
> Description:
> Tick processor: Print C++ entry points
>
> Please review this at https://codereview.chromium.org/638633002/
>
> SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
>
> Affected files (+103, -15 lines):
>   M src/ia32/macro-assembler-ia32.cc
>   M src/isolate.h
>   M src/sampler.cc
>   M src/x64/macro-assembler-x64.cc
>   M test/cctest/test-log-stack-tracer.cc
>   M test/cctest/test-sampler-api.cc
>   M test/mjsunit/tools/tickprocessor-test.default
>   M test/mjsunit/tools/tickprocessor-test.func-info
>   M test/mjsunit/tools/tickprocessor-test.gc-state
>   M test/mjsunit/tools/tickprocessor-test.ignore-unknown
>   M test/mjsunit/tools/tickprocessor-test.separate-ic
>   M tools/codemap.js
>   M tools/logreader.js
>   M tools/profile.js
>   M tools/tickprocessor.js
>
>
>

-- 
-- 
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/d/optout.

Reply via email to