Go to file
lpy cb59fc1fac Refactor CpuProfiler.
Currently CpuProfiler is a subclass of CodeEventListener, it listens code events
from Logger, constructs and stores CodeEventsContainer. This patch is part of
the effort to split the logic of CodeEventListener as ProfilerListener out of
the profiling functionality logic in CpuProfiler. A ProfilerListener will listen
to code events, construct code event to CodeEventsContainer and pass it to code
event handler.

The reason we refactor CpuProfiler is that eventually we want to move
CpuProfiler as part of sampler library and code event listener should stay
inside V8.

Main changes:
1. Refactored CpuProfiler into two parts, the CpuProfiler with profling
functionality and the ProfilerListener listening to code events from Logger.
2. Created CodeEventObserver and made CpuProfiler inherit from it.
ProfilerListener will have a list of observers and call CodeEventHandler once a
code event is created.
3. Moved code entry list from CodeEntry to ProfilerListener.

Minor changes:
1. Moved static code entry as part of CodeEntry.
2. Added ProfilerListener to Logger.

BUG=v8:4789

Review-Url: https://codereview.chromium.org/2053523003
Cr-Commit-Position: refs/heads/master@{#37112}
2016-06-20 17:26:41 +00:00
benchmarks Revert "Refactoring: Make gtest testsuite the default." 2014-09-02 09:17:26 +00:00
build_overrides [gn] Fix another ia32/x86 typo. 2016-06-17 07:44:41 +00:00
docs [Docs] Removed unused docs because they are moved to GitHub 2015-11-19 10:23:30 +00:00
gni Update GN build to use v8_target_cpu instead of v8_target_arch. 2016-06-17 07:07:30 +00:00
gypfiles [gn] Default to ninja on all platforms 2016-06-20 10:06:45 +00:00
include [snapshot] serialize embedder-provided external references. 2016-06-20 15:28:26 +00:00
infra [mb] Switch branch builders to mb 2016-06-20 13:38:10 +00:00
samples [icu] Support loading data file from default location 2016-06-08 12:11:34 +00:00
src Refactor CpuProfiler. 2016-06-20 17:26:41 +00:00
test Refactor CpuProfiler. 2016-06-20 17:26:41 +00:00
testing Converted V8 CQ config to proto-format 2015-05-28 15:02:53 +00:00
third_party/binutils [gn] Move build to gypfiles 2016-04-29 10:11:11 +00:00
tools [tools] make ic-explorer deal with empty map records from --trace-ic 2016-06-16 07:08:19 +00:00
.clang-format [formatting] Remove the formatting requirement for 2 empty lines between declarations. 2016-01-25 09:50:17 +00:00
.gitignore [mb] Add mb config 2016-06-09 09:12:54 +00:00
.gn [gn] Port exec_script whitelist from chromium/src/build 2016-06-07 07:49:12 +00:00
.ycm_extra_conf.py Use C++11 / gnu++11, not 0x 2016-03-22 15:24:43 +00:00
AUTHORS Parser: Report use counts once per feature 2016-06-14 21:41:31 +00:00
BUILD.gn Refactor CpuProfiler. 2016-06-20 17:26:41 +00:00
ChangeLog [Release] Update ChangeLog file 2016-02-17 21:29:09 +00:00
CODE_OF_CONDUCT.md Explicitly state that the Chromium Code of Conduct also applies to V8 2016-03-02 09:51:24 +00:00
codereview.settings Use v8-reviews@ for review mail, so v8-dev@ is free for dev discussions 2015-09-09 08:14:11 +00:00
DEPS Update V8 DEPS. 2016-06-20 03:25:22 +00:00
LICENSE Updates to the license information of third party components. 2015-06-16 12:37:50 +00:00
LICENSE.fdlibm Add LICENSE.fdlibm for all the fdlibm imported sources. 2016-06-09 07:17:03 +00:00
LICENSE.strongtalk Add LICENSE.v8, LICENSE.strongtalk and LICENSE.valgrind to the v8 2011-02-03 07:10:06 +00:00
LICENSE.v8 Add LICENSE.v8, LICENSE.strongtalk and LICENSE.valgrind to the v8 2011-02-03 07:10:06 +00:00
LICENSE.valgrind Add LICENSE.v8, LICENSE.strongtalk and LICENSE.valgrind to the v8 2011-02-03 07:10:06 +00:00
Makefile PPC/s390: [build] fix target_arch for ppc/s390 native builds 2016-06-17 13:57:09 +00:00
Makefile.android [build] Fix d8-for-Android builds 2016-05-20 12:10:45 +00:00
Makefile.nacl [gn] Move build to gypfiles 2016-04-29 10:11:11 +00:00
OWNERS [owners] adding more toplevel owners (but mainly me) 2016-03-16 15:54:42 +00:00
PRESUBMIT.py Remove LOG line checking from presubmit 2016-05-10 17:21:56 +00:00
README.md [Docs] Removed unused docs because they are moved to GitHub 2015-11-19 10:23:30 +00:00
snapshot_toolchain.gni Try to reland v8_snapshot GN build changes, take #3 2016-05-20 07:00:09 +00:00
WATCHLISTS [GN] Watchlist upadate to track gyp changes. 2016-05-17 08:14:26 +00:00

V8 JavaScript Engine

V8 is Google's open source JavaScript engine.

V8 implements ECMAScript as specified in ECMA-262.

V8 is written in C++ and is used in Google Chrome, the open source browser from Google.

V8 can run standalone, or can be embedded into any C++ application.

V8 Project page: https://github.com/v8/v8/wiki

Getting the Code

Checkout depot tools, and run

    fetch v8

This will checkout V8 into the directory v8 and fetch all of its dependencies. To stay up to date, run

    git pull origin
    gclient sync

For fetching all branches, add the following into your remote configuration in .git/config:

    fetch = +refs/branch-heads/*:refs/remotes/branch-heads/*
    fetch = +refs/tags/*:refs/tags/*

Contributing

Please follow the instructions mentioned on the V8 wiki.