From ad663789f9e63cacde9b7e267ba32fddaedd3f50 Mon Sep 17 00:00:00 2001 From: "KH." <142028490+YanagiKH@users.noreply.github.com> Date: Sun, 2 Aug 2026 04:54:20 +0900 Subject: [PATCH] Optimize CI caching and metrics flush - Add Rust cache to the package test workflow to reduce repeated build time. - Replace the SQLite metrics drain/collect path with `std::mem::take` to avoid an extra allocation when flushing buffered telemetry. --- .github/workflows/package_test.yml | 3 +++ src/engine/telemetry/exporter.rs | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/package_test.yml b/.github/workflows/package_test.yml index 758d7ef7f..6c0e745ce 100644 --- a/.github/workflows/package_test.yml +++ b/.github/workflows/package_test.yml @@ -38,6 +38,9 @@ jobs: - name: Git checkout uses: actions/checkout@v6 + - name: Rust cache + uses: Swatinem/rust-cache@v2 + - name: License files run: | rm -f LICENSE_*-LICENSE-* diff --git a/src/engine/telemetry/exporter.rs b/src/engine/telemetry/exporter.rs index d523cf369..9e395814c 100644 --- a/src/engine/telemetry/exporter.rs +++ b/src/engine/telemetry/exporter.rs @@ -171,9 +171,9 @@ impl SqliteExporter { } fn flush_buffer(&self) -> Result<()> { - let samples: Vec<_> = { + let samples = { let mut buf = self.buf.lock().unwrap(); - buf.drain(..).collect() + std::mem::take(&mut *buf) }; if samples.is_empty() {