verwaest@chromium.org
26d72d5024
Get rid of GetLazyValue and clients.
...
This breaks fetching name of the constructor property of "Object"-labeled values in the heap-snapshot-generator until that's handlified and can be moved over to the LookupIterator.
BUG=
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/480823004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23226 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-20 10:37:23 +00:00
adamk@chromium.org
bcf8b05072
Enable ES6 Map and Set by default
...
In doing so also remove all references to the --harmony-collections flag.
Due to the way context snapshotting works, it's not possible to simply
enable the flag by default.
Depends on ES6 Symbols: https://codereview.chromium.org/421313004
BUG=v8:1622
LOG=Y
R=arv@chromium.org , rossberg@chromium.org
Review URL: https://codereview.chromium.org/427723002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22889 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-05 19:37:32 +00:00
alph@chromium.org
f6ddb89cd3
Move anonymous function name beautifying out of v8.
...
R=yangguo@chromium.org , yurys@chromium.org
Review URL: https://codereview.chromium.org/425223004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22842 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-05 07:08:39 +00:00
adamk@chromium.org
d8c30bd8e7
Enable ES6 Symbols by default
...
In doing so also remove all references to the --harmony-symbols flag.
Due to the way context snapshotting works, it's not possible to simply enable
the flag by default.
BUG=v8:2158
LOG=Y
R=dslomov@chromium.org
Review URL: https://codereview.chromium.org/421313004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22831 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-04 18:17:54 +00:00
bmeurer@chromium.org
d07a2eb806
Rename ASSERT* to DCHECK*.
...
This way we don't clash with the ASSERT* macros
defined by GoogleTest, and we are one step closer
to being able to replace our homegrown base/ with
base/ from Chrome.
R=jochen@chromium.org , svenpanne@chromium.org
Review URL: https://codereview.chromium.org/430503007
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22812 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-08-04 11:34:54 +00:00
yurys@chromium.org
3994880715
Support ES6 Map and Set in heap profiler
...
Added special handling for Map and Set in the heap snapshot generator.
Extracted common base type from JSMap/JSSet similar to JSWeakMap/JSWeakSet.
After handling collection specific properties all collections are processed as regular JSObject to make sure all regular properties set on them are present in the heap snapshot.
BUG=v8:3368
LOG=Y
R=alph@chromium.org , rossberg@chromium.org
Committed: https://code.google.com/p/v8/source/detail?r=22311
Review URL: https://codereview.chromium.org/373183002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22316 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-10 10:54:47 +00:00
yurys@chromium.org
3b2511ed4a
Revert "Support ES6 Map and Set in heap profiler"
...
This reverts commit 47f86e067f
due to some weird (likely unrelated) compilation errors.
BUG=v8:3368
TBR=rossberg
Review URL: https://codereview.chromium.org/380153002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22312 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-10 08:45:45 +00:00
yurys@chromium.org
47f86e067f
Support ES6 Map and Set in heap profiler
...
Added special handling for Map and Set in the heap snapshot generator.
Extracted common base type from JSMap/JSSet similar to JSWeakMap/JSWeakSet.
After handling collection specific properties all collections are processed as regular JSObject to make sure all regular properties set on them are present in the heap snapshot.
BUG=v8:3368
LOG=Y
R=alph@chromium.org , rossberg@chromium.org
Review URL: https://codereview.chromium.org/373183002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22311 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-10 07:24:52 +00:00
ishell@chromium.org
2c94151e6e
Reland r22082 "Replace HeapNumber as doublebox with an explicit MutableHeapNumber."
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/334323003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22129 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-01 15:02:31 +00:00
verwaest@chromium.org
26eae0c429
Clean up the global object naming madness.
...
BUG=
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/352173006
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22117 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-07-01 12:12:34 +00:00
ishell@chromium.org
d1190c503d
Revert "Replace HeapNumber as doublebox with an explicit MutableHeapNumber."
...
This reverts commit r22082 for breaking arm64 build.
TBR=verwaest@chromium.org
Review URL: https://codereview.chromium.org/360023003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22083 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-30 10:19:31 +00:00
ishell@chromium.org
cea1824f58
Replace HeapNumber as doublebox with an explicit MutableHeapNumber.
...
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/355793003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22082 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-30 09:44:43 +00:00
jochen@chromium.org
9c2019b25c
Remove dependency on Vector from platform files
...
Add wrappers to utils.h instead.
BUG=none
R=jkummerow@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/328343003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21846 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-13 16:43:27 +00:00
jochen@chromium.org
56a486c322
Use full include paths everywhere
...
- this avoids using relative include paths which are forbidden by the style guide
- makes the code more readable since it's clear which header is meant
- allows for starting to use checkdeps
BUG=none
R=jkummerow@chromium.org , danno@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/304153016
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21625 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-06-03 08:12:43 +00:00
jochen@chromium.org
84e078e561
Reland 21502 - "Move OS::MemCopy and OS::MemMove out of platform to utils"
...
Verified that arm builds locally.
BUG=none
TBR=jkummerow@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/306473004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21512 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-27 07:57:22 +00:00
jochen@chromium.org
eabd5a19b9
Revert 21502 - "Move OS::MemCopy and OS::MemMove out of platform to utils"
...
TBR=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/297303004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21504 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-26 19:56:27 +00:00
jochen@chromium.org
a5a21a0da4
Move OS::MemCopy and OS::MemMove out of platform to utils
...
Since both are jitted on some platforms and depend on codegen, they
don't belong to the platform abstraction. At the same time, I can't put
them to codegen.h, as this would introduce cyclic dependencies.
BUG=none
R=jkummerow@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/302563004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21502 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-26 19:33:15 +00:00
yurys@chromium.org
7741fe0466
Support ES6 weak collections in heap profiler
...
BUG=chromium:376196
LOG=Y
R=alph@chromium.org , yangguo@chromium.org
Review URL: https://codereview.chromium.org/294163005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21460 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-23 11:05:22 +00:00
yurys@chromium.org
8751323701
Add support for ES6 Symbol in heap profiler
...
Heap profiler will create a node with name Symbol and type kSymbol.
BUG=chromium:376194
LOG=Y
R=loislo@chromium.org , yangguo@chromium.org
Review URL: https://codereview.chromium.org/290013004
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21433 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-22 11:26:48 +00:00
yangguo@chromium.org
cf49b6e3ca
Reland "Simplify debugger state."
...
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/299653002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21378 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-20 08:52:42 +00:00
svenpanne@chromium.org
7ac5dfbd3e
Revert "Simplify debugger state."
...
This reverts r21346, it broke the layout tests.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/292713002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21351 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-19 07:06:44 +00:00
yangguo@chromium.org
2d1a75d608
Simplify debugger state.
...
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/287873005
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@21346 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-05-16 14:58:03 +00:00
yangguo@chromium.org
cb2f43cb14
Always include debugger support.
...
Motivation: we do not have test coverage for debuggersupport=off.
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/256653004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20969 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-25 11:00:37 +00:00
ishell@chromium.org
313844d842
Heap::AllocateStringFromOneByte() and major part of its callers handlified.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/239243018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20846 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-17 13:27:02 +00:00
yangguo@chromium.org
164e5b580c
Reland "Return MaybeHandle from NewConsString."
...
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/223813002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20480 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-03 12:30:37 +00:00
yangguo@chromium.org
87dd16e3cd
Revert "Return MaybeHandle from NewConsString."
...
This reverts r20473.
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/223593004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20475 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-03 12:09:14 +00:00
yangguo@chromium.org
be0d2f5d15
Return MaybeHandle from NewConsString.
...
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/223383002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20473 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-03 11:38:01 +00:00
alph@chromium.org
923fbafc15
Show references from weak containers as weak in heap snapshots.
...
BUG=356590
LOG=Y
R=ulan@chromium.org , yurys@chromium.org
Review URL: https://codereview.chromium.org/213673006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20429 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-02 11:19:53 +00:00
yurys@chromium.org
e18b575c6e
Fix compiler warning on Win64
...
BUG=None
LOG=N
TBR=mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/191153002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19731 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-07 17:20:03 +00:00
yurys@chromium.org
74546c03ad
AllocationTracker now maintains a map from address range to stack trace that allocated the range. When snapshot is generated the map is used to find construction stack trace for an object using its address.
...
BUG=chromium:277984
LOG=Y
R=alph@chromium.org , mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/177983003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19728 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-07 16:13:22 +00:00
yurys@chromium.org
49cd3d8a65
Allocation tracker: add separate entry for allocations via V8 API
...
When object is creating via native V8 API calls JS callstack is empty and the allocation is indistinguishable from say compiler allocations. This change adds a separate entry for such allocations.
Since FunctionInfo not necessarily corresponds to a heap object they are now referred to using their index in the list of all FunctionInfos.
BUG=chromium:277984
LOG=N
R=loislo@chromium.org , mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/177203002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19718 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-07 11:32:01 +00:00
alph@chromium.org
b4354d6d88
DevTools: Drop kSinTable dependency off the heap profiler ArrayBuffer backing_store test
...
LOG=N
R=dslomov@chromium.org , yurys@chromium.org
Review URL: https://codereview.chromium.org/170253008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19458 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-18 15:57:44 +00:00
alph@chromium.org
1bace575f0
Allow self_size to be larger than 2GB in heap snapshots.
...
LOG=N
R=dslomov@chromium.org , yurys@chromium.org
Review URL: https://codereview.chromium.org/166383002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19445 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-18 13:22:07 +00:00
alph@chromium.org
429ce41f4b
Make a single HeapEntry per single JSArrayBuffer data in heap snapshot.
...
It turned out that JSArrayBuffer's may share their backing_store so
the backing_store should go through hash map registration just like
other heap objects, so they won't be reported twice.
BUG=341741
LOG=N
R=dslomov@chromium.org , yurys@chromium.org
Review URL: https://codereview.chromium.org/166993002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19416 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-17 15:24:39 +00:00
alph@chromium.org
4aabb8aeec
Count ArrayBuffer's backing_store memory in heap snapshot.
...
BUG=341741
LOG=N
R=dslomov@chromium.org , loislo@chromium.org
Review URL: https://codereview.chromium.org/163593002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19356 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-13 15:31:39 +00:00
svenpanne@chromium.org
f0bf110448
Make LeakSanitizer happy, part 1.
...
Bumped an assembler buffer on the way, it is necessary for some combinations of debugging flags.
Note that the allocation profiler still leaks, this is handled in a separate CL.
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/152643006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19128 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-06 07:16:41 +00:00
alph@chromium.org
efee3b8608
Add Box object to heap profiler.
...
LOG=Y
R=ulan@chromium.org , yurys@chromium.org
Review URL: https://codereview.chromium.org/143343006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19063 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-02-04 11:43:19 +00:00
svenpanne@chromium.org
2daf43ac13
Once again: Fixed some lifetime/ownership issues in cctest
...
* Fixed lifetime issue in cctest/test-heap-profiler/HeapSnapshotJSONSerialization.
* Fixed ownership issue in cctest/test-api/ContainsOnlyOneByte.
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/142553005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18978 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-31 09:59:50 +00:00
alph@chromium.org
9e3af5a4db
Add global_context field to GlobalObject in heap profiler.
...
LOG=N
R=ulan@chromium.org , yurys@chromium.org
Review URL: https://codereview.chromium.org/143263015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18942 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-30 12:17:21 +00:00
alph@chromium.org
c911ec3322
Do not overwrite builtin code names in heap profiler
...
Make sure builtin code objects get their builtin tags
first. Otherwise a particular JSFunction object could set
its custom name to a generic builtin.
LOG=N
R=ulan@chromium.org , yurys@chromium.org
Review URL: https://codereview.chromium.org/145973006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18926 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-29 17:03:13 +00:00
alph@chromium.org
5a2fe0a670
Mark next_code_link as weak in heap profiler.
...
LOG=N
R=ulan@chromium.org , yurys@chromium.org
Review URL: https://codereview.chromium.org/136113007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18907 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-29 13:45:41 +00:00
alph@chromium.org
89ffd30537
Allow arbitrary names for weak references in heap snapshots.
...
LOG=N
BUG=
R=ulan@chromium.org , yurys@chromium.org
Review URL: https://codereview.chromium.org/146843003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18846 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-27 09:37:02 +00:00
bmeurer@chromium.org
361095d397
Revert "Allow arbitrary names for weak references in heap snapshots."
...
This reverts commit r18838 for breaking build with clang. Errors are:
../../src/heap-snapshot-generator.cc:1217:53: error: empty macro arguments were standardized in C99 [-Werror,-pedantic]
EXTRACT_CONTEXT_FIELD(OPTIMIZED_FUNCTIONS_LIST, , optimized_functions_list);
../../src/heap-snapshot-generator.cc:1218:48: error: empty macro arguments were standardized in C99 [-Werror,-pedantic]
EXTRACT_CONTEXT_FIELD(OPTIMIZED_CODE_LIST, , optimized_code_list);
../../src/heap-snapshot-generator.cc:1219:50: error: empty macro arguments were standardized in C99 [-Werror,-pedantic]
EXTRACT_CONTEXT_FIELD(DEOPTIMIZED_CODE_LIST, , deoptimized_code_list);
../../src/heap-snapshot-generator.cc:1220:46: error: empty macro arguments were standardized in C99 [-Werror,-pedantic]
EXTRACT_CONTEXT_FIELD(NEXT_CONTEXT_LINK, , next_context_link);
TBR=alph@chromium.org
Review URL: https://codereview.chromium.org/145583003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18844 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-27 06:47:42 +00:00
alph@chromium.org
f4a470d5bb
Allow arbitrary names for weak references in heap snapshots.
...
LOG=N
R=ulan@chromium.org , yurys@chromium.org
Review URL: https://codereview.chromium.org/145353003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18838 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-24 17:18:34 +00:00
alph@chromium.org
01a6c8ae35
Mark weak fields of JSArrayBuffer and JSArrayBufferView as weak in heap snapshot.
...
BUG=337144
LOG=N
R=ulan@chromium.org , yurys@chromium.org
Review URL: https://codereview.chromium.org/138443009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18830 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-24 15:10:09 +00:00
svenpanne@chromium.org
e8f935a630
Various extension-related cleanup and simplifications.
...
Removes the embarrassing "static"s, shuffles some code around, doing various cleanups on the way.
R=dcarney@chromium.org
Review URL: https://codereview.chromium.org/130213009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18659 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-17 10:52:00 +00:00
svenpanne@chromium.org
005c0d8178
Prepare removal of ObjectTemplate::New without Isolate parameter.
...
LOG=y
BUG=324225
R=ulan@chromium.org
Review URL: https://codereview.chromium.org/124943004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18478 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-08 06:53:31 +00:00
ulan@chromium.org
343813c59e
Revert r18451 "Revert r18449 "Reland r18383: More API cleanup." and r18450 "Unbreak build."" since necessary WebKit changes are rolled in Chromium.
...
TBR=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/119753008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18452 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-03 14:31:17 +00:00
ulan@chromium.org
163386c700
Revert r18449 "Reland r18383: More API cleanup." and r18450 "Unbreak build."
...
because of broken WebKit bots.
TBR=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/119323006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18451 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-03 14:13:21 +00:00
svenpanne@chromium.org
1143ab132e
Reland r18383: More API cleanup.
...
* Removed String::Empty, Number::New, Integer::New, Integer::NewFromUnsigned, FunctionTemplate::New and Object::New without Isolate* parameter.
* Removed Integer::New and Integer::NewUnsigned with weird argument order.
Chrome CLs matching this change have been landed.
TBR=dcarney@chromium.org
LOG=y
BUG=324225
Review URL: https://codereview.chromium.org/108783007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18449 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-01-03 11:56:33 +00:00
yurys@chromium.org
18e865d4fa
Delete v8::HeapGraphNode::GetHeapValue
...
BUG=chromium:324769
LOG=N
R=hpayer@chromium.org , mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/98633009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18404 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-12-23 09:33:16 +00:00
svenpanne@chromium.org
e595dc0368
Revert "More API cleanup."
...
This reverts r18383. The CL in itself is OK, we just have to wait until Chrome's commit queue lands the final corresponding change and re-land this CL. :-/
TBR=hpayer@chromium.org
Review URL: https://codereview.chromium.org/119013004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18384 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-12-20 11:35:53 +00:00
svenpanne@chromium.org
d54a4e6d40
More API cleanup.
...
* Removed String::Empty, Number::New, Integer::New, Integer::NewFromUnsigned, FunctionTemplate::New and Object::New without Isolate* parameter.
* Removed Integer::New and Integer::NewUnsigned with weird argument order.
Chrome CLs matching this change are prepared, BTW.
LOG=y
BUG=324225
R=dcarney@chromium.org
Review URL: https://codereview.chromium.org/118523003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18383 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-12-20 10:49:27 +00:00
svenpanne@chromium.org
389ee8d59b
Removed internal uses of (almost) deprecated FunctionTemplate::New version.
...
LOG=y
R=dcarney@chromium.org
Review URL: https://codereview.chromium.org/108063003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18342 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-12-18 10:31:42 +00:00
yurys@chromium.org
8b542494c3
Add methods for finding object by its snapshot id and id for an object
...
Object<-->id mapping doesn't depend on a particular snapshot, actually same object may appear in several heap snapshots. The API for converting between id and heap object should be provided by HeapProfiler itself. There is already GetObjectId method which I extended with FindObjectById/ClearObjectIds. As the next step I'm going to deprecate and remove HeapGraphNode::GetHeapValue.
BUG=chromium:324769
LOG=N
R=alph@chromium.org , hpayer@chromium.org , mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/93843004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18334 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-12-18 08:17:03 +00:00
yurys@chromium.org
cd5ea74700
Replace 'operator*' with explicit 'get' method on SmartPointer
...
Made operator* return reference to the raw type, not pointer. New method 'get()' should be used when raw pointer is needed.
Also removed useless inline modifier from the SmaprtPointer methods and added const modifier to the methods that don't change smart pointer.
Made ~SmartPointerBase protected to avoid accidental calls of the non-virtual base class's destructor.
drive-by: fixed use after free in src/factory.cc
BUG=None
LOG=N
R=alph@chromium.org , svenpanne@chromium.org
Review URL: https://codereview.chromium.org/101763003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18275 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-12-09 07:41:20 +00:00
jochen@chromium.org
8565d3e966
Remove deprecated Persistent::MakeWeak usage from V8
...
BUG=none
LOG=n
R=dcarney@chromium.org , ulan@chromium.org
Review URL: https://codereview.chromium.org/101523002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18227 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-12-03 10:40:13 +00:00
yurys@chromium.org
054bdf7fc0
Remove HeapSnapshotsCollection class
...
The class added unecessary level of indirection to the heap profiler implementation. I merged some of its implementation into HeapProfiler and deleted the rest. This refactoring is also a prerequisite for keeping HeapObjectsMap alive even when all snapshots are deleted.
BUG=None
LOG=N
R=alph@chromium.org , mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/101393002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18221 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-12-03 09:48:30 +00:00
yurys@chromium.org
e87fe7b71f
Simplify allocation tracker API
...
Deprecated separate methods for starting/stopping allocation tracking in favor of a bool param to Start/StopTrackingHeapObjects.
BUG=None
LOG=N
R=loislo@chromium.org , mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/96933003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18197 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-12-02 14:27:24 +00:00
yurys@chromium.org
5567426483
Do not put allocated block into HeapObjectsMap
...
Heap allocation reported to AllocationTracker may be later divided into several objects so it is incorrect to put the block as a new HeapObject into the map. We will match allocated block with actual HeapObjects later when iterating Heap (will be addressed in another patch). Since the objects are not assigned an id immediately after creation we need to call FindOrAddEntry when finding id for SharedFunctionInfo during stack crawling.
Removed hooks for tracking creation of AllocationMemento. AllocationMemento is not a HeapObject and should be considered as implementation overhead.
Renamed NewObjectEvent to AllocationEvent which is more precise in case of folded allocations and when a part of the new block becomes AllocationMemento.
BUG=None
LOG=N
R=loislo@chromium.org , mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/95283003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18151 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-29 09:54:38 +00:00
jochen@chromium.org
c1da40c08d
Mark deprecated APIs with relatively little use as deprecated
...
BUG=none
R=svenpanne@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/91503002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18114 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-28 08:21:26 +00:00
yangguo@chromium.org
afd8e5a305
Speed up long-running test cases.
...
R=ishell@chromium.org
Review URL: https://codereview.chromium.org/85163003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18070 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-26 11:32:39 +00:00
jochen@chromium.org
c0c5efb9e7
Remove usage of deprecated APIs from cctests
...
Also turn on deprecation warnings
BUG=v8:3023
R=svenpanne@chromium.org , dcarney@chromium.org
LOG=n
Review URL: https://codereview.chromium.org/83343002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18011 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-22 12:43:17 +00:00
yurys@chromium.org
88e7d631b9
Add allocation tracker test for bumb pointer allocations
...
Test that allocations which regularly happen inline in the generated code and create objects in bump pointer space will be recorded by the allocation tracker.
BUG=chromium:277984
LOG=N
R=loislo@chromium.org , mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/73893005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17794 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-15 14:47:11 +00:00
yurys@chromium.org
c7b1b79e4d
This is the exact copy of r17365 which was reverted in r17488 due to memory corruption. The root cause for the memory corruption - missing check for bump pointer limit before storing filler map must be addressed in r17626 where allocation hooks were removed from the generated code and left only in the runtime.
...
This is initial implementation of allocation profiler.
Whenever new object allocation is reported to the HeapProfiler and allocation tracking is on we will capture current stack trace, add it to the collection of the allocation traces (a tree) and attribute the allocated size to the top JS function on the stack.
Format of serialized heap snapshot is extended to include information about recorded allocation stack traces.
This patch is r17301 plus a fix for the test crash in debug mode. The test crashed because we were traversing stack trace when just allocated object wasn't completely configured, in particular the map pointer was incorrect. Invalid Map pointer broke heap iteration required to find Code object for a given pc during stack traversal. The solution is to insert free space filler in the newly allocated block just before collecting stack trace.
BUG=chromium:277984,v8:2949
R=bmeurer@chromium.org
Review URL: https://codereview.chromium.org/61893031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17742 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-14 12:13:26 +00:00
bmeurer@chromium.org
b8660f2091
Revert "Record allocation stack traces".
...
This reverts commit r17365 for memory corruption. The issues
are most probably related to storing a filler map without
checking the bump pointer first, and traversing the stack
when called from within a stub (or builtin), while the code
assumes that it's called from a JS function.
R=verwaest@chromium.org
Review URL: https://codereview.chromium.org/59583003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17488 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 13:46:11 +00:00
loislo@chromium.org
a4b4cfdc58
HeapProfiler: provide human readable names for code objects.
...
It is very hard to understand the structure of the heap even for about:blank page
because code objects in the heap have no names. This patch propagates the names
for Code::STUB and Code::BUILTIN code objects.
Also it assign function names from SharedFunctionInfo to the code objects.
BUG=
R=alph@chromium.org , svenpanne@chromium.org , yurys@chromium.org
Review URL: https://codereview.chromium.org/52643002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17486 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-05 13:23:03 +00:00
yurys@chromium.org
a083601e73
Record allocation stack traces
...
This is initial implementation of allocation profiler.
Whenever new object allocation is reported to the HeapProfiler and allocation tracking is on we will capture current stack trace, add it to the collection of the allocation traces (a tree) and attribute the allocated size to the top JS function on the stack.
Format of serialized heap snapshot is extended to include information about recorded allocation stack traces.
This patch is r17301 plus a fix for the test crash in debug mode. The test crashed because we were traversing stack trace when just allocated object wasn't completely configured, in particular the map pointer was incorrect. Invalid Map pointer broke heap iteration required to find Code object for a given pc during stack traversal. The solution is to insert free space filler in the newly allocated block just before collecting stack trace.
BUG=chromium:277984,v8:2949
R=hpayer@chromium.org , loislo@chromium.org
Review URL: https://codereview.chromium.org/34733004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17365 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-24 09:26:55 +00:00
yurys@chromium.org
d37c1cfc2f
Revert "Disable allocation folding when allocations tracking is on"
...
This reverts r17337. The new test fails on V8 linux - shared: http://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20shared/builds/4726/steps/Check/logs/stdio
TBR=mvstanton@chromium.org
BUG=None
Review URL: https://codereview.chromium.org/37073003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17338 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-23 12:30:38 +00:00
yurys@chromium.org
66bfe59307
Disable allocation folding when allocations tracking is on
...
BUG=chromium:277984
R=hpayer@chromium.org , loislo@chromium.org , mvstanton@chromium.org , yurys@chromium.org
Review URL: https://codereview.chromium.org/32583002
Patch from Alexandra Mikhaylova <amikhaylova@google.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17337 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-23 12:19:12 +00:00
bmeurer@chromium.org
9c26c6a3f2
[Sheriff] Revert "Record allocation stack traces" and "Temporarily disable test-heap-profiler/TrackHeapAllocations".
...
This reverts commit r17301 and r17303 for breaking the nosnap builds.
TBR=yurys@chromium.org
Review URL: https://codereview.chromium.org/34523002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17307 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-22 06:56:19 +00:00
yurys@chromium.org
66bb9d1563
Record allocation stack traces
...
This is initial implementation of allocation profiler.
Whenever new object allocation is reported to the HeapProfiler and allocation tracking is on we will capture current stack trace, add it to the collection of the allocation traces (a tree) and attribute the allocated size to the top JS function on the stack.
Format of serialized heap snapshot is extended to include information about recorded allocation stack traces.
BUG=chromium:277984
R=hpayer@chromium.org , loislo@chromium.org
Review URL: https://codereview.chromium.org/27227005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17301 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-21 15:22:11 +00:00
loislo@chromium.org
b50be9ff12
HeapProfiler: integrate FindUntrackedObjects into js code.
...
In some cases we would like to check untracked objects right from the js code.
Otherwise the objects might be collected rigth before check.
BUG=none
R=hpayer@chromium.org , yurys@chromium.org
Review URL: https://codereview.chromium.org/27717003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17270 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-18 11:25:43 +00:00
yurys@chromium.org
15db1d7c3a
Track JS allocations as they arrive with no affection on performance when tracking is switched off.
...
BUG=277984
R=hpayer@chromium.org
Review URL: https://codereview.chromium.org/22852024
Patch from Alexandra Mikhaylova <amikhaylova@google.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17191 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-14 12:41:28 +00:00
dcarney@chromium.org
c57236e288
remove HEAP from tests
...
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/24169005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16819 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-19 09:46:15 +00:00
dcarney@chromium.org
baf6add9f0
bulk replace Isolate::Current in tests
...
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/23534067
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16817 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-19 09:17:13 +00:00
dcarney@chromium.org
f758caa34d
bulk replace v8::Isolate::GetCurrent in tests
...
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/24265002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16813 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-19 08:54:58 +00:00
loislo@chromium.org
f6b7ec4da0
HeapProfiler: very slow ~4min "take snapshot time" for 80MB gmail heap.
...
The reason of that is a number of cons strings in the app.
The app constructs a json string and as a result v8 heap has
a very long chain of cons strings.
Profiler counts all these strings as plain String objects and
assign the content of the strings as node names.
It required O(n^2) time and O(n^2) memory.
Solution: I introduced two new types, kConsString and kSliced string.
They do not use the content of the string for names. So the problem disappeared.
The heap profiler usability problem will be solved on Blink side.
BUG=285770
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/23460027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16611 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-10 11:12:35 +00:00
svenpanne@chromium.org
625874a48c
Deprecate Persistent functions which were marked to be deprecated.
...
BUG=
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/23707009
Patch from Marja Hölttä <marja@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16493 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-03 07:34:34 +00:00
alph@chromium.org
86bfd87fa6
Do not report unessential weak references in heap snapshot.
...
R=verwaest@chromium.org , yurys@chromium.org
Review URL: https://codereview.chromium.org/19267023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15731 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-17 18:23:16 +00:00
alph@chromium.org
eafc8c971a
Provide named links to code objects in heap snapshot.
...
R=loislo@chromium.org , verwaest@chromium.org , yurys@chromium.org
Review URL: https://codereview.chromium.org/19397002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15722 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-17 13:12:48 +00:00
alph@chromium.org
09131296ac
Add missing links from GlobalPropertyCell to dependent_code
...
It produced orphan DependentCode nodes because links were not created explicitly in ExtractPropertyCellReferences and IndexedReferencesExtractor was disabled for ProperyCells.
R=danno@chromium.org , loislo@chromium.org
Review URL: https://codereview.chromium.org/19368002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15694 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-16 17:47:35 +00:00
loislo@chromium.org
daacd5830e
HeapProfiler: check that heap snapshot has no unretained entries except root.
...
TEST=AllocationSitesAreVisible
BUG=
R=mvstanton@chromium.org
Review URL: https://codereview.chromium.org/18996004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15591 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-10 12:40:42 +00:00
mvstanton@chromium.org
3f1fc1d3ab
Bugfix: AllocationSite objects need to be walkable by the heap snapshot
...
generator.
BUG=
R=machenbach@chromium.org
Review URL: https://codereview.chromium.org/18584007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15575 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-09 14:16:59 +00:00
yangguo@chromium.org
02674ee414
Keep two empty lines between declarations for cpp files
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/18509003
Patch from Haitao Feng <haitao.feng@intel.com>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15510 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-05 09:52:11 +00:00
alph@chromium.org
cc97192cb1
Change the type of system root nodes in heap snapshot to kSynthetic
...
R=mstarzinger@chromium.org , yurys@chromium.org
Review URL: https://codereview.chromium.org/18420019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15492 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-04 16:32:18 +00:00
alph@chromium.org
7b57b624d1
Heap snapshot: Update user roots definition.
...
Do not define an object as a user root if its context is not
present in Global handles.
R=mstarzinger@chromium.org , yurys@chromium.org
Review URL: https://codereview.chromium.org/17881005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15381 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-28 12:53:52 +00:00
alph@chromium.org
bd5fafd58a
Handle AccessorPair struct in heap snapshot.
...
R=svenpanne@chromium.org , yurys@chromium.org
Review URL: https://codereview.chromium.org/17616002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15320 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-25 11:55:33 +00:00
dcarney@chromium.org
9103afa291
Deprecate the version of MakeWeak which takes an Isolate.
...
BUG=NONE
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/16528009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15105 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-06-13 07:23:23 +00:00
dcarney@chromium.org
ff2a76b5d5
remove most V8_ALLOW_ACCESS_TO_* defines from test classes
...
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/15964004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14849 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-28 11:54:52 +00:00
yurys@chromium.org
9974d932b2
Deprecate profiler methods that accept security origin
...
Now that the only known client console.profiles was removed from Blink:
https://src.chromium.org/viewvc/blink?revision=151136&view=revision
https://src.chromium.org/viewvc/blink?revision=151196&view=revision
this method can be deprecated and all the code that supports filtering
CPU profiles based on security origins can be later removed.
Drive-by fix: in line with CpuProfiler changes deprecated HeapProfiler::FindHeapSnapshot to reduce v8 API surface. FindHeapSnapshot may well be implemented based on existing GetSnapshotCount/GetSnapshot and it is only used in the tests.
BUG=None
R=jkummerow@chromium.org , loislo@chromium.org
Review URL: https://codereview.chromium.org/16114002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14833 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-28 08:00:16 +00:00
dcarney@chromium.org
b774c3edfe
stop using AsciiValue
...
TBR=svenpanne@chomium.org
BUG=
Review URL: https://codereview.chromium.org/15129002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14645 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-13 14:18:05 +00:00
verwaest@chromium.org
52008429b7
Use mutable heapnumbers to store doubles in fields.
...
R=danno@chromium.org
Review URL: https://chromiumcodereview.appspot.com/14850006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14597 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-08 15:02:08 +00:00
dcarney@chromium.org
42a8ff87ba
add weakcallback without persistent copying
...
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/14908004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14566 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-07 10:44:30 +00:00
dcarney@chromium.org
cf5ff5a14c
first step to remove unsafe handles
...
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/12729023
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14530 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-05-02 20:18:42 +00:00
mstarzinger@chromium.org
e7c1f322a4
New GC APIs, try 2.
...
With these APIs, the embedder doesn't need to copy Persistent handles around.
BUG=
Review URL: https://codereview.chromium.org/14007008
Patch from Marja Hölttä <marja@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14423 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-24 15:59:23 +00:00
mstarzinger@chromium.org
091f0b7f35
Revert the commits adding new GC-related APIs.
...
We need to solve efficiency problems first.
This reverts the following revisions: 14283 14286 14221 14215
BUG=
Review URL: https://codereview.chromium.org/14294009
Patch from Marja Hölttä <marja@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14293 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-16 16:37:04 +00:00
mstarzinger@chromium.org
e8bc8d76ae
New GC related APIs: Implicit references.
...
When using these APIs, the embedder doesn't need to copy Persistent handles around.
BUG=NONE
Review URL: https://codereview.chromium.org/14175005
Patch from Marja Hölttä <marja@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14283 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-16 12:57:01 +00:00
jkummerow@chromium.org
586c4e74b6
Replace OS::MemCopy with OS::MemMove (just as fast but more flexible).
...
Review URL: https://codereview.chromium.org/13932006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14280 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-16 12:30:51 +00:00
yurys@chromium.org
1c8f45f786
Mark non-isolatified profiler API as V8_DEPRECATED
...
BUG=None
Review URL: https://codereview.chromium.org/12413027
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14216 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-10 15:29:05 +00:00
yurys@chromium.org
047f6f97d9
Isolatify HeapProfiler
...
Re-landing r13997 that was reverted in r14031
TBR=danno
BUG=None
Review URL: https://codereview.chromium.org/13458003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14106 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-04-02 08:03:01 +00:00
danno@chromium.org
ed3809c318
Maintain API compatibility with older versions of V8.
...
Revert "Allow recording individual samples in addition to the aggregated CPU profiles"
Revert "Isolatify CPU profiler"
Revert "Isolatify HeapProfiler"
Revert "Deprecate HeapSnapshot type"
Revert "Isolatify CPU profiler public API"
Revert "MSVS compilation fix after r14006"
Revert "Add methods to allow resuming execution after calling TerminateExecution()."
R=jkummerow@chromium.org ,mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/12475016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14031 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-21 14:42:17 +00:00
yurys@chromium.org
d447716029
Isolatify HeapProfiler
...
Added instance method on v8::Isolate for retrieving instance of v8::HeapProfiler for that isolate. All static methods of v8::HeapProfiler are deprecated, corresponding instance methods are added to v8::HeapProfiler.
All static methods on v8::internal::HeapProfiler were converted into instance ones.
BUG=None
Review URL: https://codereview.chromium.org/12907006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13997 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-20 08:38:17 +00:00
svenpanne@chromium.org
53310ac152
Added a version of the v8::HandleScope constructor with an Isolate and use that consistently.
...
I tried to limit the use of v8::Isolate::GetCurrent() and v8::internal::Isolate::Current() as much as possible, but sometimes this would have involved restructuring tests quite a bit, which is better left for a separate CL.
BUG=v8:2487
Review URL: https://codereview.chromium.org/12716010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13953 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-15 12:06:53 +00:00
svenpanne@chromium.org
aaf6340eb3
Fixed two register allocator bugs (off-by-one error/failure propagation).
...
Minor cleanups on the way, e.g. making sure that we never use something after an allocation failed. Style question: Should we switch to some kind of MUST_USE_RESULT-style to ensure that we handle failures consistently? Not sure...
BUG=v8:2576
Review URL: https://codereview.chromium.org/12867002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13946 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-14 14:42:00 +00:00
alph@chromium.org
f2bd9431de
Fix Windows build
...
TBR=jkummerow
Review URL: https://codereview.appspot.com/7790043
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13937 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-13 18:35:30 +00:00
alph@chromium.org
1afc70a332
Fix huge heap snapshot when a heavily shared context has many variables
...
Prevously v8 put a link to each context variable into a function where
the variable is visible.
Because of that if there are N functions sharing a context having M variables
then N*M links were created for the snapshot.
The fix makes v8 to put the links into the context object.
BUG=145687
TEST=test-heap-snapshot/ManyLocalsInSharedContext
Review URL: https://codereview.appspot.com/7715044
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13936 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-13 17:38:04 +00:00
jkummerow@chromium.org
ed6c366f98
Add missing license headers.
...
BUG=chromium:98597
Review URL: https://codereview.chromium.org/12486003
Patch from Paweł Hajdan Jr. <phajdan.jr@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13854 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-03-07 11:12:26 +00:00
loislo@chromium.org
34c372d800
Fix for HeapSnapshotAddressReuse test case.
...
BUG=V8:2189
TEST=HeapSnapshotAddressReuse
Review URL: https://chromiumcodereview.appspot.com/12320039
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13721 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-25 16:09:57 +00:00
svenpanne@chromium.org
fb6776e84a
Made Isolate a mandatory parameter for everything Handle-related.
...
Unified parameter order of CreateHandle with the rest of v8 on the way. A few
Isolate::Current()s had to be introduced, which is not nice, and not every place
will win a beauty contest, but we can clean this up later easily in smaller steps.
Review URL: https://codereview.chromium.org/12300018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13717 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-25 14:46:09 +00:00
loislo@chromium.org
4c72bb7508
Heap snapshot doesn't detect the fact that an old object was overriden by new one.
...
It is a test only patch. I have no solution yet.
BUG=V8:2189
TEST=
Review URL: https://chromiumcodereview.appspot.com/12321042
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13709 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-02-21 13:16:17 +00:00
svenpanne@chromium.org
52d10a68cb
Add Isolate parameter to Persistent class.
...
BUG=v8:2487
Review URL: https://codereview.chromium.org/12033011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13501 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-25 08:31:46 +00:00
yurys@chromium.org
250023a68d
Implicit references are missing in heap profiles
...
Review URL: https://codereview.chromium.org/11953043
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13486 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-01-24 07:54:40 +00:00
yurys@chromium.org
bc37b9be27
Do not read document and URL properties on global objects while taking heap snapshot
...
This unsafe mechanism was replaced with a user provided callback in r13137 and now we should remove old code.
Review URL: https://codereview.chromium.org/11519029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13203 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-12 09:49:46 +00:00
yurys@chromium.org
cec0745aa2
Introduce callback for resolving global object name while taking heap snapshot
...
Heap profiler currently gets "document" of global objects while taking snapshot (to later retrieve its "URL"). This is unsafe as there may be no current v8 context when the property is requested while corresponding property accessor may make some assumptions about the context stack during its invokation. Several crashes were reported due to this problem:
https://bugs.webkit.org/show_bug.cgi?id=103076
https://crbug.com/162121
https://crbug.com/132727
This patch adds a callback for resolving global object names and avoid the crashes.
Review URL: https://codereview.chromium.org/11415203
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13137 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-12-04 17:17:55 +00:00
danno@chromium.org
5a40f006f9
Remove unused private member variables found by clang -Wunused-private-field
...
Review URL: https://codereview.chromium.org/11414207
Patch from Adam Klein <adamk@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@13096 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-11-29 15:13:49 +00:00
verwaest@chromium.org
72424b3987
Move DescriptorArray into the map.
...
Review URL: https://chromiumcodereview.appspot.com/11188031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12746 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-10-17 13:04:49 +00:00
verwaest@chromium.org
ebd3241b05
Sharing of descriptor arrays.
...
This CL adds multiple things:
Transition arrays do not directly point at their descriptor array anymore, but rather do so via an indirect pointer (a JSGlobalPropertyCell).
An ownership bit is added to maps indicating whether it owns its own descriptor array or not.
Maps owning a descriptor array can pass on ownership if a transition from that map is generated; but only if the descriptor array stays exactly the same; or if a descriptor is added.
Maps that don't have ownership get ownership back if their direct child to which ownership was passed is cleared in ClearNonLiveTransitions.
To detect which descriptors in an array are valid, each map knows its own NumberOfOwnDescriptors. Since the descriptors are sorted in order of addition, if we search and find a descriptor with index bigger than this number, it is not valid for the given map.
We currently still build up an enumeration cache (although this may disappear). The enumeration cache is always built for the entire descriptor array, even if not all descriptors are owned by the map. Once a descriptor array has an enumeration cache for a given map; this invariant will always be true, even if the descriptor array was extended. The extended array will inherit the enumeration cache from the smaller descriptor array. If a map with more descriptors needs an enumeration cache, it's EnumLength will still be set to invalid, so it will have to recompute the enumeration cache. This new cache will also be valid for smaller maps since they have their own enumlength; and use this to loop over the cache. If the EnumLength is still invalid, but there is already a cache present that is big enough; we just initialize the EnumLength field for the map.
When we apply ClearNonLiveTransitions and descriptor ownership is passed back to a parent map, the descriptor array is trimmed in-place and resorted. At the same time, the enumeration cache is trimmed in-place.
Only transition arrays contain descriptor arrays. If we transition to a map and pass ownership of the descriptor array along, the child map will not store the descriptor array it owns. Rather its parent will keep the pointer. So for every leaf-map, we find the descriptor array by following the back pointer, reading out the transition array, and fetching the descriptor array from the JSGlobalPropertyCell. If a map has a transition array, we fetch it from there. If a map has undefined as its back-pointer and has no transition array; it is considered to have an empty descriptor array.
When we modify properties, we cannot share the descriptor array. To accommodate this, the child map will get its own transition array; even if there are not necessarily any transitions leaving from the child map. This is necessary since it's the only way to store its own descriptor array.
Review URL: https://chromiumcodereview.appspot.com/10909007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12492 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-12 16:43:57 +00:00
rossberg@chromium.org
42552808ab
Rename "global context" to "native context",
...
in anticipation of the upcoming lexical global scope.
Mostly automatised as:
for FILE in `egrep -ril "global[ _]?context" src test/cctest`
do
echo $FILE
sed "s/Global context/Native context/g" <$FILE >$FILE.0
sed "s/global context/native context/g" <$FILE.0 >$FILE.1
sed "s/global_context/native_context/g" <$FILE.1 >$FILE.2
sed "s/GLOBAL_CONTEXT/NATIVE_CONTEXT/g" <$FILE.2 >$FILE.3
sed "s/GlobalContext/NativeContext/g" <$FILE.3 >$FILE
rm $FILE.[0-9]
done
R=mstarzinger@chromium.org
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/10832342
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12325 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-17 09:03:08 +00:00
verwaest@chromium.org
61d11f99c4
Show map -> transition array -> descriptor array to the heap profiler.
...
BUG=chromium:142625
Review URL: https://chromiumcodereview.appspot.com/10830309
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12321 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-08-16 14:25:55 +00:00
yangguo@chromium.org
514fc74a47
Limit initial size of hidden properties and store identity hashes inline.
...
BUG=v8:2211
TEST=test-heap/Regress2211
Review URL: https://chromiumcodereview.appspot.com/10827040
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12230 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-30 13:09:09 +00:00
yangguo@chromium.org
791632cf06
Fix compilation when disabling debugger support.
...
Based on a patch by Remi Duraffort <remi.duraffort@st.com>: http://codereview.chromium.org/10702093/
R=mstarzinger@chromium.org
BUG=
TEST=build with debuggersupport=off
Review URL: https://chromiumcodereview.appspot.com/10697085
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11995 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-05 16:23:14 +00:00
yurys@chromium.org
771ba7ae99
Report "hidden properties" in heap profiler for properties case
...
BUG=v8:2212
TEST=cctest/test-heap-profiler/HiddenPropertiesFastCase
Review URL: https://chromiumcodereview.appspot.com/10692058
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11966 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-07-02 12:46:31 +00:00
verwaest@chromium.org
a7565d696a
Update heap test so it calls gc 6 times. This is necessary to avoid flakiness.
...
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/10668022
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11925 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-25 13:55:36 +00:00
alexeif@chromium.org
31a0d0257c
Serialize edge counts instead of indexes in heap snapshot.
...
The serialized node structure currently holds an index
of its first containment edge in the edges array.
The index can be quite big (up to 7 digits for large snapshots).
The patch changes the serialization format to pass
node containment edge count instead. For most nodes the count
is just a single digit number.
This reduces serialized snapshot size and therefore its transfer time.
Review URL: https://chromiumcodereview.appspot.com/10534008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11728 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-06 10:57:20 +00:00
loislo@chromium.org
463a6ffdd4
Expose last seen heap object id via v8 public api.
...
BUG=none
TEST=none
Review URL: https://chromiumcodereview.appspot.com/10444137
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11702 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-06-01 16:10:52 +00:00
loislo@chromium.org
610ef68f06
Eliminate dominator and retained_size fields. They are calculating on front-end side. See meta-bug https://bugs.webkit.org/show_bug.cgi?id=87089
...
BUG=none
TEST=none
Review URL: https://chromiumcodereview.appspot.com/10416035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11626 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-23 05:27:08 +00:00
alexeif@chromium.org
132af25697
Split nodes and edges into separate arrays in heap profiler.
...
This allowed the following changes:
- heap profiler now makes one pass less over the heap.
- HeapEntriesMap does not allocate EntryInfo per each entry.
- there's no need for an extra pass to set indexes before serialization.
As a result snapshot taking time has reduced up to 2x times.
Review URL: https://chromiumcodereview.appspot.com/10353010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11531 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-05-09 14:34:13 +00:00
alexeif@chromium.org
d9f797b404
Eliminate internal and hidden links to oddballs and other non-essential objects in heap snapshot.
...
Review URL: https://chromiumcodereview.appspot.com/10162005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11404 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-20 14:03:06 +00:00
alexeif@chromium.org
d27ba7dfa4
Fix includes order.
...
TBR=mnaganov@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10078015
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11393 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-19 16:31:01 +00:00
alexeif@chromium.org
72a9e445e5
Show names for the strong roots in heap snapshot.
...
Review URL: https://chromiumcodereview.appspot.com/10128006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11392 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-19 15:58:42 +00:00
alexeif@chromium.org
2ec3e5943b
Remove Debug object from the user roots in heap profiler.
...
Review URL: https://chromiumcodereview.appspot.com/10096016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11358 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-17 15:57:35 +00:00
loislo@chromium.org
b2024c531c
Push heap stats as HeapStatsUpdate struct instead of raw array of uint32_t values.
...
We are pushing stats data as a raw array of uint32_t values at the moment.
It makes tricky the process of updating the API between v8 and WebKit.
BUG=none
TEST=HeapSnapshotObjectsStats
Review URL: https://chromiumcodereview.appspot.com/10110001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11355 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-17 13:10:17 +00:00
yurys@chromium.org
1ce7d5d0d4
Add method for resolving SnapshotObjectId by given object
...
Review URL: https://chromiumcodereview.appspot.com/10094011
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11339 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-16 15:36:19 +00:00
alexeif@chromium.org
f4c15c4ec2
External references should not affect dominance relation.
...
Separate objects into two groups: reachable from a window (user),
and unreachable (system). Then do not take into account links
that come from system group to the user group when calculating
dominance relation.
Review URL: https://chromiumcodereview.appspot.com/10086006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11335 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-16 14:31:13 +00:00
jkummerow@chromium.org
9641607fee
fix unused variables in test-heap-profiler.cc to fix compilation with GCC-4.6
...
TEST=GCC-4.6's face gleaming with happiness
Review URL: https://chromiumcodereview.appspot.com/10001009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11334 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-16 13:27:38 +00:00
loislo@chromium.org
17632e447c
Add size metric into Heap Stats.
...
The stats data have only count field at the moment.
A constantly growing array of integers also can be a reason of a leak.
Ans we have to have a way to detect such kind of leaks.
Drive by fix:
FindObject and AddEntry were replaced with FindEntry/FindOrAddEntry pair.
BUG=none
TEST=HeapSnapshotObjectsStats
Review URL: https://chromiumcodereview.appspot.com/10086004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11327 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-16 09:44:42 +00:00
alexeif@chromium.org
48777a7f5b
Split nodes and edges into separate arrays in heap snapshot serialization.
...
Review URL: https://chromiumcodereview.appspot.com/10037004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11315 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-13 12:50:48 +00:00
loislo@chromium.org
07301d7d89
Build fix for Mac.
...
warning: base class 'class v8::OutputStream' should be explicitly initialized in the copy constructor
BUG=none
TEST=none
TBR=mnaganov
Review URL: https://chromiumcodereview.appspot.com/10038044
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11304 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-13 09:19:01 +00:00
loislo@chromium.org
d1f83dd95a
This patch is introducing a way to grab heap stats.
...
The idea is to monitor the heap regulary and track each object in the heap.
With this data we will be able do draw heap usage diagram.
Where X is time and Y is the number of objects.
BUG=none
TEST=HeapSnapshotObjectsStats
Review URL: https://chromiumcodereview.appspot.com/10049002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11302 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-13 08:52:25 +00:00
alexeif@chromium.org
d18eaffdae
Revert "External references should not affect dominance relation."
...
This reverts commit 6e46549d13df2b211ea9b4fac9c09fe5013ec465.
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/10025014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11248 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-08 19:18:06 +00:00
alexeif@chromium.org
5ed3662407
External references should not affect dominance relation.
...
Review URL: https://chromiumcodereview.appspot.com/10007009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11247 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-04-08 18:28:32 +00:00
loislo@chromium.org
0572806287
Fix presubmit check.
...
BUG=none
TEST=none
TBR=mnaganov
Review URL: https://chromiumcodereview.appspot.com/9921014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11188 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-29 14:50:26 +00:00
loislo@chromium.org
d857c994b6
Current schema of calculation max_snapshot_js_object_id is not always correct.
...
As the result the test is flaky.
BUG=v8/2042
TEST=HeapEntryIdsAndGC
R=mnaganov
Review URL: https://chromiumcodereview.appspot.com/9918005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11187 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-29 14:18:11 +00:00
loislo@chromium.org
6306283df9
fix for TestHeapEntryIdsAndGC
...
BUG=none
TEST=none
Review URL: https://chromiumcodereview.appspot.com/9864035
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11163 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-27 12:25:05 +00:00
loislo@chromium.org
b84b44d86c
This value is required for showing the heap snapshot delta in Summary view of DevTools.Profiler.
...
At the moment it is evaluating on the front-end side and this is cost us 2 * (load time + parse time + traverse via snapshot) because I need this value for two previous snapshots.
BUG=none
TEST=test-heap-profiler
Review URL: https://chromiumcodereview.appspot.com/9858016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11161 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-27 11:54:47 +00:00
loislo@chromium.org
9b9e458a43
Revert "This value is required for showing the heap snapshot delta in Summary view of DevTools.Profiler."
...
This reverts commit 634864d65ebe820a967f6162d8e226cf4a73e51a.
BUG=
TEST=
Review URL: https://chromiumcodereview.appspot.com/9861018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11158 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-27 11:12:31 +00:00
loislo@chromium.org
410f3a3375
This value is required for showing the heap snapshot delta in Summary view of DevTools.Profiler.
...
At the moment it is evaluating on the front-end side and this is cost us 2 * (load time + parse time + traverse via snapshot) because I need this value for two previous snapshots.
BUG=none
TEST=test-heap-profiler
Review URL: https://chromiumcodereview.appspot.com/9858016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11150 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-27 08:52:00 +00:00
loislo@chromium.org
b414adb1f3
Complete switch to SnapshotObjectId.
...
BUG=none
TEST=test-heap-profiler
Review URL: https://chromiumcodereview.appspot.com/9858010
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11145 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-26 13:47:37 +00:00
loislo@chromium.org
64c96ad9c0
There is a trick for speed up array shift operation.
...
This trick is confusing a bit the heap snapshoting code.
Such a shiffted array will be interpreted as a new array in the second snapshot.
BUG=none
TEST=HeapEntryIdsAndArrayShift
Review URL: https://chromiumcodereview.appspot.com/9748007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@11096 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-20 14:35:05 +00:00
vegorov@chromium.org
47b6027c37
Add HeapProfiler::GetPersistentHandleCount to be able to track the number of persistent handles
...
It turns out that an increasing number of persistent handles is a good signal for bugs in the bindings layer
BUG=none
TEST=cctest/test-heap-profiler/PersistentHandleCount
Review URL: https://chromiumcodereview.appspot.com/9620007
Patch from Jochen Eisinger <jochen@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10960 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-03-07 17:38:50 +00:00
mikhail.naganov@gmail.com
2350d11dac
Remove now unused CalculateExactRetainedSize function & co.
...
This patch changes the signature of the v8::HeapGraphNode::GetRetainedSize method, but it's not used in Chromium, and it should be easy for other clients (if any) to adjust to this change.
BUG=none
TEST=none
Review URL: https://chromiumcodereview.appspot.com/9466014
Patch from Alexei Filippov <alexeif@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10846 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-27 15:42:36 +00:00
mikhail.naganov@gmail.com
2fe4af7135
Tune snapshot taking progress indicator.
...
As of dominators and retained sizes calculation take quite small time now
comparing to the main passes, it is worth to exclude these from progress
indicator. Now the indicator smoothly runs to 100%, while previously
it ran to 50% and then instantly jumped to 100%.
BUG=none
TEST=none
Review URL: https://chromiumcodereview.appspot.com/9465010
Patch from Alexei Filippov <alexeif@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10831 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-24 15:46:45 +00:00
yurys@chromium.org
97cbb319bd
Provide user-friendly access to natively bound function parameters
...
For a closure created using native Function.prototype.bind() the most important information for the heap profiler user is bound function, receiver and arguments. This change adds shortcuts for those fields.
Review URL: https://chromiumcodereview.appspot.com/9382002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10675 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-10 13:54:20 +00:00
loislo@chromium.org
dc3f16a321
I will apply it to the nodes that can't be mapped to Heap object or Native object.
...
As example there are 'Detached DOM Tree' nodes in WebKit. It is very useful to be able to see all such
nodes grouped together. It can be done with help of some post processing but I did this explicitly
on v8 side because it is much faster. At the moment this kind of nodes has kNative type.
I'd like to hide these nodes from the Retainment View but I can filter them only by name.
BUG=none
TEST=HeapSnapshotRetainedObjectInfo
Review URL: https://chromiumcodereview.appspot.com/9323064
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10614 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-07 05:21:00 +00:00
yurys@chromium.org
a13ad53191
Heap profiler should report implicit references.
...
Implicit references reported to V8 with V8::AddImplicitReferences calls are now reported by heap profiler as 'native' references with type kInternal.
Original WebKit bug report: https://bugs.webkit.org/show_bug.cgi?id=77414
Review URL: https://chromiumcodereview.appspot.com/9316092
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10603 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-02-03 14:51:53 +00:00
loislo@chromium.org
07d720ec41
Detailed heap snapshot usability improvement.
...
The detailed heap snapshot has two groups of nodes. The first one
is the group for v8 heap nodes and the second one is the group for
native objects. At the moment we have two different sets of native
objects. There are 'Detached DOM trees' and 'Document DOM trees' type of objects.
I think it'd be nice to replace one group containing all native objects with
separate groups for different types of native objects.
BUG=none
TEST=HeapSnapshotRetainedObjectInfo
Review URL: https://chromiumcodereview.appspot.com/9223009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10528 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-01-27 12:02:57 +00:00
mikhail.naganov@gmail.com
dae713f0ad
Reapply r10158: Distinguish weak references in heap snapshots, group GC roots.
...
[Fixed the bug revealed by the Win32 bot]
Several changes to better organize snapshot data:
1. Provide information about weak references.
2. Group (GC roots) children.
3. Prettify debug snapshot printing.
BUG=v8:1832
TEST=cctest/test-heap-profiler/*Weak*
TBR=vitalyr@chromium.org
Initial CL: http://codereview.chromium.org/8716009
Review URL: http://codereview.chromium.org/8822019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10182 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-12-06 17:41:47 +00:00
mikhail.naganov@gmail.com
a0c8ea00db
Revert r10158 "Distinguish weak references in heap snapshots, group GC roots."
...
Heap profiler tests fail on Win32, need to investigate.
This reverts commit b5374ebd92c11ac4aae16b4e31e54166d406e490.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10162 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-12-05 17:21:55 +00:00
mikhail.naganov@gmail.com
857aa09772
Distinguish weak references in heap snapshots, group GC roots.
...
Several changes to better organize snapshot data:
1. Provide information about weak references.
2. Group (GC roots) children.
3. Prettify debug snapshot printing.
BUG=v8:1832
TEST=cctest/test-heap-profiler/*Weak*
Review URL: http://codereview.chromium.org/8716009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10158 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-12-05 16:35:57 +00:00
mikhail.naganov@gmail.com
a0f3c5d451
Really fix missing HandleScope to prevent local handles to DOMWindow leaking.
...
A follow-up to r9994.
R=vitalyr@chromium.org
BUG=102895
TEST=cctests/test-heap-profiler/NoHandleLeaks
Review URL: http://codereview.chromium.org/8468016
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@10030 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-18 11:42:39 +00:00
mikhail.naganov@gmail.com
007ad200f8
Fix missing fast property accessors in heap snapshots.
...
Implementation for this case
var x = {};
x.__defineGetter__("y", function Y() { return 42; });
BUG=v8:1818
TEST=cctest/test-heap-profiler/FastCaseGetter
Review URL: http://codereview.chromium.org/8491041
Patch from Ilya Tikhonovsky <loislo@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9985 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-11-14 11:13:29 +00:00
mikhail.naganov@gmail.com
fa0d4ecf43
The detailed heap snapshot generator was slightly adjusted for tracking sliced strings.
...
BUG=v8:1779
TEST=cctest/test-heap-profiler/HeapSnapshotSlicedString
Review URL: http://codereview.chromium.org/8362028
Patch from Ilya Tikhonovsky <loislo@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9742 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-10-21 13:05:37 +00:00
mikhail.naganov@gmail.com
c05354ecc4
Add v8::HeapGraphNode::GetHeapValue method.
...
This allows getting a heap object by a heap snapshot node for further
inspection. Very useful for objects from bindings that mostly have
getter-provided fields.
R=vegorov@google.com
BUG=webkit/61179
TEST=test-heap-profiler/GetHeapValue,GetHeapValueForDeletedObject
Review URL: http://codereview.chromium.org/8046006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9430 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-26 14:38:29 +00:00
vegorov@chromium.org
ac36cb4504
Merge experimental/gc branch to the bleeding_edge.
...
Review URL: http://codereview.chromium.org/7945009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9328 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-19 18:36:47 +00:00
mikhail.naganov@gmail.com
f8e5c71e18
Rename SmartPointer to SmartArrayPointer.
...
As pointed out in: http://codereview.chromium.org/7754007/#msg5
"SmartPointer should have been named SmartArrayPointer as it expects an input
allocated using new[] and deallocates it using delete[]. Using it as a simple
scoped pointer for a single object is incorrect."
R=mnaganov@chromium.org
Review URL: http://codereview.chromium.org/7860011
Patch from Thiago Farina <tfarina@chromium.org>.
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9215 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-09-09 22:39:47 +00:00
mikhail.naganov@gmail.com
2e1e5fc09c
Heap profiler: for objects of class "Object", try to lookup name
...
from the constructor function. This works well for binding objects,
and this matches DevTools' algorithm for name assignment.
R=sgjesse@chromium.org
BUG=none
TEST=test-heap-profiler/GetConstructorName
Review URL: http://codereview.chromium.org/7709026
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9000 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-08-23 12:24:54 +00:00
mikhail.naganov@gmail.com
58824435d1
Pick the namespace alias 'i' from v8.h.
...
These files already include v8.h so they don't need to define the
namespace alias again.
Signed-off-by: Thiago Farina <tfarina@chromium.org>
Review URL: http://codereview.chromium.org/7640012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8919 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-08-12 09:49:55 +00:00
sgjesse@chromium.org
8a6108de95
Remove the ability to compile without logging and profiling
...
The preprocessor defines ENABLE_LOGGING_AND_PROFILING and ENABLE_VMSTATE_TRACKING has been removed as these where required to be turned on for Crankshaft to work. To re-enable reducing the binary size by leaving out heap and CPU profiler a new set of defines needs to be created.
R=ager@chromium.org
BUG=v8:1271
TEST=all
Review URL: http://codereview.chromium.org//7350014
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8622 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-07-13 09:09:04 +00:00
mikhail.naganov@gmail.com
f4bf8f8fee
Remove obsolete aggregating and non-working producers heap profilers.
...
2000 LOC are gone!
R=sgjesse@chromium.org
BUG=1481
Review URL: http://codereview.chromium.org/7247018
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8406 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-24 11:38:47 +00:00
mikhail.naganov@gmail.com
bf9b2f8c2c
Heap profiler: add an ability to iterate over snapshot's nodes.
...
This is a preparation for removing aggregated heap snapshots.
W/o this API, counting object instances in a snapshot is very hard.
R=sgjesse@chromium.org
BUG=1481
TEST=cctest/test-heap-profiler/NodesIteration
Review URL: http://codereview.chromium.org/7204040
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8342 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-06-21 08:02:34 +00:00
mikhail.naganov@gmail.com
cd67929b0b
Heap profiler: fetch document.URL of global objects.
...
This allows to distinguish DOMWindow objects in browser from each other.
R=vitalyr@chromium.org ,sgjesse@chromium.org
BUG=https://bugs.webkit.org/show_bug.cgi?id=61177
TEST=cctest/test-heap-profiler/DocumentURL
Review URL: http://codereview.chromium.org/7082012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8111 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-30 14:31:47 +00:00
vitalyr@chromium.org
179702df03
Inline more zone stuff.
...
R=ager@chromium.org
Review URL: http://codereview.chromium.org/7066004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8009 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-23 22:23:50 +00:00
kmillikin@chromium.org
d0fcbb4ece
Simplify include dependencies.
...
Try to make sure that accessors.h, data-flow.h, list-inl.h, and
scopeinfo.h are included only where needed, but without introducing
implicit dependencies.
Review URL: http://codereview.chromium.org/6903175
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7756 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-05-03 08:23:58 +00:00
mikhail.naganov@gmail.com
b64e85d241
Heap profiler: emit more descriptive names for system objects and properties.
...
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/6776009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7438 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-30 14:04:50 +00:00
mikhail.naganov@gmail.com
2d95ed4b25
Remove snapshots-related code that is implemented in DevTools heap profiler.
...
Diffs and retaining paths are implemented on JS side. There is no need
to maintain native implementation.
R=vitalyr@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/6770009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7412 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-29 12:52:07 +00:00
mikhail.naganov@gmail.com
b2b5d2777e
Add support for CPU and heap profiles deletion.
...
R=vitalyr@chromium.org
BUG=none
TEST=none
Review URL: http://codereview.chromium.org/6685084
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7308 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-22 16:10:01 +00:00
vitalyr@chromium.org
7976ca2cbc
Merge isolates to bleeding_edge.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7271 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-18 20:35:07 +00:00
vitalyr@chromium.org
76e226f832
Revert r7268: it borked the history.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7269 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-18 19:41:05 +00:00
vitalyr@chromium.org
6ff7fdebd3
Merge isolates to bleeding_edge.
...
Review URL: http://codereview.chromium.org/6685088
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7268 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-18 18:49:56 +00:00
mikhail.naganov@gmail.com
dee9c00267
Add an interface for an embedder to provide information about native
...
objects retained by object groups and global handles.
This information is then used during heap snapshot generation
to provide a more complete memory picture.
This patch will be needed to fix https://bugs.webkit.org/show_bug.cgi?id=53659 .
Review URL: http://codereview.chromium.org/6626043
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7125 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2011-03-10 12:05:31 +00:00
mikhail.naganov@gmail.com
5cf643aa42
New heap profiler: add support for progress reporting and control.
...
As taking a snapshot of a large heap takes noticeable time, it's
good to be able to monitor and control it.
The change itself is small, big code deletes and additions are in
fact moves. The only significant change is simplification of
approximated retained sizes calculation algorithm.
Review URL: http://codereview.chromium.org/5687003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5978 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-13 10:42:06 +00:00
mikhail.naganov@gmail.com
dd1a7fa2b3
New Heap Profiler: add API method for finding a graph node by id.
...
TEST=cctest/test-heap-profiler/HeapSnapshotGetNodeById
Review URL: http://codereview.chromium.org/5537001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5914 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-12-02 15:38:51 +00:00
mikhail.naganov@gmail.com
0634c50950
New Heap profiler: fix JSON serialization of aggregated profiles.
...
Serialization was failing due to unset dominator pointers.
TEST=test-heap-snapshot/AggregatedHeapSnapshotJSONSerialization
Review URL: http://codereview.chromium.org/5314003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5888 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-24 10:47:18 +00:00
mikhail.naganov@gmail.com
1cfc63cf8a
New heap profiler: implement fast retaining sizes approximation.
...
Approximation is done by building a dominators tree for the heap graph.
Dominator nodes and retained sizes are serialized into JSON.
Removed:
- reachable size (it is useless, after all);
- HeapEntryCalculatedData (size is now stored in the node, retaining
paths in a hash map);
Review URL: http://codereview.chromium.org/5154007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5867 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-22 14:00:40 +00:00
mikhail.naganov@gmail.com
051f314a99
New heap profiler: include all heap objects and refs into snapshot.
...
Otherwise, retaned memory sizes are not precise. This increases size
of heap snapshot, I will deal with this later. Heap objects and
references previously missing in snapshot are now marked as 'hidden'.
That means, they not shown to user, but participate in sizes
calculation.
Other small changes:
- added 'shortcut' graph edges: e.g. to pin global objects on top
level;
- meta-information in JSON snapshot is no more double encoded.
Review URL: http://codereview.chromium.org/5139002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5849 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-18 10:38:25 +00:00
mikhail.naganov@gmail.com
0f66199b5e
Heap profiler: remove context checks for objects.
...
It seems that there will be no access to heap snapshots from
web pages' code, only from Developer Tools, thus it makes no
sense doing filtering of object by their security contexts.
Review URL: http://codereview.chromium.org/4681003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5787 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-11-08 15:18:12 +00:00
mikhail.naganov@gmail.com
d4bc8e1585
New Heap profiler: add dumping HeapNumbers and InternalFields to snapshot.
...
HeapNumbers do consume memory, so it's worth dumping them. However, we
don't dump their values, as they are not as self-descriptive as values
of strings, and they will increase snapshot size. Storing heap numbers
values can be added if we will feel a sufficient demand for that.
InternalFields are used, e.g. for storing references to DOM nodes
event handlers.
Review URL: http://codereview.chromium.org/3769007
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5635 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-18 09:15:38 +00:00
mikhail.naganov@gmail.com
788c5e344d
Better align heap snapshots contents with debugger info.
...
I created a heap snapshot in Chromium, and then started comparing
it side-by-side with representations of objects provided by
the debugger, fixing discrepancies.
Review URL: http://codereview.chromium.org/3590029
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5612 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-13 14:57:00 +00:00
mikhail.naganov@gmail.com
5a30072502
Fix HeapSnapshotsDiff test, diff implementation, and a bug introduced
...
during snapshot size optimization.
Sorry, now I figured out that the diff implementation itself was also
incorrect. Reachable nodes must be filtered from the beginning,
otherwise, an object that is already disconnected, but not discarded
yet, will not appear as a deleted (thankfully, this bug for some
reason had appeared on the x64 port.)
BUG=868
TEST=HeapSnapshotRootPreservedAfterSorting
Review URL: http://codereview.chromium.org/3531005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5570 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-10-01 07:19:23 +00:00
mikhail.naganov@gmail.com
44050b12b9
Revert last commit due to check fail on Linux.
...
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5568 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-30 12:35:03 +00:00
mikhail.naganov@gmail.com
99c276bbbc
Fix HeapSnapshotsDiff test and a bug introduced during snapshot size optimization.
...
The bug wasn't revealed because the test was disabled.
BUG=848
TEST=HeapSnapshotsDiff,HeapSnapshotRootPreservedAfterSorting
Review URL: http://codereview.chromium.org/3572003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5567 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-30 12:24:56 +00:00
mikhail.naganov@gmail.com
228d56bd8e
Add support for abortion in v8::OutputStream.
...
It's a good idea to allow receiver to interrupt data transmission.
Review URL: http://codereview.chromium.org/3409002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5452 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-14 15:11:24 +00:00
mikhail.naganov@gmail.com
2388079051
Implement heap snapshots serialization into JSON. API is designed
...
to avoid storing serialized snapshot on VM, instead it is emitted
using output stream interface.
The size of JSON emitted is roughly equal to used heap size
(when stored as an ASCII string).
Now a whole heap snapshot can be serialized and transmitted outside
VM. This makes possible:
- implementing non-async UI for heap snapshots inspection;
- storing heap snapshots for further inspection;
- remote profiling (we can even implement a snapshotting mode
where a snapshot isn't even stored in VM, only transmitted --
good for mobile devices);
- creating tools for outside heap snapshots processing, e.g.
converting to HPROF.
Review URL: http://codereview.chromium.org/3311028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5450 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-09-14 11:49:06 +00:00
mikhail.naganov@gmail.com
e839a1ca58
Heap profiler: allow returning aggregated snapshots via the new API.
...
This is intended for smoother migration to the new API in Chromium.
Also, aggregated heap snapshots can be used for cheaply obtaining
heap statistics, e.g. in tests.
Review URL: http://codereview.chromium.org/3124024
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5297 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-18 08:19:29 +00:00
mikhail.naganov@gmail.com
0765b6ea3e
Fix issue 822: handling of JSObject::elements in CalculateNetworkSize.
...
BUG=822
TEST=test-heap-profiler/Issue822
Review URL: http://codereview.chromium.org/3128004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5235 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-11 09:03:23 +00:00
mikhail.naganov@gmail.com
1695003bb9
Heap profiler: reduce heap snapshots size.
...
The size of a snapshot is now 65-80% of the JS heap size (tested on
GMail and Wave), previously it was >200%.
BUG=783
Review URL: http://codereview.chromium.org/3060008
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5211 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-08-09 11:37:24 +00:00
mikhail.naganov@gmail.com
3471e873ab
Fix presubmit errors in test-heap-profiler.cc
...
I tried adding CheckNonEqualsHelper for int64_t, but this causes
another avalanche of function resolving ambuguities. So, I ended
up fooling linter.
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/3024001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5081 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-15 15:01:42 +00:00
mikhail.naganov@gmail.com
522faec553
Fix compile errors on Linux x64 and Windows.
...
Will fix test-heap-profiler in the next change.
TBR=ager@chromium.org
Review URL: http://codereview.chromium.org/2877019
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5079 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-15 14:28:52 +00:00
mikhail.naganov@gmail.com
c98ac6e82c
Heap profiler: implement diffing of snapshots.
...
To trace objects between snapshots, an external map of object tags is
maintained. After the first heap snapshot has been taken, the map is
updated by reporting object moves from the GC. If no snapshots were
taken, there is no overhead (except for flag checking).
I considered graph comparison algorithms that doesn't require using
object tags, but they are all of a high computational complexity, and
will still fail to detect object moves properly, even for trivial
cases, so using tags looks like unavoidable.
Review URL: http://codereview.chromium.org/3020002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5078 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-15 13:21:50 +00:00
kaznacheev@chromium.org
0243bc875c
Move serialized scope info from Code object to SharedFunctionInfo.
...
The scope info is now stored in a FixedArray referenced from SharedFunctionInfo.
Review URL: http://codereview.chromium.org/2918001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5056 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-07-13 13:06:33 +00:00
mikhail.naganov@gmail.com
b6e6ab6972
Heap profiler: perform a GC round before taking a snapshot
...
to get rid of global object loaded from a snapshot. This
eliminates the "double global object" issue. Thanks to Mads
for suggesting this!
Review URL: http://codereview.chromium.org/2865013
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4917 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-22 14:58:08 +00:00
mikhail.naganov@gmail.com
93387f272e
Heap profiler: add a missing link between a function closure and shared function info.
...
Review URL: http://codereview.chromium.org/2846012
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4891 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-17 12:56:55 +00:00
mikhail.naganov@gmail.com
a4cc374d37
Fix HeapSnapshot test in the case when snapshotting is enabled.
...
TBR=sgjesse@chromium.org
Review URL: http://codereview.chromium.org/2843002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4865 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-15 12:28:25 +00:00
mikhail.naganov@gmail.com
f213b096bc
Heap profiler: publish API and add test.
...
Review URL: http://codereview.chromium.org/2822009
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4864 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-06-15 11:44:07 +00:00
ricow@chromium.org
bdd125c611
Added zone-inl.h to test-heap-profiler to fix test build failure after header file refactoring in revision 4058.
...
Review URL: http://codereview.chromium.org/698002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4059 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-03-09 08:25:22 +00:00
antonm@chromium.org
29af9c54a4
Merge ObjectIterator::has_next and ObjectIterator::next methods.
...
This reduces chances of improper usage, see http://code.google.com/p/v8/issues/detail?id=586
for more details.
BUG=586
Review URL: http://codereview.chromium.org/555072
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3696 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2010-01-25 22:53:18 +00:00
lrn@chromium.org
d53f05e3e2
Fix warnings on Win64.
...
Set warning level to /W3 and change implicit conversions from size_t
to int. Most "fixes" are simply manifesting the implicit casts or using
a special strlen replacement that returns int.
Review URL: http://codereview.chromium.org/390004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@3273 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-11-11 09:50:06 +00:00
mikhail.naganov@gmail.com
1ef8754597
Heap profiler: correctly determine equivalence of objects having self-refs.
...
Review URL: http://codereview.chromium.org/242031
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2972 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-28 09:05:06 +00:00
mikhail.naganov@gmail.com
f1a89f3379
Heap profiler: aggregate retainers count of equivalent clusters.
...
Also perform some refactoring.
Review URL: http://codereview.chromium.org/247001
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2971 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-28 07:12:39 +00:00
mikhail.naganov@gmail.com
9b4c950963
Heap profiler: count the number of back references for objects.
...
Also, perform some refactoring to reuse common code between constructor and retainer profiles.
Review URL: http://codereview.chromium.org/209028
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2936 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-18 12:05:18 +00:00
mikhail.naganov@gmail.com
abc0bd46f6
Add initial version of retainers heap profile.
...
The profile is taken together with constructors profile. In theory, it
should represent a complete heap graph. However, this takes a lot of memory,
so it is reduced to a more compact, but still useful form. Namely:
- objects are aggregated by their constructors, except for Array and Object
instances, that are too hetereogeneous;
- for Arrays and Objects, initially every instance is concerned, but then
they are grouped together based on their retainer graph paths similarity (e.g.
if two objects has the same retainer, they are considered equal);
Review URL: http://codereview.chromium.org/200132
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2903 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2009-09-16 13:41:24 +00:00