event_engine/iomgr_engine/time_averaged_stats.cc
Go to the documentation of this file.
1 /*
2  *
3  * Copyright 2015 gRPC authors.
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  */
18 
20 
22 
23 namespace grpc_event_engine {
24 namespace iomgr_engine {
25 
26 TimeAveragedStats::TimeAveragedStats(double init_avg, double regress_weight,
27  double persistence_factor)
28  : init_avg_(init_avg),
29  regress_weight_(regress_weight),
30  persistence_factor_(persistence_factor) {}
31 
35 }
36 
38  /* Start with the current batch: */
39  double weighted_sum = batch_total_value_;
40  double total_weight = batch_num_samples_;
41  if (regress_weight_ > 0) {
42  /* Add in the regression towards init_avg_: */
43  weighted_sum += regress_weight_ * init_avg_;
44  total_weight += regress_weight_;
45  }
46  if (persistence_factor_ > 0) {
47  /* Add in the persistence: */
48  const double prev_sample_weight =
50  weighted_sum += prev_sample_weight * aggregate_weighted_avg_;
51  total_weight += prev_sample_weight;
52  }
54  (total_weight > 0) ? (weighted_sum / total_weight) : init_avg_;
55  aggregate_total_weight_ = total_weight;
59 }
60 
61 } // namespace iomgr_engine
62 } // namespace grpc_event_engine
grpc_event_engine::iomgr_engine::TimeAveragedStats::AddSample
void AddSample(double value)
Definition: event_engine/iomgr_engine/time_averaged_stats.cc:32
time_averaged_stats.h
grpc_event_engine::iomgr_engine::TimeAveragedStats::persistence_factor_
const double persistence_factor_
Definition: event_engine/iomgr_engine/time_averaged_stats.h:63
grpc_event_engine::iomgr_engine::TimeAveragedStats::batch_num_samples_
double batch_num_samples_
Definition: event_engine/iomgr_engine/time_averaged_stats.h:68
grpc_event_engine::iomgr_engine::TimeAveragedStats::regress_weight_
const double regress_weight_
Definition: event_engine/iomgr_engine/time_averaged_stats.h:55
grpc_event_engine::iomgr_engine::TimeAveragedStats::aggregate_weighted_avg_
double aggregate_weighted_avg_
Definition: event_engine/iomgr_engine/time_averaged_stats.h:75
grpc_event_engine::iomgr_engine::TimeAveragedStats::UpdateAverage
double UpdateAverage()
Definition: event_engine/iomgr_engine/time_averaged_stats.cc:37
grpc_event_engine::iomgr_engine::TimeAveragedStats::aggregate_total_weight_
double aggregate_total_weight_
Definition: event_engine/iomgr_engine/time_averaged_stats.h:72
value
const char * value
Definition: hpack_parser_table.cc:165
grpc_event_engine::iomgr_engine::TimeAveragedStats::batch_total_value_
double batch_total_value_
Definition: event_engine/iomgr_engine/time_averaged_stats.h:66
grpc_event_engine
Definition: endpoint_config.h:24
grpc_event_engine::iomgr_engine::TimeAveragedStats::TimeAveragedStats
TimeAveragedStats(double init_avg, double regress_weight, double persistence_factor)
Definition: event_engine/iomgr_engine/time_averaged_stats.cc:26
grpc_event_engine::iomgr_engine::TimeAveragedStats::init_avg_
const double init_avg_
Definition: event_engine/iomgr_engine/time_averaged_stats.h:48
port_platform.h


grpc
Author(s):
autogenerated on Fri May 16 2025 03:00:36