Thanks for the reply Jakob. I'll give your code changes a try. I'm currently trying this on Mac OS X x64.
I'm pretty sure I'm using a snapshot build. Is there an easy way to tell for sure? Do you have any idea why Massif wouldn't show a memory decrease? How was the memory measured for the blog post on lazy deserialization? On Friday, 16 February 2018 03:49:24 UTC-5, Jakob Gruber wrote: > > On Thu, Feb 15, 2018 at 9:28 PM, Chris Dumoulin <crdu...@gmail.com > <javascript:>> wrote: > >> I'm interested in minimizing v8 memory usage, and I recently saw this >> blog post on Lazy Deserialization: >> https://v8project.blogspot.ca/2018/02/lazy-deserialization.html >> >> I've built and run samples/hello-world.cc against static libraries built >> from v6.3 and v6.5, and measured the memory usage using Valgrind's Massif >> tool. >> I expect to see a reduction in memory usage with v6.5 (due to the lazy >> deserialization), but I don't. Is there something I need to do in the code >> to enable the lazy deserialization? >> > > Are you sure you're using a snapshot build? If so, lazy deserialization > should be enabled by default. What architecture / OS? > > Locally (Linux x64), I see these numbers: > > $ out/release/v8_hello_world --no-lazy-deserialization > --no-lazy-handler-deserialization --trace-gc > Hello, World! > name, size, size of objects > new_space, 23408, 23408 > old_space, 820176, 437832 > code_space, 1039904, 1039904 > map_space, 525904, 40400 > large_object_space, 0, 0 > > $ out/release/v8_hello_world --trace-gc > Hello, World! > name, size, size of objects > new_space, 23408, 23408 > old_space, 820176, 437832 > code_space, 898208, 396448 > map_space, 525904, 40400 > large_object_space, 0, 0 > > Note the difference in code_space. The 'size' column shows the total size > of the space, 'size of objects' shows the portion that is actually > used/allocated. > From a quick look, Massif also didn't show a difference for me. > > By the way, since you're looking into memory reductions, > isolate-independent builtins (doc <http://goo.gl/Z2HUiM>) might also be > of interest. > > Here's the patch to reproduce my numbers above: > > diff --git a/samples/hello-world.cc b/samples/hello-world.cc > index ab6f0dd8bf..d9257d79e9 100644 > --- a/samples/hello-world.cc > +++ b/samples/hello-world.cc > @@ -16,6 +16,7 @@ int main(int argc, char* argv[]) { > std::unique_ptr<v8::Platform> platform = > v8::platform::NewDefaultPlatform(); > v8::V8::InitializePlatform(platform.get()); > v8::V8::Initialize(); > + v8::V8::SetFlagsFromCommandLine(&argc, argv, true); > > // Create a new Isolate and make it the current one. > v8::Isolate::CreateParams create_params; > diff --git a/src/isolate.cc b/src/isolate.cc > index 30f67e3233..b85bf18179 100644 > --- a/src/isolate.cc > +++ b/src/isolate.cc > @@ -2629,6 +2629,13 @@ void Isolate::Deinit() { > > DumpAndResetStats(); > > + printf("name, size, size of objects\n"); > + for (int i = FIRST_SPACE; i <= LAST_SPACE; i++) { > + Space* s = heap_.space(i); > + printf("%s, %zu, %zu\n", heap_.GetSpaceName(i), s->Size(), > + s->SizeOfObjects()); > + } > + > if (FLAG_print_deopt_stress) { > PrintF(stdout, "=== Stress deopt counter: %u\n", stress_deopt_count_); > } > -- -- v8-users mailing list v8-users@googlegroups.com http://groups.google.com/group/v8-users --- You received this message because you are subscribed to the Google Groups "v8-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to v8-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.