5#ifndef V8_HEAP_MEMORY_BALANCER_H_
6#define V8_HEAP_MEMORY_BALANCER_H_
40 void Update(
size_t bytes,
double duration,
double decay_rate) {
42 bytes_ * decay_rate +
static_cast<double>(bytes) * (1 - decay_rate);
void RunInternal() override
HeartbeatTask & operator=(const HeartbeatTask &)=delete
~HeartbeatTask() override=default
HeartbeatTask(Isolate *isolate, MemoryBalancer *mb)
HeartbeatTask(const HeartbeatTask &)=delete
void Update(size_t bytes, double duration, double decay_rate)
SmoothedBytesAndDuration(size_t bytes, double duration)
size_t live_memory_after_gc_
MemoryBalancer(Heap *heap, base::TimeTicks startup_time)
std::optional< SmoothedBytesAndDuration > major_gc_speed_
static constexpr double kMajorAllocationDecayRate
void UpdateGCSpeed(size_t major_gc_bytes, base::TimeDelta major_gc_duration)
void RecomputeLimits(size_t embedder_allocation_limit, base::TimeTicks time)
size_t last_measured_memory_
base::TimeTicks last_measured_at_
void UpdateAllocationRate(size_t major_allocation_bytes, base::TimeDelta major_allocation_duration)
size_t embedder_allocation_limit_
std::optional< SmoothedBytesAndDuration > major_allocation_rate_
bool heartbeat_task_started_
static constexpr double kMajorGCDecayRate