5#ifndef V8_HEAP_BASE_BYTES_H_
6#define V8_HEAP_BASE_BYTES_H_
36 std::optional<v8::base::TimeDelta> selected_duration,
37 size_t min_non_empty_speed = 0,
38 size_t max_speed = std::numeric_limits<size_t>::max()) {
42 if (selected_duration.has_value() &&
43 a.duration >= selected_duration.value()) {
50 if (duration.IsZero()) {
54 std::min(
static_cast<double>(sum.
bytes) / duration.InMillisecondsF(),
55 static_cast<double>(max_speed)),
56 static_cast<double>(min_non_empty_speed));
68 const double new_throughput = bytes_and_duration.
bytes /
void Update(BytesAndDuration bytes_and_duration)
SmoothedBytesAndDuration(v8::base::TimeDelta decay)
const v8::base::TimeDelta decay_
double GetThroughput() const
double GetThroughput(v8::base::TimeDelta delay) const
double Decay(double throughput, v8::base::TimeDelta delay) const
constexpr T Reduce(Callback callback, const T &initial) const
double InMillisecondsF() const
constexpr bool IsZero() const
std::optional< TNode< JSArray > > a
std::optional< double > AverageSpeed(const BytesAndDurationBuffer &buffer, const BytesAndDuration &initial, std::optional< v8::base::TimeDelta > selected_duration, size_t min_non_empty_speed=0, size_t max_speed=std::numeric_limits< size_t >::max())
constexpr BytesAndDuration(size_t bytes, v8::base::TimeDelta duration)
v8::base::TimeDelta duration
constexpr BytesAndDuration()=default