三轮原值、写入时间与验证
改动仅使retry_yield_every参数在突发测试中实际生效:0关闭主动yield;成功写入、消息内容、回调及计时窗口均保持一致。没有过滤慢样本。
[
{
"queue": "TwoBufQueue_yield1024",
"per_run": [
{
"queue": "TwoBufQueue_yield1024",
"run": 1,
"samples": 10000,
"before_ns": 14.46458333332224,
"p50": 15.625,
"p99": 109.375,
"p999": 377.604166667,
"write_ms": 345.86933333334053,
"bp_percent": 0.017545166015625
},
{
"queue": "TwoBufQueue_yield1024",
"run": 2,
"samples": 10000,
"before_ns": 14.84999999998928,
"p50": 15.625,
"p99": 98.9583333333,
"p999": 291.666666667,
"write_ms": 332.48412499999307,
"bp_percent": 0.013189697265625
},
{
"queue": "TwoBufQueue_yield1024",
"run": 3,
"samples": 10000,
"before_ns": 14.679166666655961,
"p50": 15.625,
"p99": 140.625,
"p999": 872.395833333,
"write_ms": 416.6512916667625,
"bp_percent": 0.031781005859374996
}
],
"before_ns": 14.664583333322494,
"p50": 15.625,
"p99": 116.31944444443333,
"p999": 513.888888889,
"write_ms": 365.0015833333654,
"bp_percent": 0.020838623046874998
},
{
"queue": "TwoBufQueue_yield0",
"per_run": [
{
"queue": "TwoBufQueue_yield0",
"run": 1,
"samples": 10000,
"before_ns": 14.613541666656241,
"p50": 15.625,
"p99": 96.3541666667,
"p999": 174.479166667,
"write_ms": 341.6935416666763,
"bp_percent": 0.025716552734375002
},
{
"queue": "TwoBufQueue_yield0",
"run": 2,
"samples": 10000,
"before_ns": 15.2927083333238,
"p50": 20.8333333333,
"p99": 117.1875,
"p999": 718.75,
"write_ms": 383.39629166669,
"bp_percent": 0.043779296875
},
{
"queue": "TwoBufQueue_yield0",
"run": 3,
"samples": 10000,
"before_ns": 14.7249999999884,
"p50": 15.625,
"p99": 98.9583333333,
"p999": 151.041666667,
"write_ms": 327.575999999977,
"bp_percent": 0.013990478515624998
}
],
"before_ns": 14.877083333322814,
"p50": 17.3611111111,
"p99": 104.16666666666667,
"p999": 348.090277778,
"write_ms": 350.8886111111144,
"bp_percent": 0.027828776041666666
},
{
"queue": "TwoBufQueue_yield65536",
"per_run": [
{
"queue": "TwoBufQueue_yield65536",
"run": 1,
"samples": 10000,
"before_ns": 14.52812499998928,
"p50": 15.625,
"p99": 106.770833333,
"p999": 481.770833333,
"write_ms": 344.4458333333438,
"bp_percent": 0.015026855468750001
},
{
"queue": "TwoBufQueue_yield65536",
"run": 2,
"samples": 10000,
"before_ns": 15.01354166665644,
"p50": 15.625,
"p99": 114.583333333,
"p999": 664.0625,
"write_ms": 392.0012916666472,
"bp_percent": 0.028759765625
},
{
"queue": "TwoBufQueue_yield65536",
"run": 3,
"samples": 10000,
"before_ns": 14.423958333322,
"p50": 15.625,
"p99": 104.166666667,
"p999": 289.0625,
"write_ms": 334.71512499999295,
"bp_percent": 0.012691650390625002
}
],
"before_ns": 14.655208333322573,
"p50": 15.625,
"p99": 108.50694444433333,
"p999": 478.298611111,
"write_ms": 357.054083333328,
"bp_percent": 0.018826090494791666
},
{
"queue": "ReaderWriterQueue",
"per_run": [
{
"queue": "ReaderWriterQueue",
"run": 1,
"samples": 10000,
"before_ns": 15.1593749999886,
"p50": 23.4375,
"p99": 130.208333333,
"p999": 718.75,
"write_ms": 2658.5720833333503,
"bp_percent": 0.0
},
{
"queue": "ReaderWriterQueue",
"run": 2,
"samples": 10000,
"before_ns": 13.87812499998668,
"p50": 23.4375,
"p99": 67.7083333333,
"p999": 382.8125,
"write_ms": 2928.9801666667295,
"bp_percent": 0.0
},
{
"queue": "ReaderWriterQueue",
"run": 3,
"samples": 10000,
"before_ns": 13.7281249999856,
"p50": 23.4375,
"p99": 67.7083333333,
"p999": 166.666666667,
"write_ms": 2963.7682499998714,
"bp_percent": 0.0
}
],
"before_ns": 14.255208333320294,
"p50": 23.4375,
"p99": 88.54166666653335,
"p999": 422.7430555556667,
"write_ms": 2850.4401666666504,
"bp_percent": 0.0
},
{
"queue": "rigtorp",
"per_run": [
{
"queue": "rigtorp",
"run": 1,
"samples": 10000,
"before_ns": 13.84999999998544,
"p50": 13.0208333333,
"p99": 65.1041666667,
"p999": 119.791666667,
"write_ms": 4340.529125000086,
"bp_percent": 0.0
},
{
"queue": "rigtorp",
"run": 2,
"samples": 10000,
"before_ns": 13.9385416666524,
"p50": 13.0208333333,
"p99": 75.5208333333,
"p999": 289.0625,
"write_ms": 4308.182208333193,
"bp_percent": 0.0
},
{
"queue": "rigtorp",
"run": 3,
"samples": 10000,
"before_ns": 13.983333333318841,
"p50": 13.0208333333,
"p99": 88.5416666667,
"p999": 335.9375,
"write_ms": 4276.465541666649,
"bp_percent": 0.0
}
],
"before_ns": 13.923958333318893,
"p50": 13.0208333333,
"p99": 76.3888888889,
"p999": 248.263888889,
"write_ms": 4308.392291666642,
"bp_percent": 0.0
},
{
"queue": "atomic_queue",
"per_run": [
{
"queue": "atomic_queue",
"run": 1,
"samples": 10000,
"before_ns": 14.18020833332044,
"p50": 36.4583333333,
"p99": 67.7083333333,
"p999": 161.458333333,
"write_ms": 534.80295833333,
"bp_percent": 0.0
},
{
"queue": "atomic_queue",
"run": 2,
"samples": 10000,
"before_ns": 14.34999999998736,
"p50": 39.0625,
"p99": 96.3541666667,
"p999": 531.25,
"write_ms": 574.6475000000029,
"bp_percent": 0.0
},
{
"queue": "atomic_queue",
"run": 3,
"samples": 10000,
"before_ns": 13.80104166665208,
"p50": 39.0625,
"p99": 65.1041666667,
"p999": 111.979166667,
"write_ms": 525.8597083333368,
"bp_percent": 0.0
}
],
"before_ns": 14.110416666653293,
"p50": 38.19444444443333,
"p99": 76.3888888889,
"p999": 268.2291666666667,
"write_ms": 545.1033888888899,
"bp_percent": 0.0
}
]复现与参数明细
python3 benchmarks/burst/run_burst_tail_1m.py --profile docs/performance_data/burst_tail_1m_20261012/selected_config.json
一个命令完成构建、六个条件、三轮完整采样及报告;不需要额外采样。
全部统计 · 运行清单 · 初始化参数
{
"business_kib": [
24,
48,
96
],
"bursts_mib": [
1
],
"runs": 3,
"selection_repeats": 8,
"samples_per_run": 10000,
"callback_candidates": [
16,
32,
64,
128,
256
],
"process_timeout": 900,
"fixed_callback_iterations": 0,
"selected_business_kib": 48,
"callback_iterations": 64,
"final_window_repeats": 2500,
"writer_pool_total_bytes": 16384,
"reader_pool_total_bytes": 268435456,
"native_slot_storage_bytes": 268435456,
"payload_bytes": 32,
"business_accesses": 8,
"business_warm_queries": 512,
"pre_queries": 16,
"post_queries": 64,
"group_queries": 16,
"quantiles": "perrunnearest-rank,then3runarithmeticmean",
"selection_rule": "use median-window relative advantages over all burst sizes and runs; among candidates within2%of best score choose most wins, lower run variability, then smaller working set",
"machine": {
"cpu": "Apple Silicon (arm64)",
"os": "macOS-14.4.1-arm64-arm-64bit",
"producer_qos": "user_interactive",
"hard_affinity": false
},
"regular_apis": {
"ReaderWriterQueue": "try_enqueue+membercopy",
"rigtorp": "try_push;noaddedprefetch",
"atomic_queue": "SPSCtry_push"
},
"producer_qos": "user_interactive on macOS",
"producer_cpu": -1,
"publish_count": 4294967295,
"scan_current": false,
"queue_parameters": {
"baseline": {
"transport": "two_buf_queue",
"mode": "throughput",
"payload_bytes": 32,
"messages": 10000000,
"warmup_messages": 0,
"callback_iterations": 64,
"verify_payload": true,
"prepared_input": false,
"variable_payload": true,
"prepared_input_limit_bytes": 268435456,
"measure_callback_time": false,
"producer_interval_ns": 0,
"source_block_size": 4096,
"source_pool_min": 4,
"source_pool_max": 4,
"source_queue_capacity": 16,
"writer_backpressure": "drop",
"writer_spin_count": 1000,
"writer_wait_timeout_ms": 5000,
"output_block_size": 4096,
"output_frame_capacity": 4,
"output_pool_min": 65536,
"output_pool_max": 65536,
"output_queue_capacity": 65538,
"cancel_claim_mode": "tail",
"output_mode": "spsc",
"output_reader_mode": "wait_signal",
"output_reader_count": 1,
"output_retry_wait_us": 1000,
"output_enable_stats": false,
"is_scan_current": false,
"reader_spin_count": 1000,
"rescan_interval_ns": 1000000,
"rescan_max_interval_ns": 1000000,
"consumer_cpu": -1,
"producer_cpu": -1,
"producer_qos": "user_interactive",
"round_storage_bytes": 214748320,
"fixed_round_boundaries": true,
"spsc_buffer_bytes": 268435456,
"prefault_producer_buffers": true,
"finish_timeout_ms": 120000,
"work_wait_min_ms": 1,
"finish_retry_ms": 1,
"publish_count": 4294967295,
"use_write_session": false,
"rigtorp_write_prefetch": true,
"readerwriterqueue_copy_after_zero": false,
"spsc_capacity": 0,
"retry_yield_every": 1024,
"spsc_idle_spins": 1000,
"spsc_idle_sleep_ns": 0,
"timer": "auto",
"sample_every": 256,
"max_samples": 100000,
"latency_batch_size": 1000,
"timer_calibration_samples": 16384,
"call_batch_size": 256,
"random_seed": 42,
"timeout_seconds": 900,
"buffer_budget_bytes": 536870912
},
"TwoBufQueue": {
"transport": "two_buf_queue",
"mode": "throughput",
"payload_bytes": 32,
"messages": 10000000,
"warmup_messages": 0,
"callback_iterations": 64,
"verify_payload": true,
"prepared_input": false,
"variable_payload": true,
"prepared_input_limit_bytes": 268435456,
"measure_callback_time": false,
"producer_interval_ns": 0,
"source_block_size": 4096,
"source_pool_min": 4,
"source_pool_max": 4,
"source_queue_capacity": 16,
"writer_backpressure": "drop",
"writer_spin_count": 1000,
"writer_wait_timeout_ms": 5000,
"output_block_size": 4096,
"output_frame_capacity": 4,
"output_pool_min": 65536,
"output_pool_max": 65536,
"output_queue_capacity": 65538,
"cancel_claim_mode": "tail",
"output_mode": "spsc",
"output_reader_mode": "wait_signal",
"output_reader_count": 1,
"output_retry_wait_us": 1000,
"output_enable_stats": false,
"is_scan_current": false,
"reader_spin_count": 1000,
"rescan_interval_ns": 1000000,
"rescan_max_interval_ns": 1000000,
"consumer_cpu": -1,
"producer_cpu": -1,
"producer_qos": "user_interactive",
"round_storage_bytes": 214748320,
"fixed_round_boundaries": true,
"spsc_buffer_bytes": 268435456,
"prefault_producer_buffers": true,
"finish_timeout_ms": 120000,
"work_wait_min_ms": 1,
"finish_retry_ms": 1,
"publish_count": 4294967295,
"use_write_session": false,
"rigtorp_write_prefetch": true,
"readerwriterqueue_copy_after_zero": false,
"spsc_capacity": 0,
"retry_yield_every": 1024,
"spsc_idle_spins": 1000,
"spsc_idle_sleep_ns": 0,
"timer": "auto",
"sample_every": 256,
"max_samples": 100000,
"latency_batch_size": 1000,
"timer_calibration_samples": 16384,
"call_batch_size": 256,
"random_seed": 42,
"timeout_seconds": 900,
"buffer_budget_bytes": 536870912
},
"ReaderWriterQueue": {
"transport": "readerwriterqueue",
"mode": "throughput",
"payload_bytes": 32,
"messages": 10000000,
"warmup_messages": 0,
"callback_iterations": 64,
"verify_payload": true,
"prepared_input": false,
"variable_payload": true,
"prepared_input_limit_bytes": 268435456,
"measure_callback_time": false,
"producer_interval_ns": 0,
"source_block_size": 4096,
"source_pool_min": 4,
"source_pool_max": 4,
"source_queue_capacity": 16,
"writer_backpressure": "drop",
"writer_spin_count": 1000,
"writer_wait_timeout_ms": 5000,
"output_block_size": 4096,
"output_frame_capacity": 4,
"output_pool_min": 65536,
"output_pool_max": 65536,
"output_queue_capacity": 65538,
"cancel_claim_mode": "tail",
"output_mode": "spsc",
"output_reader_mode": "wait_signal",
"output_reader_count": 1,
"output_retry_wait_us": 1000,
"output_enable_stats": false,
"is_scan_current": false,
"reader_spin_count": 1000,
"rescan_interval_ns": 1000000,
"rescan_max_interval_ns": 1000000,
"consumer_cpu": -1,
"producer_cpu": -1,
"producer_qos": "user_interactive",
"round_storage_bytes": 214748320,
"fixed_round_boundaries": true,
"spsc_buffer_bytes": 268435456,
"prefault_producer_buffers": true,
"finish_timeout_ms": 120000,
"work_wait_min_ms": 1,
"finish_retry_ms": 1,
"publish_count": 4294967295,
"use_write_session": false,
"rigtorp_write_prefetch": true,
"readerwriterqueue_copy_after_zero": false,
"spsc_capacity": 8371713,
"retry_yield_every": 1024,
"spsc_idle_spins": 0,
"spsc_idle_sleep_ns": 12500,
"timer": "auto",
"sample_every": 256,
"max_samples": 100000,
"latency_batch_size": 1000,
"timer_calibration_samples": 16384,
"call_batch_size": 256,
"random_seed": 42,
"timeout_seconds": 900,
"buffer_budget_bytes": 536870912
},
"rigtorp": {
"transport": "rigtorp",
"mode": "throughput",
"payload_bytes": 32,
"messages": 10000000,
"warmup_messages": 0,
"callback_iterations": 64,
"verify_payload": true,
"prepared_input": false,
"variable_payload": true,
"prepared_input_limit_bytes": 268435456,
"measure_callback_time": false,
"producer_interval_ns": 0,
"source_block_size": 4096,
"source_pool_min": 4,
"source_pool_max": 4,
"source_queue_capacity": 16,
"writer_backpressure": "drop",
"writer_spin_count": 1000,
"writer_wait_timeout_ms": 5000,
"output_block_size": 4096,
"output_frame_capacity": 4,
"output_pool_min": 65536,
"output_pool_max": 65536,
"output_queue_capacity": 65538,
"cancel_claim_mode": "tail",
"output_mode": "spsc",
"output_reader_mode": "wait_signal",
"output_reader_count": 1,
"output_retry_wait_us": 1000,
"output_enable_stats": false,
"is_scan_current": false,
"reader_spin_count": 1000,
"rescan_interval_ns": 1000000,
"rescan_max_interval_ns": 1000000,
"consumer_cpu": -1,
"producer_cpu": -1,
"producer_qos": "user_interactive",
"round_storage_bytes": 214748320,
"fixed_round_boundaries": true,
"spsc_buffer_bytes": 268435456,
"prefault_producer_buffers": true,
"finish_timeout_ms": 120000,
"work_wait_min_ms": 1,
"finish_retry_ms": 1,
"publish_count": 4294967295,
"use_write_session": false,
"rigtorp_write_prefetch": false,
"readerwriterqueue_copy_after_zero": false,
"spsc_capacity": 8388603,
"retry_yield_every": 1024,
"spsc_idle_spins": 4000,
"spsc_idle_sleep_ns": 1000,
"timer": "auto",
"sample_every": 256,
"max_samples": 100000,
"latency_batch_size": 1000,
"timer_calibration_samples": 16384,
"call_batch_size": 256,
"random_seed": 42,
"timeout_seconds": 900,
"buffer_budget_bytes": 536870912
},
"atomic_queue": {
"transport": "atomic_queue",
"mode": "throughput",
"payload_bytes": 32,
"messages": 10000000,
"warmup_messages": 0,
"callback_iterations": 64,
"verify_payload": true,
"prepared_input": false,
"variable_payload": true,
"prepared_input_limit_bytes": 268435456,
"measure_callback_time": false,
"producer_interval_ns": 0,
"source_block_size": 4096,
"source_pool_min": 4,
"source_pool_max": 4,
"source_queue_capacity": 16,
"writer_backpressure": "drop",
"writer_spin_count": 1000,
"writer_wait_timeout_ms": 5000,
"output_block_size": 4096,
"output_frame_capacity": 4,
"output_pool_min": 65536,
"output_pool_max": 65536,
"output_queue_capacity": 65538,
"cancel_claim_mode": "tail",
"output_mode": "spsc",
"output_reader_mode": "wait_signal",
"output_reader_count": 1,
"output_retry_wait_us": 1000,
"output_enable_stats": false,
"is_scan_current": false,
"reader_spin_count": 1000,
"rescan_interval_ns": 1000000,
"rescan_max_interval_ns": 1000000,
"consumer_cpu": -1,
"producer_cpu": -1,
"producer_qos": "user_interactive",
"round_storage_bytes": 214748320,
"fixed_round_boundaries": true,
"spsc_buffer_bytes": 268435456,
"prefault_producer_buffers": true,
"finish_timeout_ms": 120000,
"work_wait_min_ms": 1,
"finish_retry_ms": 1,
"publish_count": 4294967295,
"use_write_session": false,
"rigtorp_write_prefetch": true,
"readerwriterqueue_copy_after_zero": false,
"spsc_capacity": 8388608,
"retry_yield_every": 1024,
"spsc_idle_spins": 2000,
"spsc_idle_sleep_ns": 10000,
"timer": "auto",
"sample_every": 256,
"max_samples": 100000,
"latency_batch_size": 1000,
"timer_calibration_samples": 16384,
"call_batch_size": 256,
"random_seed": 42,
"timeout_seconds": 900,
"buffer_budget_bytes": 536870912
}
},
"build": {
"BRQ_ENABLE_POOL_DEPTH_STATS": "OFF",
"CMAKE_BUILD_TYPE": "Release",
"CMAKE_CXX_COMPILER": "/opt/homebrew/opt/llvm@18/bin/clang++",
"CMAKE_CXX_FLAGS": "",
"CMAKE_CXX_FLAGS_RELEASE": "-O3 -DNDEBUG",
"CMAKE_CXX_COMPILER_ID": "Clang",
"CMAKE_CXX_COMPILER_VERSION": "18.1.8"
},
"benchmark_parameters": {
"source_pool_bytes": 16384,
"business_accesses": 8,
"warm_queries": 512,
"query_group": 16,
"query_groups": 4,
"target_percent": 80,
"setup_timeout_ms": 3000,
"prefill": true
},
"measurement_scope": "1MiB tail; retry strategies compared under the same fixed workload"
}