- 16 Jun, 2009 11 commits
-
-
sgjesse@chromium.org authored
To profile running the JavaScript file test.js using the V8 release mode shell (assuming it is build passing prof=oprofile to the SCons build). The following commands can be used: $ tools/oprofile/start $ tools/oprofile/run test.js $ tools/oprofile/report | less $ tools/oprofile/annotate | less $ tools/oprofile/shutdown Here is a summary of the commands. For all the commands taking an executable the executable is expected to be a binary using V8. If no executable is specified the release mode V8 shell is assumed. By default the --session-dir=/tmp/oprofv8 is passed to all oprofile commands. This walue can be changed by setting environment variable OPROFILE_SESSION_DIR. When using the defaulf executable (V8 shell in release mode) it is assumed to be located in ../.. relative from the oprofile utility scripts. This default location can be overridden using the V8_SHELL_DIR environment variable. start ----- Start the oprofiling daemon. run [executable] [parameters] ----------------------------- Profile a V8 executable. Running this will reset oprofile samples, run the command and do an oprofile dump to flush samples and write ELF binaries for the generated code. The parameters are passed to the executable together with the --oprofile option. report [executable] [parameters] -------------------------------- Print the report for a profile run. The parameters are passed to opreport. E.g report --callgraph. annotate [executable] [parameters] ---------------------------------- Print annotated assembly for a profile run. The parameters are passed to opannotate. E.g annotate -threshold 1. reset ----- Reset oprofile samples. dump ---- Flush oprofile samples and write ELF binaries for the generated code. shutdown -------- Shutdown oprofile daemon. Added a warning which is printed if option --oprofile is passed to a V8 which has not been compiled with oprofile support. Review URL: http://codereview.chromium.org/125181 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2186 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mikhail.naganov@gmail.com authored
Don't infer name for a function if a result of its call is assigned to a variable / property. E.g., in this case: a = function() { ... } (); the function must remain anonymous because 'a' doesn't receive a function reference, but instead a result of its call. BUG=http://code.google.com/p/v8/issues/detail?id=380 TEST=cctest/test-func-name-inference/Issue380 Review URL: http://codereview.chromium.org/126195 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2185 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
http://codereview.chromium.org/126158antonm@chromium.org authored
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2184 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
Review URL: http://codereview.chromium.org/126193 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2183 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
erik.corry@gmail.com authored
Review URL: http://codereview.chromium.org/126192 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2182 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ager@chromium.org authored
Review URL: http://codereview.chromium.org/125177 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2180 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kasperl@chromium.org authored
when the left operand lets us shortcut the computation. Review URL: http://codereview.chromium.org/125176 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2179 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
whesse@chromium.org authored
Review URL: http://codereview.chromium.org/126191 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2178 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
whesse@chromium.org authored
Review URL: http://codereview.chromium.org/125131 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2177 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kasperl@chromium.org authored
Review URL: http://codereview.chromium.org/126188 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2176 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
bak@chromium.org authored
Review URL: http://codereview.chromium.org/126189 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2175 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 15 Jun, 2009 17 commits
-
-
sgjesse@chromium.org authored
Only send the inscructions part of a code object to oprofile when reporting dynamically generated code. Before the code object header was also reported to oprofile as code which caused strange disassembly output when using opannotate. Review URL: http://codereview.chromium.org/125126 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2174 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ager@chromium.org authored
TBR=kmillikin@chromium.org Review URL: http://codereview.chromium.org/125129 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2173 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mikhail.naganov@gmail.com authored
It seems that when calling a method that has two overloaded versions like this: f(char* format, ...) f(char* format, va_list args) with a second pointer argument: f("format", pointer), the second version is picked up. I've found a description of a similar issue here: http://bugs.gentoo.org/63112 So, to resolve this ambiguity, I've named such LogMessageBuilder's Append functions differently. Review URL: http://codereview.chromium.org/125125 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2172 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ager@chromium.org authored
This fixes assertion failures in debug mode tests. Review URL: http://codereview.chromium.org/126128 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2171 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
erik.corry@gmail.com authored
as deep on newer VMs in debug mode. Review URL: http://codereview.chromium.org/126125 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2170 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ager@chromium.org authored
Because of varying floating-point precision, the slow case is hard to test with explicit values. Instead, we check that sine and cosine do not return the same value (the regression was that the slow case of cosine accidentally did sine instead of cosine). Review URL: http://codereview.chromium.org/126123 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2169 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kasperl@chromium.org authored
under Mac OS. Review URL: http://codereview.chromium.org/125123 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2168 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ager@chromium.org authored
Review URL: http://codereview.chromium.org/125122 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2167 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ager@chromium.org authored
Review URL: http://codereview.chromium.org/125121 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2166 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
erik.corry@gmail.com authored
Review URL: http://codereview.chromium.org/126121 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2165 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
erik.corry@gmail.com authored
Review URL: http://codereview.chromium.org/126116 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2164 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kasperl@chromium.org authored
avoiding excessive ToNumber calls and by dealing with NaNs in BIT_AND and SAR. Review URL: http://codereview.chromium.org/125118 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2163 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mikhail.naganov@gmail.com authored
Code addresses are now written as an offset from the previous address for ticks, code move and delete events. Employed backreference and RLE compression for code move and delete events. This gives additional 30% log size reduction for benchmarks run w/o snapshot. Overall compression results (compared with the revision of V8 having no compression): - V8: 70% size reduction for benchmarks run w/o snapshot (for reference, gzip gives 87%) - Chromium: 65% size reduction for public html version of benchmarks (v4) (for reference, gzip gives 90%) The one obvious opportunity for improving compression results in Chromium is to compress URLs of scripts. Review URL: http://codereview.chromium.org/125114 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2162 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kasperl@chromium.org authored
Review URL: http://codereview.chromium.org/126115 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2161 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kasperl@chromium.org authored
Review URL: http://codereview.chromium.org/126114 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2160 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kasperl@chromium.org authored
Marsaglia's multiply-with-carry instead of mixing the bits obtained from calling the system random() twice. This seems to be a bit faster and gives a better distribution than the system random() in particular on Windows. Review URL: http://codereview.chromium.org/126113 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2159 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ager@chromium.org authored
expanded the macro assembler owns the buffer and needs to dispose it in the destructor. Review URL: http://codereview.chromium.org/126111 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2158 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 12 Jun, 2009 9 commits
-
-
kmillikin@chromium.org authored
class. Manually manage off-frame results at the two sites where they were used. Review URL: http://codereview.chromium.org/125048 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2157 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
lrn@chromium.org authored
Review URL: http://codereview.chromium.org/125049 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2156 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
lrn@chromium.org authored
Review URL: http://codereview.chromium.org/126045 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2155 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
whesse@chromium.org authored
Review URL: http://codereview.chromium.org/126043 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2154 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
kmillikin@chromium.org authored
branches, and bind with more than two arguments). Remove unneeded variable (the "watermark" on virtual frames). Review URL: http://codereview.chromium.org/125045 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2153 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
ager@chromium.org authored
Make sure that the IC is always hit when debugging and make sure to restore the fast case when leaving the debugger. Review URL: http://codereview.chromium.org/125044 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2152 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
bak@chromium.org authored
This replaces the fixed expansion policy based on number of scavenges. Increased the max new space size to 8MB (only reserved space). Increased the defalt new space size to 512KB. Review URL: http://codereview.chromium.org/125046 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2151 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
sgjesse@chromium.org authored
TBR=ager@chromium.org Review URL: http://codereview.chromium.org/125043 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2150 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
sgjesse@chromium.org authored
For each frame it is now possible to request information on the scope chain. Each scope in the chain can have one of the types local, global, with and closure. For scopes of type global and with the mirror for the actual global or with object is available. For scopes of type local and closure a plain JavaScript object with the materialized content of the scope is created and its mirror is returned. Depending on the level of possible optimization the content of the materialized local and closure scopes might only contain the names which are actually used. To iterate the scope chain an iterator ScopeIterator have been added which can provide the type of each scope for each part of the chain. This iterator creates an artificial local scope whenever that is present as the context chain does not include the local scope. To avoid caching the mirror objects for the materialized the local and closure scopes transient mirrors have been added. They have negative handles and cannot be retrieved by subsequent lookup calls. Their content is part of a single response. For debugging purposes an additional runtime function DebugPrintScopes is been added. Added commands 'scopes' and 'scope' to the developer shell and fixed the dir command. BUG=none TEST=test/mjsunit/debug-scopes.js Review URL: http://codereview.chromium.org/123021 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2149 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 11 Jun, 2009 3 commits
-
-
antonm@chromium.org authored
speedup for some DOM operations. Review URL: http://codereview.chromium.org/122038 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2148 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
mikhail.naganov@gmail.com authored
Two techniques are involved: - compress repeated line ends (common stack beginnings) by using back references; - do RLE compression of repeated tick events. This gives only 5% size reduction on benchmarks run, but this is because tick events are only comprise 10% of file size. Under Chromium winnings are bigger because long repeated samples of idleness are now compressed into a single line. Tickprocessor will be updated in the next patch. Review URL: http://codereview.chromium.org/123012 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2147 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
whesse@chromium.org authored
Review URL: http://codereview.chromium.org/123018 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@2146 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-