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.