OXIESEC PANEL
- Current Dir:
/
/
opt
/
alt
/
alt-nodejs22
/
root
/
usr
/
include
/
node
Server IP: 2a02:4780:11:1594:0:ef5:22d7:a
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
10/21/2025 06:56:31 AM
rwxr-xr-x
📄
common.gypi
26.32 KB
08/28/2025 12:24:30 PM
rw-r--r--
📄
config.gypi
31.79 KB
08/28/2025 12:24:33 PM
rw-r--r--
📁
cppgc
-
10/21/2025 06:56:30 AM
rwxr-xr-x
📄
js_native_api.h
31.28 KB
08/28/2025 12:24:11 PM
rw-r--r--
📄
js_native_api_types.h
6.87 KB
08/28/2025 12:24:11 PM
rw-r--r--
📁
libplatform
-
10/21/2025 06:56:30 AM
rwxr-xr-x
📄
node.h
67.44 KB
08/28/2025 12:24:10 PM
rw-r--r--
📄
node_api.h
10.34 KB
08/28/2025 12:24:10 PM
rw-r--r--
📄
node_api_types.h
1.57 KB
08/28/2025 12:24:11 PM
rw-r--r--
📄
node_buffer.h
3.6 KB
08/28/2025 12:24:11 PM
rw-r--r--
📄
node_object_wrap.h
3.78 KB
08/28/2025 12:24:10 PM
rw-r--r--
📄
node_version.h
4.14 KB
08/28/2025 12:24:10 PM
rw-r--r--
📁
uv
-
10/21/2025 06:56:30 AM
rwxr-xr-x
📄
uv.h
71.1 KB
08/28/2025 12:24:09 PM
rw-r--r--
📄
v8-array-buffer.h
17.6 KB
08/28/2025 12:23:53 PM
rw-r--r--
📄
v8-callbacks.h
16.59 KB
08/28/2025 12:23:53 PM
rw-r--r--
📄
v8-container.h
5.82 KB
08/28/2025 12:23:53 PM
rw-r--r--
📄
v8-context.h
17.76 KB
08/28/2025 12:23:53 PM
rw-r--r--
📄
v8-cppgc.h
7.46 KB
08/28/2025 12:23:53 PM
rw-r--r--
📄
v8-data.h
1.58 KB
08/28/2025 12:23:53 PM
rw-r--r--
📄
v8-date.h
1.19 KB
08/28/2025 12:23:53 PM
rw-r--r--
📄
v8-debug.h
5.04 KB
08/28/2025 12:23:53 PM
rw-r--r--
📄
v8-embedder-heap.h
2.71 KB
08/28/2025 12:23:53 PM
rw-r--r--
📄
v8-embedder-state-scope.h
1.46 KB
08/28/2025 12:23:53 PM
rw-r--r--
📄
v8-exception.h
7.41 KB
08/28/2025 12:23:53 PM
rw-r--r--
📄
v8-extension.h
1.83 KB
08/28/2025 12:23:53 PM
rw-r--r--
📄
v8-external.h
924 bytes
08/28/2025 12:23:53 PM
rw-r--r--
📄
v8-forward.h
1.65 KB
08/28/2025 12:23:53 PM
rw-r--r--
📄
v8-function-callback.h
19.19 KB
08/28/2025 12:23:53 PM
rw-r--r--
📄
v8-function.h
4.42 KB
08/28/2025 12:23:53 PM
rw-r--r--
📄
v8-handle-base.h
4.3 KB
08/28/2025 12:23:53 PM
rw-r--r--
📄
v8-initialization.h
10.23 KB
08/28/2025 12:23:53 PM
rw-r--r--
📄
v8-internal.h
57.22 KB
08/28/2025 12:23:53 PM
rw-r--r--
📄
v8-isolate.h
63.38 KB
08/28/2025 12:23:53 PM
rw-r--r--
📄
v8-json.h
1.32 KB
08/28/2025 12:23:53 PM
rw-r--r--
📄
v8-local-handle.h
23.6 KB
08/28/2025 12:23:53 PM
rw-r--r--
📄
v8-locker.h
3.86 KB
08/28/2025 12:23:53 PM
rw-r--r--
📄
v8-maybe.h
4.47 KB
08/28/2025 12:23:53 PM
rw-r--r--
📄
v8-memory-span.h
6.27 KB
08/28/2025 12:23:53 PM
rw-r--r--
📄
v8-message.h
7.24 KB
08/28/2025 12:23:53 PM
rw-r--r--
📄
v8-microtask-queue.h
4.95 KB
08/28/2025 12:23:53 PM
rw-r--r--
📄
v8-microtask.h
861 bytes
08/28/2025 12:23:53 PM
rw-r--r--
📄
v8-object.h
29.55 KB
08/28/2025 12:23:53 PM
rw-r--r--
📄
v8-persistent-handle.h
17.66 KB
08/28/2025 12:23:53 PM
rw-r--r--
📄
v8-platform.h
47.9 KB
08/28/2025 12:23:53 PM
rw-r--r--
📄
v8-primitive-object.h
2.53 KB
08/28/2025 12:23:53 PM
rw-r--r--
📄
v8-primitive.h
27.69 KB
08/28/2025 12:23:53 PM
rw-r--r--
📄
v8-profiler.h
41.11 KB
08/28/2025 12:23:53 PM
rw-r--r--
📄
v8-promise.h
5.17 KB
08/28/2025 12:23:53 PM
rw-r--r--
📄
v8-proxy.h
1.23 KB
08/28/2025 12:23:53 PM
rw-r--r--
📄
v8-regexp.h
3.1 KB
08/28/2025 12:23:53 PM
rw-r--r--
📄
v8-script.h
30.59 KB
08/28/2025 12:23:53 PM
rw-r--r--
📄
v8-snapshot.h
10.15 KB
08/28/2025 12:23:53 PM
rw-r--r--
📄
v8-source-location.h
2.54 KB
08/28/2025 12:23:53 PM
rw-r--r--
📄
v8-statistics.h
7.45 KB
08/28/2025 12:23:53 PM
rw-r--r--
📄
v8-template.h
50.36 KB
08/28/2025 12:23:53 PM
rw-r--r--
📄
v8-traced-handle.h
12.4 KB
08/28/2025 12:23:53 PM
rw-r--r--
📄
v8-typed-array.h
11.3 KB
08/28/2025 12:23:53 PM
rw-r--r--
📄
v8-unwinder.h
4.64 KB
08/28/2025 12:23:53 PM
rw-r--r--
📄
v8-value-serializer.h
10.56 KB
08/28/2025 12:23:53 PM
rw-r--r--
📄
v8-value.h
16.71 KB
08/28/2025 12:23:53 PM
rw-r--r--
📄
v8-version.h
773 bytes
08/28/2025 12:23:53 PM
rw-r--r--
📄
v8-wasm.h
6 KB
08/28/2025 12:23:53 PM
rw-r--r--
📄
v8-weak-callback-info.h
2.41 KB
08/28/2025 12:23:53 PM
rw-r--r--
📄
v8.h
3.69 KB
08/28/2025 12:23:53 PM
rw-r--r--
📄
v8config.h
32.85 KB
08/28/2025 12:23:53 PM
rw-r--r--
Editing: v8-statistics.h
Close
// Copyright 2021 the V8 project authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef INCLUDE_V8_STATISTICS_H_ #define INCLUDE_V8_STATISTICS_H_ #include <stddef.h> #include <stdint.h> #include <memory> #include <utility> #include <vector> #include "v8-local-handle.h" // NOLINT(build/include_directory) #include "v8-memory-span.h" // NOLINT(build/include_directory) #include "v8-promise.h" // NOLINT(build/include_directory) #include "v8config.h" // NOLINT(build/include_directory) namespace v8 { class Context; class Isolate; namespace internal { class ReadOnlyHeap; } // namespace internal /** * Controls how the default MeasureMemoryDelegate reports the result of * the memory measurement to JS. With kSummary only the total size is reported. * With kDetailed the result includes the size of each native context. */ enum class MeasureMemoryMode { kSummary, kDetailed }; /** * Controls how promptly a memory measurement request is executed. * By default the measurement is folded with the next scheduled GC which may * happen after a while and is forced after some timeout. * The kEager mode starts incremental GC right away and is useful for testing. * The kLazy mode does not force GC. */ enum class MeasureMemoryExecution { kDefault, kEager, kLazy }; /** * The delegate is used in Isolate::MeasureMemory API. * * It specifies the contexts that need to be measured and gets called when * the measurement is completed to report the results. * * Both MeasurementComplete() callbacks will be invoked on completion. * Each implementation of this class should hence implement only one of them, * and leave the other empty. */ class V8_EXPORT MeasureMemoryDelegate { public: virtual ~MeasureMemoryDelegate() = default; /** * Returns true if the size of the given context needs to be measured. */ virtual bool ShouldMeasure(Local<Context> context) = 0; /** Holds the result of a memory measurement request. */ struct Result { /** * Two spans of equal length: the first includes each context for which * ShouldMeasure returned true and that was not garbage collected while * the memory measurement was in progress; the second includes the size * of the respective context. */ const MemorySpan<const Local<Context>>& contexts; const MemorySpan<const size_t>& sizes_in_bytes; /** * Total size of objects that were not attributed to any context (i.e. are * likely shared objects). */ size_t unattributed_size_in_bytes; /** Total size of generated code for Wasm (shared across contexts). */ size_t wasm_code_size_in_bytes; /** Total size of Wasm metadata (except code; shared across contexts). */ size_t wasm_metadata_size_in_bytes; }; /** * This function is called when memory measurement finishes. * * \param result the result of the measurement. */ virtual void MeasurementComplete(Result result) {} /** * Returns a default delegate that resolves the given promise when * the memory measurement completes. * * \param isolate the current isolate * \param context the current context * \param promise_resolver the promise resolver that is given the * result of the memory measurement. * \param mode the detail level of the result. */ static std::unique_ptr<MeasureMemoryDelegate> Default( Isolate* isolate, Local<Context> context, Local<Promise::Resolver> promise_resolver, MeasureMemoryMode mode); }; /** * Collection of shared per-process V8 memory information. * * Instances of this class can be passed to * v8::V8::GetSharedMemoryStatistics to get shared memory statistics from V8. */ class V8_EXPORT SharedMemoryStatistics { public: SharedMemoryStatistics(); size_t read_only_space_size() { return read_only_space_size_; } size_t read_only_space_used_size() { return read_only_space_used_size_; } size_t read_only_space_physical_size() { return read_only_space_physical_size_; } private: size_t read_only_space_size_; size_t read_only_space_used_size_; size_t read_only_space_physical_size_; friend class V8; friend class internal::ReadOnlyHeap; }; /** * Collection of V8 heap information. * * Instances of this class can be passed to v8::Isolate::GetHeapStatistics to * get heap statistics from V8. */ class V8_EXPORT HeapStatistics { public: HeapStatistics(); size_t total_heap_size() { return total_heap_size_; } size_t total_heap_size_executable() { return total_heap_size_executable_; } size_t total_physical_size() { return total_physical_size_; } size_t total_available_size() { return total_available_size_; } size_t total_global_handles_size() { return total_global_handles_size_; } size_t used_global_handles_size() { return used_global_handles_size_; } size_t used_heap_size() { return used_heap_size_; } size_t heap_size_limit() { return heap_size_limit_; } size_t malloced_memory() { return malloced_memory_; } size_t external_memory() { return external_memory_; } size_t peak_malloced_memory() { return peak_malloced_memory_; } size_t number_of_native_contexts() { return number_of_native_contexts_; } size_t number_of_detached_contexts() { return number_of_detached_contexts_; } /** * Returns a 0/1 boolean, which signifies whether the V8 overwrite heap * garbage with a bit pattern. */ size_t does_zap_garbage() { return does_zap_garbage_; } private: size_t total_heap_size_; size_t total_heap_size_executable_; size_t total_physical_size_; size_t total_available_size_; size_t used_heap_size_; size_t heap_size_limit_; size_t malloced_memory_; size_t external_memory_; size_t peak_malloced_memory_; bool does_zap_garbage_; size_t number_of_native_contexts_; size_t number_of_detached_contexts_; size_t total_global_handles_size_; size_t used_global_handles_size_; friend class V8; friend class Isolate; }; class V8_EXPORT HeapSpaceStatistics { public: HeapSpaceStatistics(); const char* space_name() { return space_name_; } size_t space_size() { return space_size_; } size_t space_used_size() { return space_used_size_; } size_t space_available_size() { return space_available_size_; } size_t physical_space_size() { return physical_space_size_; } private: const char* space_name_; size_t space_size_; size_t space_used_size_; size_t space_available_size_; size_t physical_space_size_; friend class Isolate; }; class V8_EXPORT HeapObjectStatistics { public: HeapObjectStatistics(); const char* object_type() { return object_type_; } const char* object_sub_type() { return object_sub_type_; } size_t object_count() { return object_count_; } size_t object_size() { return object_size_; } private: const char* object_type_; const char* object_sub_type_; size_t object_count_; size_t object_size_; friend class Isolate; }; class V8_EXPORT HeapCodeStatistics { public: HeapCodeStatistics(); size_t code_and_metadata_size() { return code_and_metadata_size_; } size_t bytecode_and_metadata_size() { return bytecode_and_metadata_size_; } size_t external_script_source_size() { return external_script_source_size_; } size_t cpu_profiler_metadata_size() { return cpu_profiler_metadata_size_; } private: size_t code_and_metadata_size_; size_t bytecode_and_metadata_size_; size_t external_script_source_size_; size_t cpu_profiler_metadata_size_; friend class Isolate; }; } // namespace v8 #endif // INCLUDE_V8_STATISTICS_H_