Caideyipi commented on PR #18240:
URL: https://github.com/apache/iotdb/pull/18240#issuecomment-5011305788

   Added opt-in, default-off manual performance tests in \`4a15830381f\`.
   
   The switches are:
   
   - \`-Diotdb.last.cache.write.perf.enabled=true\`
   - \`-Diotdb.pipe.insert.node.memory.estimator.reuse.perf.enabled=true\`
   
   Both tests alternate legacy/optimized order, warm up first, and report the 
median of 5 rounds. CPU is current-thread CPU time, allocation is 
current-thread allocated bytes, and peak heap is the summed heap-pool peak 
delta from the post-GC baseline for each round. There are no performance 
assertions, so the tests stay non-flaky and are skipped unless explicitly 
enabled.
   
   Environment: Windows, Oracle HotSpot 17.0.15.
   
   | Benchmark | Path | CPU (us/op) | Allocated (bytes/op) | Peak heap delta 
(MiB/round) |
   |---|---|---:|---:|---:|
   | Last cache: 1,000 measurements, 100 initialized | legacy eager array | 
17.969 | 52,016 | 168.053 |
   |  | optimized lazy source | 9.375 | 4,800 | 52.008 |
   |  | change | **1.92x faster** | **90.8% lower** | **69.1% lower** |
   | InsertRows estimator: 10 rows x 500 measurements | legacy fresh identity 
set | 20.313 | 18,728 | 168.012 |
   |  | optimized reused identity set | 18.750 | 2,392 | 44.000 |
   |  | change | **1.08x faster** | **87.2% lower** | **73.8% lower** |
   
   Default settings for both comparisons are 1,000 warmups, 20,000 operations 
per measured round, and 5 rounds.
   
   Reproduce on a clean checkout:
   
   \`\`\`bash
   mvn -pl iotdb-core/datanode \
     -Dtest=TableDeviceLastCachePerformanceTest \
     -Diotdb.last.cache.write.perf.enabled=true test
   
   mvn -pl iotdb-core/datanode \
     
-Dtest=InsertNodeMemoryEstimatorPerformanceTest#compositeInsertRowsReusableSetBenchmark
 \
     -Diotdb.pipe.insert.node.memory.estimator.reuse.perf.enabled=true test
   \`\`\`
   
   Validation completed:
   
   - Spotless: passed
   - Checkstyle: passed
   - Default-off behavior: 3 tests run, 3 skipped, build passed
   - The touched production/test sources compile against the Maven-resolved 
test classpath
   
   The full DataNode lifecycle compile in this local checkout remains blocked 
before test compilation by stale cross-module/generated artifacts 
(\`PipeConfig\` getters and fence-threshold Thrift methods), unrelated to this 
patch. I therefore collected the numbers by invoking the compiled JUnit classes 
directly with the same Maven-resolved classpath.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to