diff options
author | glotov@google.com <glotov@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-16 10:04:44 +0000 |
---|---|---|
committer | glotov@google.com <glotov@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-05-16 10:04:44 +0000 |
commit | 8a6abd133d36460597a5ac321ffceecc6949f4ca (patch) | |
tree | ef71b6904583a68c39075525eb8d8021a9db15ca /media | |
parent | ffac98794f3300c2b18502d74a9b808f584c959e (diff) | |
download | chromium_src-8a6abd133d36460597a5ac321ffceecc6949f4ca.zip chromium_src-8a6abd133d36460597a5ac321ffceecc6949f4ca.tar.gz chromium_src-8a6abd133d36460597a5ac321ffceecc6949f4ca.tar.bz2 |
Note: this change does nothing unless order_profiling=1 is manually set in GYP defines (or EXTRA_BUILD_ARGS for cros).
When enabled, this tool is built into Chrome and makes it log its routine invocations. Every time a routine is called and if it is called for the first time (per each thread), the log is updated with current time and the address of the routine. Later, such logs can be merged (across all threads), symbolized and fed into linker ('order_text_section') so it produces binary with more optimal code layout. This must make code work faster because of better CPU cache utilization.
See more technical details in tools/cygprofile/cygprofile.cc header.
Cyg prefix is taken after the callback names in gcc that we use to hook the code: __cyg_profile_func_enter and __cyg_profile_func_exit.
More info at https://sites.google.com/a/google.com/chrome-msk/dev/boot-speed-up-effort
BUG=chromium-os:20187
TEST=units, build cros with
declare -x EXTRA_BUILD_ARGS="order_profiling=1 linux_use_tcmalloc=0"
run it and check the log at /var/log/chrome/cyglog.*.
Review URL: https://chromiumcodereview.appspot.com/8770054
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@137391 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media')
-rw-r--r-- | media/media.gyp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/media/media.gyp b/media/media.gyp index d9535ad..f69d300 100644 --- a/media/media.gyp +++ b/media/media.gyp @@ -471,6 +471,13 @@ 'cpu_features', ], 'conditions': [ + ['order_profiling != 0', { + 'target_conditions' : [ + ['_toolset=="target"', { + 'cflags!': [ '-finstrument-functions' ], + }], + ], + }], [ 'target_arch == "ia32" or target_arch == "x64"', { 'dependencies': [ 'yuv_convert_simd_x86', @@ -518,6 +525,13 @@ 'base/simd/yuv_to_rgb_table.h', ], 'conditions': [ + ['order_profiling != 0', { + 'target_conditions' : [ + ['_toolset=="target"', { + 'cflags!': [ '-finstrument-functions' ], + }], + ], + }], [ 'target_arch == "x64"', { # Source files optimized for X64 systems. 'sources': [ |