On this page

    v8.getHeapStatistics(): Object
    Returns:Object

    Returns an object with the following properties:

    Attributes
    total_heap_size:number
    total_heap_size_executable:number
    total_physical_size:number
    total_available_size:number
    used_heap_size:number
    heap_size_limit:number
    malloced_memory:number
    peak_malloced_memory:number
    does_zap_garbage:number
    number_of_native_contexts:number
    number_of_detached_contexts:number
    total_global_handles_size:number
    used_global_handles_size:number
    external_memory:number
    total_allocated_bytes:number

    total_heap_size The value of total_heap_size is the number of bytes V8 has allocated for the heap. This can grow if used_heap needs more memory.

    total_heap_size_executable The value of total_heap_size_executable is the portion of the heap that can contain executable code, in bytes. This includes memory used by JIT-compiled code and any memory that must be kept executable.

    total_physical_size The value of total_physical_size is the actual physical memory used by the V8 heap, in bytes. This is the amount of memory that is committed (or in use) rather than reserved.

    total_available_size The value of total_available_size is the number of bytes of memory available to the V8 heap. This value represents how much more memory V8 can use before it exceeds the heap limit.

    used_heap_size The value of used_heap_size is number of bytes currently being used by V8’s JavaScript objects. This is the actual memory in use and does not include memory that has been allocated but not yet used.

    heap_size_limit The value of heap_size_limit is the maximum size of the V8 heap, in bytes (either the default limit, determined by system resources, or the value passed to the --max_old_space_size option).

    malloced_memory The value of malloced_memory is the number of bytes allocated through malloc by V8.

    peak_malloced_memory The value of peak_malloced_memory is the peak number of bytes allocated through malloc by V8 during the lifetime of the process.

    does_zap_garbage is a 0/1 boolean, which signifies whether the --zap_code_space option is enabled or not. This makes V8 overwrite heap garbage with a bit pattern. The RSS footprint (resident set size) gets bigger because it continuously touches all heap pages and that makes them less likely to get swapped out by the operating system.

    number_of_native_contexts The value of native_context is the number of the top-level contexts currently active. Increase of this number over time indicates a memory leak.

    number_of_detached_contexts The value of detached_context is the number of contexts that were detached and not yet garbage collected. This number being non-zero indicates a potential memory leak.

    total_global_handles_size The value of total_global_handles_size is the total memory size of V8 global handles.

    used_global_handles_size The value of used_global_handles_size is the used memory size of V8 global handles.

    external_memory The value of external_memory is the memory size of array buffers and external strings.

    total_allocated_bytes The value of total allocated bytes since the Isolate creation

    {
      "total_heap_size": 7326976,
      "total_heap_size_executable": 4194304,
      "total_physical_size": 7326976,
      "total_available_size": 1152656,
      "used_heap_size": 3476208,
      "heap_size_limit": 1535115264,
      "malloced_memory": 16384,
      "peak_malloced_memory": 1127496,
      "does_zap_garbage": 0,
      "number_of_native_contexts": 1,
      "number_of_detached_contexts": 0,
      "total_global_handles_size": 8192,
      "used_global_handles_size": 3296,
      "external_memory": 318824
    }