]> git.ipfire.org Git - thirdparty/ccache.git/commitdiff
Replace stats_update_size with incrementing counters directly
authorJoel Rosdahl <joel@rosdahl.net>
Thu, 10 Sep 2020 12:33:45 +0000 (14:33 +0200)
committerJoel Rosdahl <joel@rosdahl.net>
Mon, 14 Sep 2020 17:40:06 +0000 (19:40 +0200)
src/Result.cpp
src/ccache.cpp
src/compress.cpp
src/stats.cpp
src/stats.hpp

index a95c67d0364e1693e17cc30e2f7419be36aa66f8..ca3c06689ef431ac28d41eb1655b0b9789548247 100644 (file)
@@ -399,18 +399,20 @@ void
 Result::Writer::write_raw_file_entry(const std::string& path,
                                      uint32_t entry_number)
 {
-  auto raw_file = get_raw_file_path(m_result_path, entry_number);
-  auto old_stat = Stat::stat(raw_file);
+  const auto raw_file = get_raw_file_path(m_result_path, entry_number);
+  const auto old_stat = Stat::stat(raw_file);
   try {
     Util::clone_hard_link_or_copy_file(m_ctx, path, raw_file, true);
   } catch (Error& e) {
     throw Error(
       "Failed to store {} as raw file {}: {}", path, raw_file, e.what());
   }
-  auto new_stat = Stat::stat(raw_file);
-  stats_update_size(m_ctx.counter_updates,
-                    new_stat.size_on_disk() - old_stat.size_on_disk(),
-                    (new_stat ? 1 : 0) - (old_stat ? 1 : 0));
+  const auto new_stat = Stat::stat(raw_file);
+  const auto size_delta =
+    (new_stat.size_on_disk() - old_stat.size_on_disk()) / 1024;
+  const auto files_delta = (new_stat ? 1 : 0) - (old_stat ? 1 : 0);
+  m_ctx.counter_updates[Statistic::cache_size_kibibyte] += size_delta;
+  m_ctx.counter_updates[Statistic::files_in_cache] += files_delta;
 }
 
 } // namespace Result
index d6370504e8c771c92d619280c69ee21ddeda808d..4ef4a1c7ddb8cfcff9a348fd82b458b485b2a1ea 100644 (file)
@@ -750,16 +750,19 @@ update_manifest_file(Context& ctx)
                      save_timestamp)) {
     log("Failed to add result name to {}", ctx.manifest_path());
   } else {
-    auto st = Stat::stat(ctx.manifest_path(), Stat::OnError::log);
+    const auto st = Stat::stat(ctx.manifest_path(), Stat::OnError::log);
 
-    int64_t size_delta = st.size_on_disk() - old_st.size_on_disk();
-    int nof_files_delta = !old_st && st ? 1 : 0;
+    const int64_t size_delta =
+      (st.size_on_disk() - old_st.size_on_disk()) / 1024;
+    const int64_t files_delta = !old_st && st ? 1 : 0;
 
     if (ctx.stats_file() == ctx.manifest_stats_file()) {
-      stats_update_size(ctx.counter_updates, size_delta, nof_files_delta);
+      ctx.counter_updates[Statistic::cache_size_kibibyte] += size_delta;
+      ctx.counter_updates[Statistic::files_in_cache] += files_delta;
     } else {
       Counters counters;
-      stats_update_size(counters, size_delta, nof_files_delta);
+      counters[Statistic::cache_size_kibibyte] += size_delta;
+      counters[Statistic::files_in_cache] += files_delta;
       stats_flush_to_file(ctx.config, ctx.manifest_stats_file(), counters);
     }
   }
@@ -972,10 +975,10 @@ to_cache(Context& ctx,
   if (!new_dest_stat) {
     throw Failure(Statistic::internal_error);
   }
-  stats_update_size(ctx.counter_updates,
-                    new_dest_stat.size_on_disk()
-                      - orig_dest_stat.size_on_disk(),
-                    orig_dest_stat ? 0 : 1);
+  const auto size_delta =
+    (new_dest_stat.size_on_disk() - orig_dest_stat.size_on_disk()) / 1024;
+  ctx.counter_updates[Statistic::cache_size_kibibyte] += size_delta;
+  ctx.counter_updates[Statistic::files_in_cache] += orig_dest_stat ? 0 : 1;
 
   MTR_END("file", "file_put");
 
index 3f3fd28f6c14c09c51bbcf5a4ed68a84099a73ae..5ed62aee2ece7238688a04f28fa41989c7649ca4 100644 (file)
@@ -198,12 +198,13 @@ recompress_file(Context& ctx,
   atomic_new_file.commit();
   auto new_stat = Stat::stat(cache_file.path(), Stat::OnError::log);
 
-  size_t size_on_disk_delta = new_stat.size_on_disk() - old_stat.size_on_disk();
+  const size_t size_delta =
+    (new_stat.size_on_disk() - old_stat.size_on_disk()) / 1024;
   if (ctx.stats_file() == stats_file) {
-    stats_update_size(ctx.counter_updates, size_on_disk_delta, 0);
+    ctx.counter_updates[Statistic::cache_size_kibibyte] += size_delta;
   } else {
     Counters counters;
-    stats_update_size(counters, size_on_disk_delta, 0);
+    counters[Statistic::cache_size_kibibyte] += size_delta;
     stats_flush_to_file(ctx.config, stats_file, counters);
   }
 
index c25ebf93453edee370123a2345e079731807570f..53aa5438c9cd7ca904787daddfd72729ff649cfd 100644 (file)
@@ -226,19 +226,6 @@ stats_collect(const Config& config, Counters& counters, time_t* last_updated)
   counters[Statistic::stats_zeroed_timestamp] = zero_timestamp;
 }
 
-// Record that a number of bytes and files have been added to the cache. Size
-// is in bytes.
-void
-stats_update_size(Counters& counters, int64_t size, int files)
-{
-  if (size == 0 && files == 0) {
-    return;
-  }
-
-  counters[Statistic::cache_size_kibibyte] += size / 1024;
-  counters[Statistic::files_in_cache] += files;
-}
-
 // Read in the stats from one directory and add to the counters.
 void
 stats_read(const std::string& path, Counters& counters)
index b970440a94a2aa2c5b577e1db2f4db42ccd77514..67948db52c5766e0c76eaf33c296cbf1469d589f 100644 (file)
@@ -74,7 +74,6 @@ void stats_zero(const Context& ctx);
 void stats_summary(const Context& ctx);
 void stats_print(const Config& config);
 
-void stats_update_size(Counters& counters, int64_t size, int files);
 void stats_get_obsolete_limits(const std::string& dir,
                                uint64_t* maxfiles,
                                uint64_t* maxsize);