Go to file
erik.corry@gmail.com 5a8d1764bc Refactoring of snapshots. This simplifies and improves
the speed of deserializing code.  The current startup
time improvement for V8 is around 6%, but code deserialization
is speeded up disproportionately, and we will soon have more
code in the snapshot.
* Removed support for deserializing into large object space.
  The regular pages are 1Mbyte now and that is plenty.  This
  is a big simplification.
* Instead of reserving space for the snapshot we actually
  allocate it now.  This removes some special casing from
  the memory management and simplifies deserialization since
  we are just bumping a pointer rather than calling the
  normal allocation routines during deserialization.
* Record in the snapshot how much we need to boot up and
  allocate it instead of just assuming that allocations in
  a new VM will always be linear.
* In the snapshot we always address an object as a negative
  offset from the current allocation point.  We used to
  sometimes address from the start of the deserialized data,
  but this is less useful now that we have good support for
  roots and repetitions in the deserialization data.
* Code objects were previously deserialized (like other
  objects) by alternating raw data (deserialized with memcpy)
  and pointers (to external references, other objects, etc.).
  Now we deserialize code objects with a single memcpy,
  followed by a series of skips and pointers that partially
  overwrite the code we memcopied out of the snapshot.
  The skips are sometimes merged into the following
  instruction in the deserialization data to reduce dispatch
  time.
* Integers in the snapshot were stored in a variable length
  format that gives a compact representation for small positive
  integers.  This is still the case, but the new encoding can
  be decoded without branches or conditional instructions,
  which is faster on a modern CPU.
Review URL: https://chromiumcodereview.appspot.com/10918067

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@12505 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2012-09-14 11:16:56 +00:00
benchmarks More fixes for V8 benchmark version 7. 2012-03-15 17:13:50 +00:00
build Replace VFP by VFP2 in common.gypi 2012-09-14 07:41:55 +00:00
include Introduce new API to expose external string resource regardless of encoding. 2012-09-12 11:29:50 +00:00
preparser Fix a bunch of implicit casts detected by the Win64 compiler 2012-06-19 13:45:30 +00:00
samples Fix compilation when disabling debugger support. 2012-07-05 16:23:14 +00:00
src Refactoring of snapshots. This simplifies and improves 2012-09-14 11:16:56 +00:00
test Refactoring of snapshots. This simplifies and improves 2012-09-14 11:16:56 +00:00
tools Add support for running low level profiler on Android. 2012-09-06 15:01:20 +00:00
.gitignore Update .gitignore for Windows/Visual Studio/GYP. 2012-07-10 12:58:42 +00:00
AUTHORS Fix path to d8 and properly quote strings so it works with dash(1) 2012-07-26 10:03:30 +00:00
ChangeLog Prepare push to trunk. Now working on version 3.13.8. 2012-09-11 13:19:02 +00:00
DEPS Prepare for using GYP build on buildbots 2012-05-11 12:18:09 +00:00
LICENSE Update LICENSE file 2012-01-03 16:38:42 +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 Add build system infrastructure for ENABLE_EXTRA_CHECKS flag (not used yet) 2012-09-05 09:24:37 +00:00
Makefile.android Fix android.gypi to provide correct include and library paths when using standalone Android toolchain. 2012-09-03 11:27:09 +00:00
SConstruct Fix shared library build errors. 2012-05-18 11:15:14 +00:00