yurys
619d4535cc
Remove uid and title from HeapSnapshot
...
None of these fields is used in Blink. Embedder always can implement them using existing API.
BUG=chromium:465651
LOG=Y
Review URL: https://codereview.chromium.org/983833006
Cr-Commit-Position: refs/heads/master@{#27113}
2015-03-10 15:14:07 +00:00
loislo
9b02dc5b5f
CpuProfiler: move StringsStorage class to separate source and header files.
...
Mechanical change.
This will break dependency between profiler-generator and heap-profiler-generator.
Later this will help us to reuse SourcePosition in cpu-profiler.
BUG=452067
LOG=n
Review URL: https://codereview.chromium.org/945873002
Cr-Commit-Position: refs/heads/master@{#26780}
2015-02-20 15:16:00 +00:00
ishell
08146dc023
Introduced PropertyType ACCESSOR_FIELD.
...
Review URL: https://codereview.chromium.org/805453002
Cr-Commit-Position: refs/heads/master@{#25842}
2014-12-16 13:22:31 +00:00
jkummerow@chromium.org
f96e386d9a
Replace C++ bitfields with our own BitFields
...
Shave this yak from orbit, it's the only way to be sure.
BUG=chromium:427616
LOG=n
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/700963002
Cr-Commit-Position: refs/heads/master@{#25148}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@25148 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-11-05 12:41:46 +00:00
yurys@chromium.org
60f71a9bd6
Heap profiler clean-up: remove dead code
...
R=yangguo@chromium.org , loislo@chromium.org
LOG=N
BUG=Non
Review URL: https://codereview.chromium.org/681333003
Cr-Commit-Position: refs/heads/master@{#24954}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24954 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-28 16:32:15 +00:00
yurys@chromium.org
b4799b8d1f
Revert "Heap profiler clean-up: remove unused methods"
...
This reverts commit 63fd24a7c0782ccc3221803e3a2740f1e1b92ceb. Broke compilation on Mac.
TBR=loislo@chromium.org , yangguo@chromium.org
Review URL: https://codereview.chromium.org/684883002
Cr-Commit-Position: refs/heads/master@{#24948}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24948 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-28 15:12:42 +00:00
yurys@chromium.org
306ce733bf
Heap profiler clean-up: remove unused methods
...
LOG=N
BUG=None
R=loislo@chromium.org , yangguo@chromium.org
Review URL: https://codereview.chromium.org/680343002
Cr-Commit-Position: refs/heads/master@{#24946}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24946 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-10-28 14:54:15 +00:00
yurys@chromium.org
269c46ee80
Simplify synthetic roots creation in heap snapshot
...
The synthetic roots exist in every snapshot and there are no actual objects corresponding to them (there was attempt to create some virtual objects to reuse existing snapshot builder but it just complicated the things).
Previously synthetic root wouldn't have been added if it was empty. Current implementation always adds all synthetic roots in the snapshot no matter if they are empty or not.
BUG=None
LOG=N
R=alph@chromium.org , mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/590833002
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24124 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-22 14:40:59 +00:00
alph@chromium.org
ec8f976113
Add AccessorInfo handling into heap profiler.
...
BUG=
R=svenpanne@chromium.org , yurys@chromium.org
Review URL: https://codereview.chromium.org/564433003
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@23866 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-09-11 11:08:40 +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
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
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
bmeurer@chromium.org
d4b533d41b
Bulk update of Google copyright headers in source files.
...
R=svenpanne@chromium.org
Review URL: https://codereview.chromium.org/259183002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@21035 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-29 06:42:26 +00:00
marja@chromium.org
8b9fd69616
Refactoring: HashMap: provide a pointer match function, so users don't need to.
...
R=yangguo@chromium.org
Review URL: https://codereview.chromium.org/239133002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20773 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-04-15 14:48:21 +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
d7ec9ab061
Remove SnapshotFillerInterface
...
There used to be additional pass in the heap profiler that estimated memory required for the snapshot and it used special implementation of the interface. Now that we dropped that step it doesn't makes sense to keep the interface with single implementation.
BUG=None
LOG=N
R=loislo@chromium.org , mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/194503002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@19875 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2014-03-13 07:48:42 +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
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
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
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
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
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
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
yurys@chromium.org
c7053c8a37
Move heap profiler state flags to HeapProfiler
...
- moved is_tracking_objects_ flag to HeapProfiler and renamed it to is_tracking_objects_moves_
- Removed redundant call to UpdateHeapObjectsMap
BUG=None
LOG=N
R=loislo@chromium.org , mstarzinger@chromium.org
Review URL: https://codereview.chromium.org/94993004
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18149 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-29 09:47:32 +00:00
yangguo@chromium.org
aa3518a0f3
Make sure files end with exactly one new line and police this in presubmit.
...
The changes are (excluding presubmit.py) mechanical. I added the following
lines after the check and iterated the presubmit script until all errors
went away:
f = open(name, "w");
if contents.endswith('\n\n'):
f.write(contents[0:-1])
else:
f.write(contents + '\n')
R=jkummerow@chromium.org
Review URL: https://codereview.chromium.org/82803005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18017 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-11-22 13:50:39 +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
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
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
loislo@chromium.org
0daf224c17
HeapSnapshot: replace O(N*ln(N)) algorithm of sorting with O(N) one.
...
We have HashMap for the strings. They got id sequentially. So we could use index sort.
BUG=none
R=alph@chromium.org , yangguo@chromium.org
Review URL: https://codereview.chromium.org/24174002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16734 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-16 13:13:42 +00:00
loislo@chromium.org
2abe14b8f6
HeapProfiler: replace pointer based matching algorithm with string matching algorithm for strings_ member.
...
pros: decreased snapshot size.
cons: increased serialization time.
I've tested the implementation on gmail 90mb heap.
I saw no speed degradation on the serialization step.
The snapshot size lost ~3% of its size. 100Mb -> 97Mb.
BUG=none
R=alph@chromium.org , yangguo@chromium.org
Review URL: https://codereview.chromium.org/24120006
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16725 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-16 09:16:03 +00:00
dcarney@chromium.org
47e86b889e
Get rid of most uses of 'Temporary macro' HEAP
...
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/23708030
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16622 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-10 14:30:36 +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
dcarney@chromium.org
4f5ef30280
remove Isolate::Current from most files starting with 'f' through 'i'
...
R=svenpanne@chromium.org
BUG=
Review URL: https://codereview.chromium.org/23886002
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16506 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-09-03 11:47:16 +00:00
yurys@chromium.org
4e6041d595
Use standard routine to compute pointer hashs in heap profiler
...
BUG=None
R=alph@chromium.org , yangguo@chromium.org
Review URL: https://codereview.chromium.org/22300005
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16069 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-08-06 08:49:05 +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
yurys@chromium.org
696090196d
Delete deprecated CPU profiler code that supports filtering by security token
...
The methods that allow to filter CPU profile by security token were introduced to support console.profiles in WebKit. Now that console.profiles is removed and corresponding V8 API methods have been deprecated in 3.19 branch(https://code.google.com/p/v8/source/browse/branches/3.19/include/v8-profiler.h ) it is safe to remove all that code.
BUG=None
R=jkummerow@chromium.org , loislo@chromium.org
Review URL: https://codereview.chromium.org/18709003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15528 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-07-06 09:12:09 +00:00