- 18 Dec, 2013 1 commit
-
-
yurys@chromium.org authored
All methods for accessing collected profiles by index are deprecated. The indexed storage may well be implemented by the embedder should he need it. CpuProfiler's responsibility is just to create CpuProfile object that contains all collected data and whose lifetime can be managed by the embedder. BUG=chromium:327298 LOG=Y R=svenpanne@chromium.org Review URL: https://codereview.chromium.org/117353002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@18337 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 18 Oct, 2013 1 commit
-
-
yurys@chromium.org authored
Otherwise the string passed as const char* may be disposed and we will end up with a dangling pointer. Also changed StringsStorage::GetCopy so that a copy is not created if the string is already in the cache. BUG=None R=alph@chromium.org, svenpanne@chromium.org Review URL: https://codereview.chromium.org/27627006 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17260 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 14 Oct, 2013 1 commit
-
-
yurys@chromium.org authored
* Removed unused CodeEntry::CopyData * Removed unnecessary INLINE macros BUG=None R=loislo@chromium.org, yangguo@chromium.org Review URL: https://codereview.chromium.org/25382003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17180 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 10 Oct, 2013 1 commit
-
-
yurys@chromium.org authored
CpuProfileNode currently exposes only line number which is not enough for the cases when there is more than one function on the same line. This change exposes column number on CpuProfileNode. BUG=302537 R=jkummerow@chromium.org, loislo@chromium.org Review URL: https://codereview.chromium.org/25541003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17142 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 11 Sep, 2013 1 commit
-
-
dcarney@chromium.org authored
R=svenpanne@chromium.org BUG= Review URL: https://codereview.chromium.org/23468021 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16631 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 05 Sep, 2013 1 commit
-
-
loislo@chromium.org authored
Current v8 implementation may disable optimization for a particular function or block it with help of dont_optimize flag. The patch propagates the reason of that to the SharedFunctionInfo where cpu profiler can get it. SharedFunctionInfo is a heap object so I extracted 8 bits from OptsCount for handling bailout reason code. BUG=none TEST=test-profile-generator/BailoutReason R=yangguo@chromium.org Review URL: https://codereview.chromium.org/23817003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16555 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 02 Sep, 2013 1 commit
-
-
bmeurer@chromium.org authored
Drop the previous Semaphore class from platform files. Add new Semaphore class using the new TimeDelta class for the WaitFor() operation. Consistently assert correct behaviour for the different implementations. Improve test coverage of the Semaphore class. R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/23748003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16473 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 29 Aug, 2013 1 commit
-
-
bmeurer@chromium.org authored
These classes are meant to replace OS::Ticks() and OS::TimeCurrentMillis(), which are broken in several ways. The ElapsedTimer class implements a stopwatch using TimeTicks::HighResNow() for high resolution, monotonic timing. Also fix the CpuProfile::GetStartTime() and CpuProfile::GetEndTime() methods to actually return the time relative to the unix epoch as stated in the documentation (previously that was relative to some arbitrary point in time, i.e. boot time). The previous Windows issues have been resolved, and we now use GetTickCount64() on Windows Vista and later, falling back to timeGetTime() with rollover protection for earlier Windows versions. BUG=v8:2853 R=machenbach@chromium.org, yurys@chromium.org Review URL: https://codereview.chromium.org/23490015 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16413 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 28 Aug, 2013 6 commits
-
-
bmeurer@chromium.org authored
Revert "Cross-compiling from Linux to Android requires -lrt for the host toolset.", "Fix Visual Studio debug build after r16398." and "Reland "Add Chromium-style TimeDelta, Time and TimeTicks classes, and a new ElapsedTimer class."" This reverts commit r16398, r16399 and r16402 for breaking the Windows WebKit tests. Will reland fix which doesn't use High Resolution Timer for ElapsedTimer (we suspect QueryPerformanceCounter overhead is responsible for test breakage). TBR=machenbach@chromium.org Review URL: https://codereview.chromium.org/23710002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16405 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
bmeurer@chromium.org authored
These classes are meant to replace OS::Ticks() and OS::TimeCurrentMillis(), which are broken in several ways. The ElapsedTimer class implements a stopwatch using TimeTicks::HighResNow() for high resolution, monotonic timing. Also fix the CpuProfile::GetStartTime() and CpuProfile::GetEndTime() methods to actually return the time relative to the unix epoch as stated in the documentation (previously that was relative to some arbitrary point in time, i.e. boot time). BUG=v8:2853 R=machenbach@chromium.org Review URL: https://codereview.chromium.org/23469013 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16398 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
bmeurer@chromium.org authored
This reverts commit r16390 for breaking the Windows build. Will reland fixed version, which also uses the platform/ folder instead of time/ folder as per offline discussion. TBR=machenbach@chromium.org Review URL: https://codereview.chromium.org/23690003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16391 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
bmeurer@chromium.org authored
These classes are meant to replace OS::Ticks() and OS::TimeCurrentMillis(), which are broken in several ways. The ElapsedTimer class implements a stopwatch using TimeTicks::HighResNow() for high resolution, monotonic timing. Also fix the CpuProfile::GetStartTime() and CpuProfile::GetEndTime() methods to actually return the time relative to the unix epoch as stated in the documentation (previously that was relative to some arbitrary point in time, i.e. boot time). BUG=v8:2853 R=machenbach@chromium.org, yurys@chromium.org Committed: https://code.google.com/p/v8/source/detail?r=16388 Review URL: https://codereview.chromium.org/23295034 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16390 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
bmeurer@chromium.org authored
This reverts commit r16388 for breaking build due to merge typo, will reland with typo fixed. TBR=machenbach@chromium.org Review URL: https://codereview.chromium.org/23698002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16389 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
bmeurer@chromium.org authored
These classes are meant to replace OS::Ticks() and OS::TimeCurrentMillis(), which are broken in several ways. The ElapsedTimer class implements a stopwatch using TimeTicks::HighResNow() for high resolution, monotonic timing. Also fix the CpuProfile::GetStartTime() and CpuProfile::GetEndTime() methods to actually return the time relative to the unix epoch as stated in the documentation (previously that was relative to some arbitrary point in time, i.e. boot time). BUG=v8:2853 R=machenbach@chromium.org, yurys@chromium.org Review URL: https://codereview.chromium.org/23295034 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16388 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 27 Aug, 2013 1 commit
-
-
yurys@chromium.org authored
GetTotalTime, GetSelfTime and GetTotalSamplesCount were deprecated in 3.20 (https://code.google.com/p/v8/source/browse/branches/3.20/include/v8-profiler.h) and can be safely removed. BUG=None R=bmeurer@chromium.org, loislo@chromium.org Review URL: https://codereview.chromium.org/23554002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16367 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 07 Aug, 2013 1 commit
-
-
yurys@chromium.org authored
This change provides an API for the embedder to tell CPU profiler if it is idle or busy with some task. This way we can discriminate between idle time and some native code execution. BUG=268947 R=alph@chromium.org, yangguo@chromium.org Review URL: https://codereview.chromium.org/22412003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16109 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 06 Aug, 2013 1 commit
-
-
yurys@chromium.org authored
The start and end time are now measured in microseconds and the type is int64_t. This way it seems more natural as we are going to support submilisecond sampling rate soon. Also it fixes cctest/test-cpu-profiler/ProfileStartEndTime test failure caused by comparison between long double and double. TEST=cctest/test-cpu-profiler/ProfileStartEndTime BUG=v8:2824 R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/22155003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16067 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 05 Aug, 2013 3 commits
-
-
bmeurer@chromium.org authored
This reverts r16049 for breaking build on windows. TBR=svenpanne@chromium.org,machenbach@chromium.org Review URL: https://codereview.chromium.org/22189002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16050 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
yurys@chromium.org authored
The start and end time are now measured in microseconds and the type is int64_t. This way it seems more natural as we are going to support submilisecond sampling rate soon. Also it fixes cctest/test-cpu-profiler/ProfileStartEndTime test failure caused by comparison between long double and double. TEST=cctest/test-cpu-profiler/ProfileStartEndTime BUG=v8:2824 R=alph@chromium.org, bmeurer@chromium.org Review URL: https://codereview.chromium.org/22172002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16049 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
yurys@chromium.org authored
I'm going to change CPU profiler API and deprecate GetSelfTime, GetTotalTime and GetTotalSamplesCount on CpuProfileNode as all of those values are derived from self samples count and sampling rate. The sampling rate in turn is calculate based on the profiling duration so having start/end time and total sample count is enough for calculating smpling rate. BUG=267595 R=alph@chromium.org, bmeurer@chromium.org Review URL: https://codereview.chromium.org/21918002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16039 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 30 Jul, 2013 1 commit
-
-
yurys@chromium.org authored
Sampling rate is now calculated as total number of samples divided by profiling time in ms. Before the patch the sampling rate was updated once per 100ms which doesn't have any obvious advantage over the simpler method. Also we are going to get rid of the profile node self and total time calculation in the v8 CPU profiler and only expose profiling start/end time for CpuProfile and number of ticks on each ProfileNode and let clients do all the math should they need it. BUG=None R=bmeurer@chromium.org, loislo@chromium.org Review URL: https://codereview.chromium.org/21105003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15944 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 06 Jul, 2013 1 commit
-
-
yurys@chromium.org authored
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
-
- 02 Jul, 2013 3 commits
-
-
yurys@chromium.org authored
When current function is FunctionCall builtin we have no reliable way to determine its caller function (in many cases the top of the sampled stack contains address of the caller but sometimes it does not). Instead of dropping the sample or its two top frames we simply mark the caller frame as '(unresolved function)'. It seems like a better approach that dropping whole sample as knowing the top function and the rest of the stack the user should be able to figure out what the caller was. This change adds builtin id to CodeEntry objects. It will be used later to add similar top frame analysis for FunctionApply and probably other builtins. BUG=None TBR=loislo@chromium.org Review URL: https://codereview.chromium.org/18422003 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15436 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
yurys@chromium.org authored
This reverts commit r15426. The new test fails in Debug mode. BUG=None TBR=jkummerow@chromium.org Review URL: https://codereview.chromium.org/18478002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15434 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
loislo@chromium.org authored
Each CpuProfileNode has resource_name string property. It cost us N * strlen(resource_name) where N is number of functions in the collected profile. We could transfer script_id instead of resource_name so it would reduce transfer size and help us to solve the problem with evals and sourceURL. BUG=none TEST=test-cpu-profiler/CollectCpuProfile R=jkummerow@chromium.org, yurys@chromium.org Committed: https://code.google.com/p/v8/source/detail?r=15429 Review URL: https://codereview.chromium.org/17642009 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15433 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 01 Jul, 2013 6 commits
-
-
loislo@chromium.org authored
This reverts commit d575f6bc8b262dac08f02913ae6e7c504c9dd900. Check is failing on debug bots. TBR= yurys@chromium.org Review URL: https://chromiumcodereview.appspot.com/18332010 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15431 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
loislo@chromium.org authored
Each CpuProfileNode has resource_name string property. It cost us N * strlen(resource_name) where N is number of functions in the collected profile. We could transfer script_id instead of resource_name so it would reduce transfer size and help us to solve the problem with evals and sourceURL. BUG=none TEST=test-cpu-profiler/CollectCpuProfile R=jkummerow@chromium.org, yurys@chromium.org Review URL: https://codereview.chromium.org/17642009 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15429 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
yurys@chromium.org authored
When current function is FunctionCall builtin we have no reliable way to determine its caller function (in many cases the top of the sampled stack contains address of the caller but sometimes it does not). Instead of dropping the sample or its two top frames we simply mark the caller frame as '(unresolved function)'. It seems like a better approach that dropping whole sample as knowing the top function and the rest of the stack the user should be able to figure out what the caller was. This change adds builtin id to CodeEntry objects. It will be used later to add similar top frame analysis for FunctionApply and probably other builtins. BUG=None R=jkummerow@chromium.org, loislo@chromium.org Review URL: https://codereview.chromium.org/18316004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15426 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
loislo@chromium.org authored
The bodies of methods in ProfilerEventProcessor were moved into CpuProfiler. Multiple NewCodeEntry methods in CpuProfilesCollection were replaced with one which simply passes arguments to the CodeEntry constructor. And CpuProfiler just calls this method when it needs a CodeEntry object. This NewCodeEntry method is required because CpuProfilesCollection keeps ownership of CodeEntry objects. BUG=255392 TEST=existing tests R=yangguo@chromium.org, yurys@chromium.org Committed: https://code.google.com/p/v8/source/detail?r=15405 Review URL: https://codereview.chromium.org/18053004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15407 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
loislo@chromium.org authored
This reverts commit 76adf84b83ec3c0b261cbc29369ce4ac83f9d002. windows compilation failed BUG=none TBR=yurys@chromium.org Review URL: https://codereview.chromium.org/18344002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15406 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
loislo@chromium.org authored
The bodies of methods in ProfilerEventProcessor were moved into CpuProfiler. Multiple NewCodeEntry methods in CpuProfilesCollection were replaced with one which simply passes arguments to the CodeEntry constructor. And CpuProfiler just calls this method when it needs a CodeEntry object. This NewCodeEntry method is required because CpuProfilesCollection keeps ownership of CodeEntry objects. BUG=255392 TEST=existing tests R=yangguo@chromium.org, yurys@chromium.org Review URL: https://codereview.chromium.org/18053004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15405 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 26 Jun, 2013 3 commits
-
-
loislo@chromium.org authored
In almost all the places where we create CodeEntry we use default values. Lets move them into arguments default values. BUG=none TEST=no logic changes. R=yangguo@chromium.org, yurys@chromium.org Committed: https://code.google.com/p/v8/source/detail?r=15333 Review URL: https://codereview.chromium.org/17836002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15340 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
loislo@chromium.org authored
This reverts commit a6cc1e3b563c0d0689da35dbf8163545c8146ddd. One test starts failing on Windows. BUG=none TBR= yurys@chromium.org Review URL: https://codereview.chromium.org/17875002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15335 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
loislo@chromium.org authored
In almost all the places where we create CodeEntry we use default values. Lets move them into arguments default values. BUG=none TEST=no logic changes. R=yangguo@chromium.org, yurys@chromium.org Review URL: https://codereview.chromium.org/17836002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@15333 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 03 Jun, 2013 1 commit
-
-
dcarney@chromium.org authored
R=svenpanne@chromium.org BUG= Review URL: https://codereview.chromium.org/16160010 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14911 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 14 May, 2013 1 commit
-
-
yurys@chromium.org authored
Stack iterator takes return address based on the frame pointer (ebp) and detects JS frames based on value at fp + StandardFrameConstants::kMarkerOffset. So in order the iterator to work correctly this values should be already setup for the current function. Stack frame is constructed at the very beginning of JS function code and destroyed before return. If sample is taken before before the frame construction is completed or after it was destroyed the stack iterator will wrongly think that FP points at the current functions frame base and will skip callers frame. To avoid this we mark code ranges where stack frame doesn't exist and completely ignore such samples. This fixes cctest/test-cpu-profiler/CollectCpuProfile flakiness. BUG=v8:2628 R=jkummerow@chromium.org Review URL: https://codereview.chromium.org/14253015 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14670 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 26 Apr, 2013 1 commit
-
-
yurys@chromium.org authored
BUG=None Review URL: https://codereview.chromium.org/14471035 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14446 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 24 Apr, 2013 1 commit
-
-
yurys@chromium.org authored
CodeEntry* is always NULL for SharedFunctionInfo entries in the CodeMap. Take this into account when printing the map. Drive-by: removed CodeEntry::shared_id() which is never called. BUG=None Review URL: https://codereview.chromium.org/14387004 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14410 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 02 Apr, 2013 1 commit
-
-
yurys@chromium.org authored
Re-landing r13980 that was reverted in r14031 TBR=danno BUG=None Review URL: https://codereview.chromium.org/13454002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14104 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 21 Mar, 2013 1 commit
-
-
danno@chromium.org authored
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
-