On Tue, Jun 20, 2017 at 1:24 PM, Christian Palmstierna
<[email protected]> wrote:
> That makes sense. Is there any convenient way to find where this is
> happening, e.g. via a debugger?
You could try the profiler from the built-in inspector.
> Here's the full output from --prof-process:
>
> Statistical profiling result from isolate-000001A4282567E0-v8.log, (1437
> ticks, 116 unaccounted, 0 excluded).
>
> [Shared libraries]:
> ticks total nonlib name
>
> [JavaScript]:
> ticks total nonlib name
> 892 62.1% 62.1% Handler: symbol("nonexistent_symbol" hash 157aee38)
> 173 12.0% 12.0% Handler: symbol("Symbol.iterator" hash 43b0ecc)
> 160 11.1% 11.1% Stub: RecordWriteStub {4}
> 12 0.8% 0.8% Stub: RecordWriteStub {3}
> 10 0.7% 0.7% Handler: symbol("promise_deferred_reactions_symbol"
> hash 25b86a1)
> 5 0.3% 0.3% Stub: ToBooleanICStub(Undefined,Bool,String)
> 4 0.3% 0.3% Handler: fs
> 3 0.2% 0.2% Stub: CompareICStub {1}
> 3 0.2% 0.2% Handler: concat
> 3 0.2% 0.2% Builtin: StringPrototypeNormalize
> 2 0.1% 0.1% Stub: RecordWriteStub
> 2 0.1% 0.1% Stub: LoadConstantStub
> 2 0.1% 0.1% Stub: CallICStub(args(4), NULL_OR_UNDEFINED,
> 2 0.1% 0.1% Handler: subject
> 2 0.1% 0.1% Handler: cache
> 1 0.1% 0.1% Stub: ToBooleanICStub(Undefined,String)
> 1 0.1% 0.1% Stub: ToBooleanICStub(Null)
> 1 0.1% 0.1% Stub: StrictEqualStub
> 1 0.1% 0.1% Stub: StoreFieldStub {4}
> 1 0.1% 0.1% Stub: StoreFieldStub {3}
> 1 0.1% 0.1% Stub: StoreFieldStub {2}
> 1 0.1% 0.1% Stub: StoreFieldStub {1}
> 1 0.1% 0.1% Stub: StoreFieldStub
> 1 0.1% 0.1% Stub: StoreFastElementStub
> 1 0.1% 0.1% Stub: RecordWriteStub {2}
> 1 0.1% 0.1% Stub: RecordWriteStub {1}
> 1 0.1% 0.1% Stub: LoadFieldStub
> 1 0.1% 0.1% Stub: JSEntryStub
> 1 0.1% 0.1% Stub: FastCloneShallowObjectStub {1}
> 1 0.1% 0.1% Stub: FastCloneShallowObjectStub
> 1 0.1% 0.1% Stub: DoubleToIStub
> 1 0.1% 0.1% Stub: CompareICStub {5}
> 1 0.1% 0.1% Stub: CompareICStub {4}
> 1 0.1% 0.1% Stub: CompareICStub {3}
> 1 0.1% 0.1% Stub: CompareICStub {2}
> 1 0.1% 0.1% Stub: CompareICStub
> 1 0.1% 0.1% Stub: CallICTrampolineStub
> 1 0.1% 0.1% Stub: CallICStub(args(5), NULL_OR_UNDEFINED,
> 1 0.1% 0.1% Stub: CallICStub(args(0), NULL_OR_UNDEFINED,
> 1 0.1% 0.1% Stub:
> BinaryOpICWithAllocationSiteStub(ADD_CreateAllocationMementos:String*String->String)
> {4}
> 1 0.1% 0.1% Stub:
> BinaryOpICWithAllocationSiteStub(ADD_CreateAllocationMementos:String*String->String)
> {3}
> 1 0.1% 0.1% Stub:
> BinaryOpICWithAllocationSiteStub(ADD_CreateAllocationMementos:String*String->String)
> {2}
> 1 0.1% 0.1% Stub:
> BinaryOpICWithAllocationSiteStub(ADD_CreateAllocationMementos:String*String->String)
> {1}
> 1 0.1% 0.1% Stub:
> BinaryOpICWithAllocationSiteStub(ADD_CreateAllocationMementos:String*String->String)
> 1 0.1% 0.1% Stub: BinaryOpICStub(MOD:Smi*1->Smi)
> 1 0.1% 0.1% Handler: super_
> 1 0.1% 0.1% Handler: set
> 1 0.1% 0.1% Handler: sender
> 1 0.1% 0.1% Handler: resumeScheduled
> 1 0.1% 0.1% Handler: prototype
> 1 0.1% 0.1% Handler: peek
> 1 0.1% 0.1% Handler: internal/util
> 1 0.1% 0.1% Handler: internal/process/warning
> 1 0.1% 0.1% Handler: internal/process/stdio
> 1 0.1% 0.1% Handler: error
> 1 0.1% 0.1% Handler: end
> 1 0.1% 0.1% Handler: destroyed
> 1 0.1% 0.1% Handler: buffer
> 1 0.1% 0.1% Handler: blksize
> 1 0.1% 0.1% Handler: assert
> 1 0.1% 0.1% Builtin: DatePrototypeSetHours
>
> [C++]:
> ticks total nonlib name
>
> [Summary]:
> ticks total nonlib name
> 1321 91.9% 91.9% JavaScript
> 0 0.0% 0.0% C++
> 22 1.5% 1.5% GC
> 0 0.0% Shared libraries
> 116 8.1% Unaccounted
>
> [C++ entry points]:
> ticks cpp total name
>
> [Bottom up (heavy) profile]:
> Note: percentage shows a share of a particular caller in the total
> amount of its parent calls.
> Callers occupying less than 2.0% are not shown.
>
> ticks parent name
> 892 62.1% Handler: symbol("nonexistent_symbol" hash 157aee38)
> 875 98.1% C:\Program Files\nodejs\node.exe
> 386 44.1% C:\Program Files\nodejs\node.exe
>
> 173 12.0% Handler: symbol("Symbol.iterator" hash 43b0ecc)
> 170 98.3% C:\Program Files\nodejs\node.exe
> 78 45.9% C:\Program Files\nodejs\node.exe
>
> 160 11.1% Stub: RecordWriteStub {4}
> 156 97.5% C:\Program Files\nodejs\node.exe
> 71 45.5% C:\Program Files\nodejs\node.exe
>
> 116 8.1% UNKNOWN
You might want to try it on Linux or MacOS. There is a Windows bug
that skews profiles (the UNKNOWN ticks), see
https://github.com/nodejs/node/issues/8221.
(As well, on Unices you get to see C++ symbols.)
--
--
v8-users mailing list
[email protected]
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 [email protected].
For more options, visit https://groups.google.com/d/optout.