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.

Reply via email to