测试条件与初始化参数
正式每项 1,000 万条,3 次独立进程取算术平均;运行顺序打乱,测试串行执行。固定 256 MiB 第二层,每轮上限为其 80%,不随第一层变化。队列页通过真实管道预热两轮,业务预热 20,000 次。首次分配和预热不计时。
普通 write:publish_write_ptr_count = UINT32_MAX、is_scan_current = false;消息不写长度。源池与输出池在构造时预分配,块满后交接;已写消息在完整块或轮末交接后供复制线程读取。原生队列使用 spsc_* 字段,初始化记录中的 source/output 字段只供公共配置校验,不会构建双层管道。原生队列保留上游源码与原生入队接口,复制选项在这个相同业务负载下复测,选出三次平均吞吐较好的选项,三个缓存敏感回调场景保持该选项;纯计算负载另外筛选原生复制选项。
机器、编译器与电源记录
{
"date": "2026-10-12",
"platform": "macOS-14.4.1-arm64-arm-64bit",
"machine": "Apple M3",
"logical_cpus": 8,
"ram_bytes": 8589934592,
"performance_l1_data_bytes": 131072,
"efficiency_l1_data_bytes": 65536,
"cache_line_bytes": 128,
"qos": "USER_INTERACTIVE, verified in each process",
"hard_affinity": false,
"compiler": "Homebrew clang version 18.1.8",
"compile_flags": "Release -O3 -DNDEBUG (CMake)",
"power": "Now drawing from 'AC Power'\n -InternalBattery-0 (id=6226019)\t100%; charged; 0:00 remaining present: true",
"business_step": "One shared noinline implementation, verified single symbol with llvm-nm",
"source_snapshot_sha256": {
"src/.DS_Store": "0691be68b575f4c3222d27f71d06be86a4b30e96cb99ef5404fefbbeff222ed2",
"src/two_buf_queue.hpp": "cabc2ab36d4c9d3fdfd3a3b6b8b2302824db30aaf8fafa7144fd2e8576de4039",
"src/write/seq_writer.cpp": "8128732abe1e41c491630a2f65d15858d59bd4ef92dcf45c854f169855003982",
"src/write/make_queue.hpp": "808415585792bbeba881b0af7beb6c60e9bf16d21b742a7f163775834ad478f7",
"src/write/writer.hpp": "d81f05a9115f8d182c8ba936263dc979acc7fd343ead03c7c182da885219eec0",
"src/write/sync_context.hpp": "42f007db1badf5a012bf3071c3c9a77577c052029bae1456b12d7d4647eb4d08",
"src/write/types.hpp": "ee9185d6ae49801c1a28f8010ba209456935e148116aab1895dbb73c0ecfe828",
"src/write/seq_writer.hpp": "6763aff97c70daabf3b9ae2a12db079b1ef52453a19f4dbe662040b59ccfd1b9",
"src/write/writer.cpp": "d3349d9143deadaf3f9242ad3ea25735f9209ec662c695d782878b2a2620fc93",
"src/write/writer_base.hpp": "04b56920b6708f784a3087c5aab1177f7a460398631d85ac37a722d79ddef27c",
"src/base_components/block_slice/block_resource_factory.hpp": "ac3122d5267b12119b14ce9c484f6640b6afbd5c713aa3b8fea85bea1bfcfc5f",
"src/base_components/block_slice/basic_block.hpp": "c1b82d3ad5860b73d2199b31d513a1ace91c67ebec384b7fc093d776940fb178",
"src/base_components/block_slice/reader_block.hpp": "c87fb4ada08dc09ce1328fc05bfc3ccc9ad1254c4e2c60aee2d64f8cbdd7fb32",
"src/base_components/block_slice/slice_pool.hpp": "0d68260e3d41b881faf2d57787fd1a992bdd2a34d361b02c69d59104e8e82726",
"src/base_components/block_slice/block_slices_allocator.hpp": "ef196108b3bd19878a00f3f22cac2a093752a59984fabb0a49c4309c36866d5b",
"src/base_components/block_slice/writer_block.hpp": "fb9d41b36f88301fcdada460fd390be8f1393173a1e94cc5b8377c923914acc9",
"src/base_components/block_slice/memory_slice.hpp": "122a2d4180051bef1b1575a76340007e859aea23a4cddce55fcf8c6aaf83b5e5",
"src/base_components/live_handoff_queue/spsc_live_handoff_queue.hpp": "04322881bf4b2a0176bc6c3ef1889f8e23d4f6ab7eaa44c4053fdfe3b3ed549f",
"src/base_components/handoff_queue/claim_queue.hpp": "e3dd6e79d3aca4cae96f619104d44763b6ae7f87a5636088731cf1805baea3ea",
"src/base_components/handoff_queue/pooled_resource_queue.hpp": "ce12e04b0e5d7870499962e43a377c3dd33385da97bfd460b97a24bbcee2858c",
"src/base_components/handoff_queue/handoff_reader.hpp": "d1191417435a515003bfe029d52ee9e643888ae1bc8d610b9abfa075e509dee5",
"src/base_components/handoff_queue/queue_ticket.hpp": "3716dbd2c38a0c6cf743be62bda01d334fbfb7a7517f003fb09a82c1d16da6ee",
"src/base_components/handoff_queue/ready_index_queue.hpp": "2db96b7e52e6e68f708c61e90f819c69b8b17cc64faab1c82b80bafc8ec0c20b",
"src/base_components/handoff_queue/handoff_queue.hpp": "451fac983f6fb8af9feadbdcaf9e93519bfbdb831b37ae0263181b82a9912747",
"src/base_components/handoff_queue/handoff_types.hpp": "a877583d4dffc236c5d45d97427faa36c83fd7b51d133042e9ba3690cb57cd5f",
"src/base_components/handoff_queue/lock_free_index_queue.hpp": "62b497f6f5d70553a6fdf2b7ea0c9ca645cb4e119c9407a7b1b30ea9e9ca338d",
"src/base_components/warm_pool/warm_pool.hpp": "cdc88f35642e4c81bfbb9072027fe56d1592180a070bef22afadd6954c0bd641",
"src/base_components/warm_pool/intrusive_stack.hpp": "912dae641f26b79fecb3f0926aac0e8255c0c67ff0addd4c56d73388faf98bea",
"src/base_components/warm_pool/depth_stats.hpp": "763d12709fdcf42d81789ca86ae5cdf8d16cae9ea804ffa6c13dd27a3af1aa02",
"src/base_components/warm_pool/intrusive_queue.hpp": "0b87a1615c000ea6aab805a6ec4443240adeb13d34f218b6d7ba0ecb6aea11ec",
"src/base_components/warm_pool/resource.hpp": "9adffca45f4e69a6056f83fda03ff0951ff32fd5816fdbf675be92ba309d82a9",
"src/read/layer2/to_read_block.hpp": "5afac965742b68f299a703b881f8c53dc2b14170ed2d0b81c01fd0ac2215d7d1",
"src/read/layer2/read_callbacks.hpp": "e90b6705ffdeaecab6f85d5452b5ab61a4799ceabd931def2d7fece221b64121",
"src/read/layer2/read_block_factory.hpp": "2c7f0a30323b032017ebc5e81bd8cc0efdd2ce3f6fc0e8c2d51174d0771521d2",
"src/read/layer2/read_block.hpp": "ba24129aa20c9d2643d9b4a8068287395bb51d870289115644d023a343b70402",
"src/read/read_layer1/read_service.hpp": "4bdfa159a804f4c7e77b1e375c9582e76f306c11758cbbd37248e9b5767c8736",
"src/read/read_layer1/read_worker.hpp": "4e8a9692b6cd854dec06de332599b4b23ac24651a642cf7b70452694b6fb9608",
"src/read/read_layer1/read_writer_data_callback.hpp": "537b0c93fcd1c4a3c4bb5e09170f7e0122705faa4652906f096e7bc4395310d3",
"src/read/read_layer1/types.hpp": "d9f3115daf84f53b9d530ce14d94ed949f51dd105dacce8ef098c3f08461a278",
"src/read/read_layer1/read_item.hpp": "f62cb6548bee70fd09b67d3a829ede5ce6b8bc178ad4d0c25149bfabae53ff0f",
"src/read/read_layer1/muti_writer/read_service.hpp": "92c9e9d45617c629565aa0933f1edabfe3112257cd501edf8df83321ed9127e7",
"src/read/read_layer1/muti_writer/read_worker.hpp": "d760a8db4dd3db051c363f4cfbff426ec97c40a031c31938de25e4c3c187ab3a",
"src/read/read_layer1/single_writer/read_service.hpp": "55a9fa356b339b9151d3ec5b0e8836c4d75bb6477f1b4e26aa19f4f759b5be85",
"src/read/read_layer1/single_writer/read_worker.hpp": "ebd883583ba6f0e8f92c13200b852023f497ab7e8cbb277539d07ab79545c198",
"src/utils/block_diagnostics.hpp": "d81e6b16dba8ac62c240c52ed3b25bf75e5d7edb6be8573be7ef3be7ba5b2589",
"src/utils/spsc_queue.hpp": "1cdea11ca6d9168e72aa964fb9f6d9f189d26c150e8ee9a4c2eb541cafe294c8",
"src/utils/plain_value.hpp": "fdfc7afe7072c7c452631da0f44dc22657fcc0cbde57a5a8c8f4ff43fb5058cd",
"src/utils/spsc_pointer_queue.hpp": "60eb5de77c466a4185e5ed584d993500ba593ee6adb3c7ff754b9e77e932b861",
"src/utils/auto_reset_event.cpp": "8d37d360311652a12e3dc5372f5bacc3a0763f27b06270b4a9dd32cc200b6f2d",
"src/utils/no_lock.hpp": "c2c5eff008255c2a39d86b95a7af7023252c31d4da23b948d78fb9f213350b35",
"src/utils/brqHelp.hpp": "f3b960d533e6bb6d82b79d0e2a90ed3843e1675cfd81a999cc3909ef3432ba94",
"src/utils/fast_time.cpp": "aeb65319574b99434dfa995324613486adfa7f173a518a58187e7b52e24dfe28",
"src/utils/auto_reset_event.hpp": "10ac49eca50d3850cae94420799fc0f6b342822e4e3fef46b1dd16d19b472979",
"src/utils/brqHelp.cpp": "041b72c92ac6606727da275dd4b123039e1a0e1d99be2674bafc8ff657cb2c9f",
"src/utils/fast_time.hpp": "bc75837066e7e11aed57a2365facad48d3c9dcecea76fe869b62e50711136f90",
"src/utils/spin_lock.hpp": "7a0574871f73a84b17dd47f15a2c0c1a447009913695d434d64fd0048d2985d4",
"src/utils/wait.hpp": "e855d6e0a86375332ba55b43e11a10257ab647a8f07971530a5aa5ed479074a1",
"src/data/spsc_basic_block.hpp": "4f2168a97b40357b23ba9cb1c16a50241e0ecfb0f82be2ccdabf3a428bd3012d",
"src/data/data_frame.hpp": "fecb242429f3044c14950ed0f12a22f35de74af73bdd4f839084ac3e5f3c5965",
"src/data/spsc_read_block.hpp": "c8def8e59324f5980d84e4aa072bc45cfa152b25ce733a4f30e08c5fe4985f65",
"src/data/spsc_write_block.hpp": "2e6139340c502a36f3ffe15ee59fc8bd1203a663d253e53cf96794440fed0e43",
"src/data/Untitled": "443d72e4d7be88cb9bcb6e7c3f95b466e89f58ad36dad14b52fbbcf44c3b69ed",
"src/data/data_batch.hpp": "8673ec49ed45ff511335cd0e853a72875d649b461376613ca5618ac355378bf9"
},
"arithmetic_correction_power": "Now drawing from 'AC Power'\n -InternalBattery-0 (id=6226019)\t100%; charged; 0:00 remaining present: true"
}业务基线(无队列) · 完整初始化参数
{
"business": {
"bytes": 98304,
"accesses": 8,
"entry_bytes": 64,
"warmup_steps": 20000,
"seed": 42
},
"scenarios": {
"paused": {
"gate": "hold first callback until round writer completes"
},
"slow": {
"callback_iterations": 16
},
"fast": {
"callback_iterations": 0
}
},
"queue": {
"transport": "two_buf_queue",
"mode": "throughput",
"payload_bytes": 32,
"messages": 10000000,
"warmup_messages": 0,
"callback_iterations": 0,
"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": 65536,
"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": 65536,
"output_frame_capacity": 4,
"output_pool_min": 4096,
"output_pool_max": 4096,
"output_queue_capacity": 4098,
"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": 214748364,
"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": 180,
"buffer_budget_bytes": 536870912
}
}TwoBufQueue · 完整初始化参数
{
"business": {
"bytes": 98304,
"accesses": 8,
"entry_bytes": 64,
"warmup_steps": 20000,
"seed": 42
},
"scenarios": {
"paused": {
"gate": "hold first callback until round writer completes"
},
"slow": {
"callback_iterations": 16
},
"fast": {
"callback_iterations": 0
}
},
"queue": {
"transport": "two_buf_queue",
"mode": "throughput",
"payload_bytes": 32,
"messages": 10000000,
"warmup_messages": 0,
"callback_iterations": 0,
"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": 131072,
"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": 131072,
"output_frame_capacity": 4,
"output_pool_min": 2048,
"output_pool_max": 2048,
"output_queue_capacity": 2050,
"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": 214748364,
"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": 180,
"buffer_budget_bytes": 536870912
}
}ReaderWriterQueue · 完整初始化参数
{
"business": {
"bytes": 98304,
"accesses": 8,
"entry_bytes": 64,
"warmup_steps": 20000,
"seed": 42
},
"scenarios": {
"paused": {
"gate": "hold first callback until round writer completes"
},
"slow": {
"callback_iterations": 16
},
"fast": {
"callback_iterations": 0
}
},
"queue": {
"transport": "readerwriterqueue",
"mode": "throughput",
"payload_bytes": 32,
"messages": 10000000,
"warmup_messages": 0,
"callback_iterations": 0,
"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": 65536,
"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": 65536,
"output_frame_capacity": 4,
"output_pool_min": 4096,
"output_pool_max": 4096,
"output_queue_capacity": 4098,
"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": 214748364,
"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": 180,
"buffer_budget_bytes": 536870912
}
}rigtorp::SPSCQueue · 完整初始化参数
{
"business": {
"bytes": 98304,
"accesses": 8,
"entry_bytes": 64,
"warmup_steps": 20000,
"seed": 42
},
"scenarios": {
"paused": {
"gate": "hold first callback until round writer completes"
},
"slow": {
"callback_iterations": 16
},
"fast": {
"callback_iterations": 0
}
},
"queue": {
"transport": "rigtorp",
"mode": "throughput",
"payload_bytes": 32,
"messages": 10000000,
"warmup_messages": 0,
"callback_iterations": 0,
"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": 65536,
"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": 65536,
"output_frame_capacity": 4,
"output_pool_min": 4096,
"output_pool_max": 4096,
"output_queue_capacity": 4098,
"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": 214748364,
"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": 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": 180,
"buffer_budget_bytes": 536870912
}
}atomic_queue · 完整初始化参数
{
"business": {
"bytes": 98304,
"accesses": 8,
"entry_bytes": 64,
"warmup_steps": 20000,
"seed": 42
},
"scenarios": {
"paused": {
"gate": "hold first callback until round writer completes"
},
"slow": {
"callback_iterations": 16
},
"fast": {
"callback_iterations": 0
}
},
"queue": {
"transport": "atomic_queue",
"mode": "throughput",
"payload_bytes": 32,
"messages": 10000000,
"warmup_messages": 0,
"callback_iterations": 0,
"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": 65536,
"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": 65536,
"output_frame_capacity": 4,
"output_pool_min": 4096,
"output_pool_max": 4096,
"output_queue_capacity": 4098,
"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": 214748364,
"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": 180,
"buffer_budget_bytes": 536870912
}
}开源复制选项对照(全部保留)