Commit ed6dc213 authored by Benoît Lizé's avatar Benoît Lizé Committed by Commit Bot

tools/android: Better formatting in compression_benchmark.

Better CSV output.

Bug: 907489
Change-Id: Ibe6be70beffacdabc570c4bdc2a8868c0e9ab41c
Reviewed-on: https://chromium-review.googlesource.com/c/1358432
Commit-Queue: Egor Pasko <pasko@chromium.org>
Reviewed-by: default avatarEgor Pasko <pasko@chromium.org>
Cr-Commit-Position: refs/heads/master@{#613065}
parent 7ae9c365
...@@ -21,19 +21,34 @@ namespace { ...@@ -21,19 +21,34 @@ namespace {
enum class CompressionType { kSnappy, kZlib, kBrotli }; enum class CompressionType { kSnappy, kZlib, kBrotli };
void LogThroughputAndLatency(size_t chunk_size, void LogResults(CompressionType compression_type,
size_t chunk_count, bool compression,
base::TimeTicks tick, size_t chunk_size,
base::TimeTicks tock) { size_t chunk_count,
double compression_ratio,
base::TimeTicks tick,
base::TimeTicks tock) {
size_t total_size = chunk_size * chunk_count; size_t total_size = chunk_size * chunk_count;
double elapsed_us = (tock - tick).InMicrosecondsF(); double elapsed_us = (tock - tick).InMicrosecondsF();
double throughput = total_size / elapsed_us; double throughput = total_size / elapsed_us;
double latency_us = elapsed_us / chunk_count; double latency_us = elapsed_us / chunk_count;
LOG(INFO) << " Throughput = " << throughput << "MB/s";
LOG(INFO) << " Latency (size = " << chunk_size << ") = " << latency_us std::string compression_name;
<< "us"; switch (compression_type) {
LOG(INFO) << "AS_CSV=" << chunk_size << "," << throughput << "," case CompressionType::kSnappy:
<< latency_us; compression_name = "snappy";
break;
case CompressionType::kZlib:
compression_name = "zlib";
break;
case CompressionType::kBrotli:
compression_name = "brotli";
break;
}
LOG(INFO) << compression_name << ","
<< (compression ? "compression" : "decompression") << ","
<< chunk_size << "," << throughput << "," << latency_us << ","
<< compression_ratio;
} }
void CompressChunks(const std::string& contents, void CompressChunks(const std::string& contents,
...@@ -99,7 +114,8 @@ void BenchmarkDecompression(const std::string& contents, ...@@ -99,7 +114,8 @@ void BenchmarkDecompression(const std::string& contents,
} }
auto tock = base::TimeTicks::Now(); auto tock = base::TimeTicks::Now();
LogThroughputAndLatency(chunk_size, compressed_chunks.size(), tick, tock); LogResults(compression_type, false, chunk_size, compressed_chunks.size(), 0.,
tick, tock);
} }
void BenchmarkCompression(const std::string& contents, void BenchmarkCompression(const std::string& contents,
...@@ -115,8 +131,8 @@ void BenchmarkCompression(const std::string& contents, ...@@ -115,8 +131,8 @@ void BenchmarkCompression(const std::string& contents,
compressed_size += compressed_chunk.size(); compressed_size += compressed_chunk.size();
double ratio = contents.size() / static_cast<double>(compressed_size); double ratio = contents.size() / static_cast<double>(compressed_size);
LOG(INFO) << " Compression ratio = " << ratio; LogResults(compression_type, true, chunk_size, compressed_chunks.size(),
LogThroughputAndLatency(chunk_size, compressed_chunks.size(), tick, tock); ratio, tick, tock);
} }
} // namespace } // namespace
...@@ -146,23 +162,8 @@ int main(int argc, char** argv) { ...@@ -146,23 +162,8 @@ int main(int argc, char** argv) {
for (CompressionType compression_type : for (CompressionType compression_type :
{CompressionType::kSnappy, CompressionType::kZlib, {CompressionType::kSnappy, CompressionType::kZlib,
CompressionType::kBrotli}) { CompressionType::kBrotli}) {
switch (compression_type) {
LOG(INFO) << "\n\n\n\n";
case CompressionType::kSnappy:
LOG(INFO) << "Snappy";
break;
case CompressionType::kZlib:
LOG(INFO) << "Zlib";
break;
case CompressionType::kBrotli:
LOG(INFO) << "Brotli";
break;
}
for (size_t size = kPageSize; size < contents.size(); size *= 2) { for (size_t size = kPageSize; size < contents.size(); size *= 2) {
LOG(INFO) << "Size = " << size;
LOG(INFO) << "Compression";
BenchmarkCompression(repeated_contents, size, compression_type); BenchmarkCompression(repeated_contents, size, compression_type);
LOG(INFO) << "Decompression";
BenchmarkDecompression(repeated_contents, size, compression_type); BenchmarkDecompression(repeated_contents, size, compression_type);
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment