#include <memory-allocator.h>
|
V8_EXPORT_PRIVATE | MemoryAllocator (Isolate *isolate, v8::PageAllocator *code_page_allocator, v8::PageAllocator *trusted_page_allocator, size_t max_capacity) |
|
V8_EXPORT_PRIVATE void | TearDown () |
|
V8_EXPORT_PRIVATE PageMetadata * | AllocatePage (MemoryAllocator::AllocationMode alloc_mode, Space *space, Executability executable) |
|
V8_EXPORT_PRIVATE LargePageMetadata * | AllocateLargePage (LargeObjectSpace *space, size_t object_size, Executability executable) |
|
ReadOnlyPageMetadata * | AllocateReadOnlyPage (ReadOnlySpace *space, Address hint=kNullAddress) |
|
std::unique_ptr<::v8::PageAllocator::SharedMemoryMapping > | RemapSharedPage (::v8::PageAllocator::SharedMemory *shared_memory, Address new_address) |
|
V8_EXPORT_PRIVATE void | Free (MemoryAllocator::FreeMode mode, MutablePageMetadata *chunk) |
|
void | FreeReadOnlyPage (ReadOnlyPageMetadata *chunk) |
|
size_t | Size () const |
|
size_t | SizeExecutable () const |
|
size_t | Available () const |
|
V8_INLINE bool | IsOutsideAllocatedSpace (Address address) const |
|
V8_INLINE bool | IsOutsideAllocatedSpace (Address address, Executability executable) const |
|
void | PartialFreeMemory (MemoryChunkMetadata *chunk, Address start_free, size_t bytes_to_free, Address new_area_end) |
|
v8::PageAllocator * | data_page_allocator () |
|
v8::PageAllocator * | code_page_allocator () |
|
v8::PageAllocator * | trusted_page_allocator () |
|
v8::PageAllocator * | page_allocator (AllocationSpace space) |
|
PagePool * | pool () |
|
void | UnregisterReadOnlyPage (ReadOnlyPageMetadata *page) |
|
Address | HandleAllocationFailure (Executability executable) |
|
V8_EXPORT_PRIVATE const MemoryChunk * | LookupChunkContainingAddress (Address addr) const |
|
V8_EXPORT_PRIVATE const MemoryChunk * | LookupChunkContainingAddressInSafepoint (Address addr) const |
|
void | RecordMemoryChunkCreated (const MemoryChunk *chunk) |
|
void | RecordMemoryChunkDestroyed (const MemoryChunk *chunk) |
|
void | ReleaseQueuedPages () |
|
V8_EXPORT_PRIVATE size_t | GetPooledChunksCount () |
|
V8_EXPORT_PRIVATE size_t | GetSharedPooledChunksCount () |
|
V8_EXPORT_PRIVATE size_t | GetTotalPooledChunksCount () |
|
V8_EXPORT_PRIVATE void | ReleasePooledChunksImmediately () |
|
|
V8_WARN_UNUSED_RESULT std::optional< MemoryChunkAllocationResult > | AllocateUninitializedChunk (BaseSpace *space, size_t area_size, Executability executable, PageSize page_size) |
|
V8_WARN_UNUSED_RESULT std::optional< MemoryChunkAllocationResult > | AllocateUninitializedChunkAt (BaseSpace *space, size_t area_size, Executability executable, Address hint, PageSize page_size) |
|
Address | AllocateAlignedMemory (size_t chunk_size, size_t area_size, size_t alignment, AllocationSpace space, Executability executable, void *hint, VirtualMemory *controller) |
|
bool | CommitMemory (VirtualMemory *reservation, Executability executable) |
|
V8_WARN_UNUSED_RESULT bool | SetPermissionsOnExecutableMemoryChunk (VirtualMemory *vm, Address start, size_t reserved_size) |
|
bool | UncommitMemory (VirtualMemory *reservation) |
|
void | FreeMemoryRegion (v8::PageAllocator *page_allocator, Address addr, size_t size) |
|
void | PreFreeMemory (MutablePageMetadata *chunk) |
|
void | PerformFreeMemory (MutablePageMetadata *chunk) |
|
std::optional< MemoryChunkAllocationResult > | AllocateUninitializedPageFromPool (Space *space) |
|
PageMetadata * | InitializePagesInChunk (int chunk_id, int pages_in_chunk, PagedSpace *space) |
|
void | UpdateAllocatedSpaceLimits (Address low, Address high, Executability executable) |
|
void | UnregisterMutableMemoryChunk (MutablePageMetadata *chunk) |
|
void | UnregisterSharedMemoryChunk (MemoryChunkMetadata *chunk) |
|
void | UnregisterMemoryChunk (MemoryChunkMetadata *chunk, Executability executable=NOT_EXECUTABLE) |
|
void | RegisterReadOnlyMemory (ReadOnlyPageMetadata *page) |
|
| DISALLOW_IMPLICIT_CONSTRUCTORS (MemoryAllocator) |
|
Definition at line 46 of file memory-allocator.h.
◆ AllocationMode
◆ FreeMode
◆ MemoryAllocator()
◆ AllocateAlignedMemory()
◆ AllocateLargePage()
◆ AllocatePage()
◆ AllocateReadOnlyPage()
◆ AllocateUninitializedChunk()
◆ AllocateUninitializedChunkAt()
◆ AllocateUninitializedPageFromPool()
◆ Available()
size_t v8::internal::MemoryAllocator::Available |
( |
| ) |
const |
|
inline |
◆ code_page_allocator()
◆ CommitMemory()
◆ ComputeChunkSize()
◆ data_page_allocator()
◆ DeleteMemoryChunk()
◆ DISALLOW_IMPLICIT_CONSTRUCTORS()
v8::internal::MemoryAllocator::DISALLOW_IMPLICIT_CONSTRUCTORS |
( |
MemoryAllocator | | ) |
|
|
private |
◆ Free()
◆ FreeMemoryRegion()
◆ FreeReadOnlyPage()
◆ GetCommitPageSize()
static V8_INLINE intptr_t v8::internal::MemoryAllocator::GetCommitPageSize |
( |
| ) |
|
|
inlinestatic |
◆ GetCommitPageSizeBits()
static V8_INLINE intptr_t v8::internal::MemoryAllocator::GetCommitPageSizeBits |
( |
| ) |
|
|
inlinestatic |
◆ GetPooledChunksCount()
size_t v8::internal::MemoryAllocator::GetPooledChunksCount |
( |
| ) |
|
◆ GetSharedPooledChunksCount()
size_t v8::internal::MemoryAllocator::GetSharedPooledChunksCount |
( |
| ) |
|
◆ GetTotalPooledChunksCount()
size_t v8::internal::MemoryAllocator::GetTotalPooledChunksCount |
( |
| ) |
|
◆ HandleAllocationFailure()
◆ InitializeOncePerProcess()
void v8::internal::MemoryAllocator::InitializeOncePerProcess |
( |
| ) |
|
|
static |
◆ InitializePagesInChunk()
PageMetadata * v8::internal::MemoryAllocator::InitializePagesInChunk |
( |
int | chunk_id, |
|
|
int | pages_in_chunk, |
|
|
PagedSpace * | space ) |
|
private |
◆ IsOutsideAllocatedSpace() [1/2]
◆ IsOutsideAllocatedSpace() [2/2]
◆ LookupChunkContainingAddress()
const MemoryChunk * v8::internal::MemoryAllocator::LookupChunkContainingAddress |
( |
Address | addr | ) |
const |
◆ LookupChunkContainingAddressInSafepoint()
const MemoryChunk * v8::internal::MemoryAllocator::LookupChunkContainingAddressInSafepoint |
( |
Address | addr | ) |
const |
◆ page_allocator()
◆ PartialFreeMemory()
◆ PerformFreeMemory()
◆ pool()
PagePool * v8::internal::MemoryAllocator::pool |
( |
| ) |
|
|
inline |
◆ PreFreeMemory()
◆ RecordMemoryChunkCreated()
void v8::internal::MemoryAllocator::RecordMemoryChunkCreated |
( |
const MemoryChunk * | chunk | ) |
|
◆ RecordMemoryChunkDestroyed()
void v8::internal::MemoryAllocator::RecordMemoryChunkDestroyed |
( |
const MemoryChunk * | chunk | ) |
|
◆ RegisterReadOnlyMemory()
◆ ReleasePooledChunksImmediately()
void v8::internal::MemoryAllocator::ReleasePooledChunksImmediately |
( |
| ) |
|
◆ ReleaseQueuedPages()
void v8::internal::MemoryAllocator::ReleaseQueuedPages |
( |
| ) |
|
◆ RemapSharedPage()
◆ SetPermissionsOnExecutableMemoryChunk()
◆ Size()
size_t v8::internal::MemoryAllocator::Size |
( |
| ) |
const |
|
inline |
◆ SizeExecutable()
size_t v8::internal::MemoryAllocator::SizeExecutable |
( |
| ) |
const |
|
inline |
◆ TearDown()
void v8::internal::MemoryAllocator::TearDown |
( |
| ) |
|
◆ trusted_page_allocator()
◆ UncommitMemory()
◆ UnregisterMemoryChunk()
◆ UnregisterMutableMemoryChunk()
void v8::internal::MemoryAllocator::UnregisterMutableMemoryChunk |
( |
MutablePageMetadata * | chunk | ) |
|
|
private |
◆ UnregisterReadOnlyPage()
◆ UnregisterSharedMemoryChunk()
◆ UpdateAllocatedSpaceLimits()
◆ heap::TestCodePageAllocatorScope
friend class heap::TestCodePageAllocatorScope |
|
friend |
◆ heap::TestMemoryAllocatorScope
friend class heap::TestMemoryAllocatorScope |
|
friend |
◆ capacity_
size_t v8::internal::MemoryAllocator::capacity_ |
|
private |
◆ chunks_mutex_
base::Mutex v8::internal::MemoryAllocator::chunks_mutex_ |
|
mutableprivate |
◆ code_page_allocator_
◆ commit_page_size_
size_t v8::internal::MemoryAllocator::commit_page_size_ = 0 |
|
staticprivate |
◆ commit_page_size_bits_
size_t v8::internal::MemoryAllocator::commit_page_size_bits_ = 0 |
|
staticprivate |
◆ data_page_allocator_
◆ highest_executable_ever_allocated_
std::atomic<Address> v8::internal::MemoryAllocator::highest_executable_ever_allocated_ {kNullAddress} |
|
private |
◆ highest_not_executable_ever_allocated_
std::atomic<Address> v8::internal::MemoryAllocator::highest_not_executable_ever_allocated_ {kNullAddress} |
|
private |
◆ isolate_
Isolate* v8::internal::MemoryAllocator::isolate_ |
|
private |
◆ large_pages_
std::set<const MemoryChunk*> v8::internal::MemoryAllocator::large_pages_ |
|
private |
◆ lowest_executable_ever_allocated_
std::atomic<Address> v8::internal::MemoryAllocator::lowest_executable_ever_allocated_ |
|
private |
◆ lowest_not_executable_ever_allocated_
std::atomic<Address> v8::internal::MemoryAllocator::lowest_not_executable_ever_allocated_ |
|
private |
◆ normal_pages_
◆ pool_
PagePool* v8::internal::MemoryAllocator::pool_ |
|
private |
◆ queued_pages_to_be_freed_
◆ reserved_chunk_at_virtual_memory_limit_
std::optional<VirtualMemory> v8::internal::MemoryAllocator::reserved_chunk_at_virtual_memory_limit_ |
|
private |
◆ size_
std::atomic<size_t> v8::internal::MemoryAllocator::size_ = 0 |
|
private |
◆ size_executable_
std::atomic<size_t> v8::internal::MemoryAllocator::size_executable_ = 0 |
|
private |
◆ trusted_page_allocator_
The documentation for this class was generated from the following files: