$92 GRAYBYTE WORDPRESS FILE MANAGER $83

SERVER : in-mum-web1330.main-hosting.eu #1 SMP Mon Feb 10 22:45:17 UTC 2025
SERVER IP : 91.108.106.159 | ADMIN IP 216.73.216.215
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : NONE

/opt/alt/alt-nodejs18/root/usr/include/node/

HOME
Current File : /opt/alt/alt-nodejs18/root/usr/include/node//v8-statistics.h
// 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-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.
 */
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;

  /**
   * This function is called when memory measurement finishes.
   *
   * \param context_sizes_in_bytes a vector of (context, size) pairs that
   *   includes each context for which ShouldMeasure returned true and that
   *   was not garbage collected while the memory measurement was in progress.
   *
   * \param unattributed_size_in_bytes total size of objects that were not
   *   attributed to any context (i.e. are likely shared objects).
   */
  virtual void MeasurementComplete(
      const std::vector<std::pair<Local<Context>, size_t>>&
          context_sizes_in_bytes,
      size_t unattributed_size_in_bytes) = 0;

  /**
   * 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_

Current_dir [ NOT WRITEABLE ] Document_root [ WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
1 Jan 1970 12.00 AM
root / root
0
cppgc
--
21 Oct 2025 6.57 AM
root / root
0755
libplatform
--
21 Oct 2025 6.57 AM
root / root
0755
uv
--
21 Oct 2025 6.57 AM
root / root
0755
common.gypi
21.864 KB
5 Jun 2025 11.30 AM
root / root
0644
config.gypi
26.232 KB
5 Jun 2025 11.30 AM
root / root
0644
js_native_api.h
31.322 KB
5 Jun 2025 11.30 AM
root / root
0644
js_native_api_types.h
6.599 KB
5 Jun 2025 11.30 AM
root / root
0644
node.h
56.44 KB
5 Jun 2025 11.30 AM
root / root
0644
node_api.h
10.075 KB
5 Jun 2025 11.30 AM
root / root
0644
node_api_types.h
1.565 KB
5 Jun 2025 11.30 AM
root / root
0644
node_buffer.h
3.598 KB
5 Jun 2025 11.30 AM
root / root
0644
node_object_wrap.h
3.776 KB
5 Jun 2025 11.30 AM
root / root
0644
node_version.h
3.846 KB
5 Jun 2025 11.30 AM
root / root
0644
uv.h
65.663 KB
5 Jun 2025 11.30 AM
root / root
0644
v8-array-buffer.h
15.529 KB
5 Jun 2025 11.29 AM
root / root
0644
v8-callbacks.h
14.05 KB
5 Jun 2025 11.29 AM
root / root
0644
v8-container.h
3.4 KB
5 Jun 2025 11.29 AM
root / root
0644
v8-context.h
13.912 KB
5 Jun 2025 11.29 AM
root / root
0644
v8-data.h
1.576 KB
5 Jun 2025 11.29 AM
root / root
0644
v8-date.h
1.092 KB
5 Jun 2025 11.29 AM
root / root
0644
v8-debug.h
5.04 KB
5 Jun 2025 11.29 AM
root / root
0644
v8-embedder-heap.h
6.725 KB
5 Jun 2025 11.29 AM
root / root
0644
v8-embedder-state-scope.h
1.506 KB
5 Jun 2025 11.29 AM
root / root
0644
v8-exception.h
6.981 KB
5 Jun 2025 11.29 AM
root / root
0644
v8-extension.h
1.826 KB
5 Jun 2025 11.29 AM
root / root
0644
v8-external.h
0.902 KB
5 Jun 2025 11.29 AM
root / root
0644
v8-forward.h
1.623 KB
5 Jun 2025 11.29 AM
root / root
0644
v8-function-callback.h
15.021 KB
5 Jun 2025 11.29 AM
root / root
0644
v8-function.h
3.905 KB
5 Jun 2025 11.29 AM
root / root
0644
v8-initialization.h
10.969 KB
5 Jun 2025 11.29 AM
root / root
0644
v8-internal.h
26.034 KB
5 Jun 2025 11.29 AM
root / root
0644
v8-isolate.h
61.743 KB
5 Jun 2025 11.29 AM
root / root
0644
v8-json.h
1.324 KB
5 Jun 2025 11.29 AM
root / root
0644
v8-local-handle.h
14.244 KB
5 Jun 2025 11.29 AM
root / root
0644
v8-locker.h
4.306 KB
5 Jun 2025 11.29 AM
root / root
0644
v8-maybe.h
3.663 KB
5 Jun 2025 11.29 AM
root / root
0644
v8-memory-span.h
1.249 KB
5 Jun 2025 11.29 AM
root / root
0644
v8-message.h
6.378 KB
5 Jun 2025 11.29 AM
root / root
0644
v8-microtask-queue.h
4.785 KB
5 Jun 2025 11.29 AM
root / root
0644
v8-microtask.h
0.841 KB
5 Jun 2025 11.29 AM
root / root
0644
v8-object.h
28.035 KB
5 Jun 2025 11.29 AM
root / root
0644
v8-persistent-handle.h
18.694 KB
5 Jun 2025 11.29 AM
root / root
0644
v8-platform.h
38.073 KB
5 Jun 2025 11.29 AM
root / root
0644
v8-primitive-object.h
2.53 KB
5 Jun 2025 11.29 AM
root / root
0644
v8-primitive.h
27.468 KB
5 Jun 2025 11.29 AM
root / root
0644
v8-profiler.h
37.619 KB
5 Jun 2025 11.29 AM
root / root
0644
v8-promise.h
5.17 KB
5 Jun 2025 11.29 AM
root / root
0644
v8-proxy.h
1.226 KB
5 Jun 2025 11.29 AM
root / root
0644
v8-regexp.h
3.07 KB
5 Jun 2025 11.29 AM
root / root
0644
v8-script.h
24.728 KB
5 Jun 2025 11.29 AM
root / root
0644
v8-snapshot.h
7.074 KB
5 Jun 2025 11.29 AM
root / root
0644
v8-statistics.h
6.802 KB
5 Jun 2025 11.29 AM
root / root
0644
v8-template.h
39.959 KB
5 Jun 2025 11.29 AM
root / root
0644
v8-traced-handle.h
12.357 KB
5 Jun 2025 11.29 AM
root / root
0644
v8-typed-array.h
8.063 KB
5 Jun 2025 11.29 AM
root / root
0644
v8-unwinder.h
4.635 KB
5 Jun 2025 11.29 AM
root / root
0644
v8-value-serializer.h
9.474 KB
5 Jun 2025 11.29 AM
root / root
0644
v8-value.h
12.642 KB
5 Jun 2025 11.29 AM
root / root
0644
v8-version.h
0.755 KB
5 Jun 2025 11.29 AM
root / root
0644
v8-wasm.h
7.848 KB
5 Jun 2025 11.29 AM
root / root
0644
v8-weak-callback-info.h
2.787 KB
5 Jun 2025 11.29 AM
root / root
0644
v8.h
3.687 KB
5 Jun 2025 11.29 AM
root / root
0644
v8config.h
18.874 KB
5 Jun 2025 11.29 AM
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME
Static GIF