Upload all values instead of only mean and err into histograms
Bug: None Change-Id: I3c4778bcc8170f5de11b61173dfebbdb5fd9b462 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/208287 Reviewed-by: Andrey Logvin <landrey@webrtc.org> Commit-Queue: Artem Titov <titovartem@webrtc.org> Cr-Commit-Position: refs/heads/master@{#33311}
This commit is contained in:
parent
3d37e06fed
commit
bc9dc5a0b0
@ -42,6 +42,19 @@ std::string UnitWithDirection(
|
||||
}
|
||||
}
|
||||
|
||||
std::vector<SamplesStatsCounter::StatsSample> GetSortedSamples(
|
||||
const SamplesStatsCounter& counter) {
|
||||
rtc::ArrayView<const SamplesStatsCounter::StatsSample> view =
|
||||
counter.GetTimedSamples();
|
||||
std::vector<SamplesStatsCounter::StatsSample> out(view.begin(), view.end());
|
||||
std::sort(out.begin(), out.end(),
|
||||
[](const SamplesStatsCounter::StatsSample& a,
|
||||
const SamplesStatsCounter::StatsSample& b) {
|
||||
return a.time < b.time;
|
||||
});
|
||||
return out;
|
||||
}
|
||||
|
||||
template <typename Container>
|
||||
void OutputListToStream(std::ostream* ostream, const Container& values) {
|
||||
const char* sep = "";
|
||||
@ -278,8 +291,19 @@ void PrintResult(absl::string_view measurement,
|
||||
|
||||
double mean = counter.IsEmpty() ? 0 : counter.GetAverage();
|
||||
double error = counter.IsEmpty() ? 0 : counter.GetStandardDeviation();
|
||||
PrintResultMeanAndError(measurement, modifier, trace, mean, error, units,
|
||||
|
||||
std::vector<SamplesStatsCounter::StatsSample> timed_samples =
|
||||
GetSortedSamples(counter);
|
||||
std::vector<double> samples(timed_samples.size());
|
||||
for (size_t i = 0; i < timed_samples.size(); ++i) {
|
||||
samples[i] = timed_samples[i].value;
|
||||
}
|
||||
|
||||
GetPerfWriter().LogResultList(graph_name.str(), trace, samples, units,
|
||||
important, improve_direction);
|
||||
GetResultsLinePrinter().PrintResultMeanAndError(graph_name.str(), trace, mean,
|
||||
error, units, important,
|
||||
improve_direction);
|
||||
}
|
||||
|
||||
void PrintResultMeanAndError(absl::string_view measurement,
|
||||
|
||||
@ -34,6 +34,25 @@ TEST(PerfHistogramWriterUnittest, TestSimpleHistogram) {
|
||||
ASSERT_EQ(histogram_set.histograms_size(), 1);
|
||||
}
|
||||
|
||||
TEST(PerfHistogramWriterUnittest, TestListOfValuesHistogram) {
|
||||
std::unique_ptr<PerfTestResultWriter> writer =
|
||||
std::unique_ptr<PerfTestResultWriter>(CreateHistogramWriter());
|
||||
|
||||
std::vector<double> samples{0, 1, 2};
|
||||
writer->LogResultList("-", "-", samples, "ms", false,
|
||||
ImproveDirection::kNone);
|
||||
|
||||
proto::HistogramSet histogram_set;
|
||||
EXPECT_TRUE(histogram_set.ParseFromString(writer->Serialize()))
|
||||
<< "Expected valid histogram set";
|
||||
|
||||
ASSERT_EQ(histogram_set.histograms_size(), 1);
|
||||
ASSERT_EQ(histogram_set.histograms(0).sample_values_size(), 3);
|
||||
EXPECT_EQ(histogram_set.histograms(0).sample_values(0), 0);
|
||||
EXPECT_EQ(histogram_set.histograms(0).sample_values(1), 1);
|
||||
EXPECT_EQ(histogram_set.histograms(0).sample_values(2), 2);
|
||||
}
|
||||
|
||||
TEST(PerfHistogramWriterUnittest, WritesSamplesAndUserStory) {
|
||||
std::unique_ptr<PerfTestResultWriter> writer =
|
||||
std::unique_ptr<PerfTestResultWriter>(CreateHistogramWriter());
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user