Investigation of the Phase 21 baseline finding that executemany(N) cost scaled linearly per-row (1.74 ms x N) regardless of batch size. Root cause: every autocommit=True INSERT forces a server-side transaction-log flush. Not a wire-protocol bug. Numbers: * executemany(1000) autocommit=True: 1.72 s (1.72 ms/row) * executemany(1000) in single txn: 32 ms (32 us/row) 53x speedup from changing the transaction boundary, not the driver. Pure protocol overhead is ~32 us/row -> ~31K rows/sec sustained throughput on a single connection. Comparable to pg8000. Added test_executemany_1000_rows_in_txn benchmark to make this visible. Updated README headline numbers and added a "Performance gotchas" section explaining when autocommit=False matters. Decision: don't pipeline. The remaining 32 us is already excellent; the autocommit gotcha is the real user-facing footgun. Docs > code. If someone reports needing >31K rows/sec single-connection, that becomes Phase 22.
1256 lines
43 KiB
JSON
1256 lines
43 KiB
JSON
{
|
|
"machine_info": {
|
|
"node": "rpm-bullet",
|
|
"processor": "",
|
|
"machine": "x86_64",
|
|
"python_compiler": "Clang 22.1.1 ",
|
|
"python_implementation": "CPython",
|
|
"python_implementation_version": "3.13.12",
|
|
"python_version": "3.13.12",
|
|
"python_build": [
|
|
"main",
|
|
"Mar 24 2026 22:49:35"
|
|
],
|
|
"release": "6.19.11-arch1-1",
|
|
"system": "Linux",
|
|
"cpu": {
|
|
"python_version": "3.13.12.final.0 (64 bit)",
|
|
"cpuinfo_version": [
|
|
9,
|
|
0,
|
|
0
|
|
],
|
|
"cpuinfo_version_string": "9.0.0",
|
|
"arch": "X86_64",
|
|
"bits": 64,
|
|
"count": 32,
|
|
"arch_string_raw": "x86_64",
|
|
"vendor_id_raw": "AuthenticAMD",
|
|
"brand_raw": "AMD Ryzen 9 9950X 16-Core Processor",
|
|
"hz_advertised_friendly": "5.4323 GHz",
|
|
"hz_actual_friendly": "5.4323 GHz",
|
|
"hz_advertised": [
|
|
5432299000,
|
|
0
|
|
],
|
|
"hz_actual": [
|
|
5432299000,
|
|
0
|
|
],
|
|
"model": 68,
|
|
"family": 26,
|
|
"flags": [
|
|
"3dnowprefetch",
|
|
"abm",
|
|
"adx",
|
|
"aes",
|
|
"amd_lbr_pmc_freeze",
|
|
"amd_lbr_v2",
|
|
"aperfmperf",
|
|
"apic",
|
|
"arat",
|
|
"avic",
|
|
"avx",
|
|
"avx2",
|
|
"avx512_bf16",
|
|
"avx512_bitalg",
|
|
"avx512_vbmi2",
|
|
"avx512_vnni",
|
|
"avx512_vp2intersect",
|
|
"avx512_vpopcntdq",
|
|
"avx512bitalg",
|
|
"avx512bw",
|
|
"avx512cd",
|
|
"avx512dq",
|
|
"avx512f",
|
|
"avx512ifma",
|
|
"avx512vbmi",
|
|
"avx512vbmi2",
|
|
"avx512vl",
|
|
"avx512vnni",
|
|
"avx512vpopcntdq",
|
|
"avx_vnni",
|
|
"bmi1",
|
|
"bmi2",
|
|
"bpext",
|
|
"bus_lock_detect",
|
|
"cat_l3",
|
|
"cdp_l3",
|
|
"clflush",
|
|
"clflushopt",
|
|
"clwb",
|
|
"clzero",
|
|
"cmov",
|
|
"cmp_legacy",
|
|
"constant_tsc",
|
|
"cpb",
|
|
"cppc",
|
|
"cpuid",
|
|
"cpuid_fault",
|
|
"cqm",
|
|
"cqm_llc",
|
|
"cqm_mbm_local",
|
|
"cqm_mbm_total",
|
|
"cqm_occup_llc",
|
|
"cr8_legacy",
|
|
"cx16",
|
|
"cx8",
|
|
"dbx",
|
|
"de",
|
|
"decodeassists",
|
|
"erms",
|
|
"extapic",
|
|
"extd_apicid",
|
|
"f16c",
|
|
"flush_l1d",
|
|
"flushbyasid",
|
|
"fma",
|
|
"fpu",
|
|
"fsgsbase",
|
|
"fsrm",
|
|
"fxsr",
|
|
"fxsr_opt",
|
|
"gfni",
|
|
"ht",
|
|
"hw_pstate",
|
|
"ibpb",
|
|
"ibrs",
|
|
"ibrs_enhanced",
|
|
"ibs",
|
|
"invpcid",
|
|
"irperf",
|
|
"lahf_lm",
|
|
"lbrv",
|
|
"lm",
|
|
"mba",
|
|
"mca",
|
|
"mce",
|
|
"misalignsse",
|
|
"mmx",
|
|
"mmxext",
|
|
"monitor",
|
|
"movbe",
|
|
"movdir64b",
|
|
"movdiri",
|
|
"msr",
|
|
"mtrr",
|
|
"mwaitx",
|
|
"nonstop_tsc",
|
|
"nopl",
|
|
"npt",
|
|
"nrip_save",
|
|
"nx",
|
|
"ospke",
|
|
"osvw",
|
|
"osxsave",
|
|
"overflow_recov",
|
|
"pae",
|
|
"pat",
|
|
"pausefilter",
|
|
"pci_l2i",
|
|
"pclmulqdq",
|
|
"pdpe1gb",
|
|
"perfctr_core",
|
|
"perfctr_llc",
|
|
"perfctr_nb",
|
|
"perfmon_v2",
|
|
"pfthreshold",
|
|
"pge",
|
|
"pku",
|
|
"pni",
|
|
"popcnt",
|
|
"pqe",
|
|
"pqm",
|
|
"pse",
|
|
"pse36",
|
|
"rapl",
|
|
"rdpid",
|
|
"rdpru",
|
|
"rdrand",
|
|
"rdrnd",
|
|
"rdseed",
|
|
"rdt_a",
|
|
"rdtscp",
|
|
"rep_good",
|
|
"sep",
|
|
"sha",
|
|
"sha_ni",
|
|
"skinit",
|
|
"smap",
|
|
"smca",
|
|
"smep",
|
|
"ssbd",
|
|
"sse",
|
|
"sse2",
|
|
"sse4_1",
|
|
"sse4_2",
|
|
"sse4a",
|
|
"ssse3",
|
|
"stibp",
|
|
"succor",
|
|
"svm",
|
|
"svm_lock",
|
|
"syscall",
|
|
"tce",
|
|
"topoext",
|
|
"tsc",
|
|
"tsc_adjust",
|
|
"tsc_scale",
|
|
"umip",
|
|
"user_shstk",
|
|
"v_spec_ctrl",
|
|
"v_vmsave_vmload",
|
|
"vaes",
|
|
"vgif",
|
|
"vmcb_clean",
|
|
"vme",
|
|
"vmmcall",
|
|
"vnmi",
|
|
"vpclmulqdq",
|
|
"wbnoinvd",
|
|
"wdt",
|
|
"x2avic",
|
|
"xgetbv1",
|
|
"xsave",
|
|
"xsavec",
|
|
"xsaveerptr",
|
|
"xsaveopt",
|
|
"xsaves",
|
|
"xtopology"
|
|
],
|
|
"l3_cache_size": 1048576,
|
|
"l2_cache_size": 16777216,
|
|
"l1_data_cache_size": 786432,
|
|
"l1_instruction_cache_size": 524288,
|
|
"l2_cache_line_size": 1024,
|
|
"l2_cache_associativity": 8
|
|
}
|
|
},
|
|
"commit_info": {
|
|
"id": "90ce035a00ab2776cbccad314af68d245f1e913b",
|
|
"time": "2026-05-04T17:21:12-06:00",
|
|
"author_time": "2026-05-04T17:21:12-06:00",
|
|
"dirty": true,
|
|
"project": "python-library",
|
|
"branch": "main"
|
|
},
|
|
"benchmarks": [
|
|
{
|
|
"group": null,
|
|
"name": "test_async_select_one_row",
|
|
"fullname": "tests/benchmarks/test_async_perf.py::test_async_select_one_row",
|
|
"params": null,
|
|
"param": null,
|
|
"extra_info": {},
|
|
"options": {
|
|
"disable_gc": false,
|
|
"timer": "perf_counter",
|
|
"min_rounds": 5,
|
|
"max_time": 1.0,
|
|
"min_time": 5e-06,
|
|
"warmup": false
|
|
},
|
|
"stats": {
|
|
"min": 0.0001783499028533697,
|
|
"max": 0.0037694860948249698,
|
|
"mean": 0.0002708047498068165,
|
|
"stddev": 0.0001398595253029065,
|
|
"rounds": 920,
|
|
"median": 0.00024159951135516167,
|
|
"iqr": 0.00010358949657529593,
|
|
"q1": 0.00020531500922515988,
|
|
"q3": 0.0003089045058004558,
|
|
"iqr_outliers": 24,
|
|
"stddev_outliers": 53,
|
|
"outliers": "53;24",
|
|
"ld15iqr": 0.0001783499028533697,
|
|
"hd15iqr": 0.000472119078040123,
|
|
"ops": 3692.697416545937,
|
|
"total": 0.24914036982227117,
|
|
"iterations": 1
|
|
}
|
|
},
|
|
{
|
|
"group": null,
|
|
"name": "test_async_concurrent_10_selects",
|
|
"fullname": "tests/benchmarks/test_async_perf.py::test_async_concurrent_10_selects",
|
|
"params": null,
|
|
"param": null,
|
|
"extra_info": {},
|
|
"options": {
|
|
"disable_gc": false,
|
|
"timer": "perf_counter",
|
|
"min_rounds": 5,
|
|
"max_time": 1.0,
|
|
"min_time": 5e-06,
|
|
"warmup": false
|
|
},
|
|
"stats": {
|
|
"min": 0.0033279670169577003,
|
|
"max": 0.009101188974454999,
|
|
"mean": 0.004628980516309978,
|
|
"stddev": 0.001321010090952204,
|
|
"rounds": 51,
|
|
"median": 0.004433745052665472,
|
|
"iqr": 0.0012122082989662886,
|
|
"q1": 0.0037467457295861095,
|
|
"q3": 0.004958954028552398,
|
|
"iqr_outliers": 4,
|
|
"stddev_outliers": 5,
|
|
"outliers": "5;4",
|
|
"ld15iqr": 0.0033279670169577003,
|
|
"hd15iqr": 0.00792649108916521,
|
|
"ops": 216.0302892778552,
|
|
"total": 0.23607800633180887,
|
|
"iterations": 1
|
|
}
|
|
},
|
|
{
|
|
"group": null,
|
|
"name": "test_decode_int",
|
|
"fullname": "tests/benchmarks/test_codec_perf.py::test_decode_int",
|
|
"params": null,
|
|
"param": null,
|
|
"extra_info": {},
|
|
"options": {
|
|
"disable_gc": false,
|
|
"timer": "perf_counter",
|
|
"min_rounds": 5,
|
|
"max_time": 1.0,
|
|
"min_time": 5e-06,
|
|
"warmup": false
|
|
},
|
|
"stats": {
|
|
"min": 1.552992034703493e-07,
|
|
"max": 9.124004282057285e-07,
|
|
"mean": 1.697415664394928e-07,
|
|
"stddev": 2.1092413887246777e-08,
|
|
"rounds": 46105,
|
|
"median": 1.655996311455965e-07,
|
|
"iqr": 6.3003972172736995e-09,
|
|
"q1": 1.6330042853951454e-07,
|
|
"q3": 1.6960082575678824e-07,
|
|
"iqr_outliers": 2795,
|
|
"stddev_outliers": 1970,
|
|
"outliers": "1970;2795",
|
|
"ld15iqr": 1.552992034703493e-07,
|
|
"hd15iqr": 1.790898386389017e-07,
|
|
"ops": 5891308.893726195,
|
|
"total": 0.007825934920692817,
|
|
"iterations": 100
|
|
}
|
|
},
|
|
{
|
|
"group": null,
|
|
"name": "test_decode_smallint",
|
|
"fullname": "tests/benchmarks/test_codec_perf.py::test_decode_smallint",
|
|
"params": null,
|
|
"param": null,
|
|
"extra_info": {},
|
|
"options": {
|
|
"disable_gc": false,
|
|
"timer": "perf_counter",
|
|
"min_rounds": 5,
|
|
"max_time": 1.0,
|
|
"min_time": 5e-06,
|
|
"warmup": false
|
|
},
|
|
"stats": {
|
|
"min": 1.536643443008264e-07,
|
|
"max": 2.973666414618492e-06,
|
|
"mean": 1.66776047066651e-07,
|
|
"stddev": 3.477156332297996e-08,
|
|
"rounds": 195311,
|
|
"median": 1.6200356185436248e-07,
|
|
"iqr": 4.334530482689541e-09,
|
|
"q1": 1.6033494224150975e-07,
|
|
"q3": 1.646694727241993e-07,
|
|
"iqr_outliers": 11999,
|
|
"stddev_outliers": 7420,
|
|
"outliers": "7420;11999",
|
|
"ld15iqr": 1.5399806822339693e-07,
|
|
"hd15iqr": 1.7133230964342753e-07,
|
|
"ops": 5996064.888145216,
|
|
"total": 0.032573196528634676,
|
|
"iterations": 30
|
|
}
|
|
},
|
|
{
|
|
"group": null,
|
|
"name": "test_decode_bigint",
|
|
"fullname": "tests/benchmarks/test_codec_perf.py::test_decode_bigint",
|
|
"params": null,
|
|
"param": null,
|
|
"extra_info": {},
|
|
"options": {
|
|
"disable_gc": false,
|
|
"timer": "perf_counter",
|
|
"min_rounds": 5,
|
|
"max_time": 1.0,
|
|
"min_time": 5e-06,
|
|
"warmup": false
|
|
},
|
|
"stats": {
|
|
"min": 1.6692166145031268e-07,
|
|
"max": 3.5261529354521863e-06,
|
|
"mean": 1.8541564986363696e-07,
|
|
"stddev": 4.0746058984269045e-08,
|
|
"rounds": 199206,
|
|
"median": 1.7923034297732207e-07,
|
|
"iqr": 3.846183132666796e-09,
|
|
"q1": 1.7730949016717764e-07,
|
|
"q3": 1.8115567329984444e-07,
|
|
"iqr_outliers": 14741,
|
|
"stddev_outliers": 8889,
|
|
"outliers": "8889;14741",
|
|
"ld15iqr": 1.715424542243664e-07,
|
|
"hd15iqr": 1.8692718675503363e-07,
|
|
"ops": 5393288.003118643,
|
|
"total": 0.036935909946735665,
|
|
"iterations": 26
|
|
}
|
|
},
|
|
{
|
|
"group": null,
|
|
"name": "test_decode_float",
|
|
"fullname": "tests/benchmarks/test_codec_perf.py::test_decode_float",
|
|
"params": null,
|
|
"param": null,
|
|
"extra_info": {},
|
|
"options": {
|
|
"disable_gc": false,
|
|
"timer": "perf_counter",
|
|
"min_rounds": 5,
|
|
"max_time": 1.0,
|
|
"min_time": 5e-06,
|
|
"warmup": false
|
|
},
|
|
"stats": {
|
|
"min": 1.5533296391367912e-07,
|
|
"max": 5.582331990202268e-06,
|
|
"mean": 1.7290553887433694e-07,
|
|
"stddev": 4.3992245312702247e-08,
|
|
"rounds": 196077,
|
|
"median": 1.6533304005861283e-07,
|
|
"iqr": 4.6643738945325145e-09,
|
|
"q1": 1.6366830095648767e-07,
|
|
"q3": 1.6833267485102018e-07,
|
|
"iqr_outliers": 14681,
|
|
"stddev_outliers": 10089,
|
|
"outliers": "10089;14681",
|
|
"ld15iqr": 1.5699770301580428e-07,
|
|
"hd15iqr": 1.7533311620354651e-07,
|
|
"ops": 5783504.718878745,
|
|
"total": 0.03390279934586336,
|
|
"iterations": 30
|
|
}
|
|
},
|
|
{
|
|
"group": null,
|
|
"name": "test_decode_date",
|
|
"fullname": "tests/benchmarks/test_codec_perf.py::test_decode_date",
|
|
"params": null,
|
|
"param": null,
|
|
"extra_info": {},
|
|
"options": {
|
|
"disable_gc": false,
|
|
"timer": "perf_counter",
|
|
"min_rounds": 5,
|
|
"max_time": 1.0,
|
|
"min_time": 5e-06,
|
|
"warmup": false
|
|
},
|
|
"stats": {
|
|
"min": 4.4994521886110306e-07,
|
|
"max": 5.99490012973547e-05,
|
|
"mean": 4.997973695114113e-07,
|
|
"stddev": 1.9661595195578896e-07,
|
|
"rounds": 149925,
|
|
"median": 4.899920895695686e-07,
|
|
"iqr": 3.9814040064811707e-08,
|
|
"q1": 4.700850695371628e-07,
|
|
"q3": 5.098991096019745e-07,
|
|
"iqr_outliers": 4099,
|
|
"stddev_outliers": 1535,
|
|
"outliers": "1535;4099",
|
|
"ld15iqr": 4.4994521886110306e-07,
|
|
"hd15iqr": 5.699694156646729e-07,
|
|
"ops": 2000810.850560445,
|
|
"total": 0.07493212062399834,
|
|
"iterations": 1
|
|
}
|
|
},
|
|
{
|
|
"group": null,
|
|
"name": "test_decode_varchar_short",
|
|
"fullname": "tests/benchmarks/test_codec_perf.py::test_decode_varchar_short",
|
|
"params": null,
|
|
"param": null,
|
|
"extra_info": {},
|
|
"options": {
|
|
"disable_gc": false,
|
|
"timer": "perf_counter",
|
|
"min_rounds": 5,
|
|
"max_time": 1.0,
|
|
"min_time": 5e-06,
|
|
"warmup": false
|
|
},
|
|
"stats": {
|
|
"min": 1.567738851712596e-07,
|
|
"max": 1.403064497055546e-05,
|
|
"mean": 1.6506310570564836e-07,
|
|
"stddev": 3.4999582115629985e-08,
|
|
"rounds": 196082,
|
|
"median": 1.6322554720024908e-07,
|
|
"iqr": 1.937751808474152e-09,
|
|
"q1": 1.6225667129601201e-07,
|
|
"q3": 1.6419442310448617e-07,
|
|
"iqr_outliers": 11504,
|
|
"stddev_outliers": 3249,
|
|
"outliers": "3249;11504",
|
|
"ld15iqr": 1.5935379891626296e-07,
|
|
"hd15iqr": 1.6738645612232146e-07,
|
|
"ops": 6058289.014525556,
|
|
"total": 0.03236590389297494,
|
|
"iterations": 31
|
|
}
|
|
},
|
|
{
|
|
"group": null,
|
|
"name": "test_decode_varchar_long",
|
|
"fullname": "tests/benchmarks/test_codec_perf.py::test_decode_varchar_long",
|
|
"params": null,
|
|
"param": null,
|
|
"extra_info": {},
|
|
"options": {
|
|
"disable_gc": false,
|
|
"timer": "perf_counter",
|
|
"min_rounds": 5,
|
|
"max_time": 1.0,
|
|
"min_time": 5e-06,
|
|
"warmup": false
|
|
},
|
|
"stats": {
|
|
"min": 1.7300015315413474e-07,
|
|
"max": 5.746900569647551e-07,
|
|
"mean": 1.8009804110252565e-07,
|
|
"stddev": 6.7639479585228705e-09,
|
|
"rounds": 55618,
|
|
"median": 1.792993862181902e-07,
|
|
"iqr": 2.0000152289867475e-09,
|
|
"q1": 1.7829937860369681e-07,
|
|
"q3": 1.8029939383268356e-07,
|
|
"iqr_outliers": 2142,
|
|
"stddev_outliers": 1315,
|
|
"outliers": "1315;2142",
|
|
"ld15iqr": 1.752993557602167e-07,
|
|
"hd15iqr": 1.8330058082938194e-07,
|
|
"ops": 5552531.242861899,
|
|
"total": 0.010016692850040271,
|
|
"iterations": 100
|
|
}
|
|
},
|
|
{
|
|
"group": null,
|
|
"name": "test_decode_varchar_utf8",
|
|
"fullname": "tests/benchmarks/test_codec_perf.py::test_decode_varchar_utf8",
|
|
"params": null,
|
|
"param": null,
|
|
"extra_info": {},
|
|
"options": {
|
|
"disable_gc": false,
|
|
"timer": "perf_counter",
|
|
"min_rounds": 5,
|
|
"max_time": 1.0,
|
|
"min_time": 5e-06,
|
|
"warmup": false
|
|
},
|
|
"stats": {
|
|
"min": 1.974985934793949e-07,
|
|
"max": 1.2000833521597087e-05,
|
|
"mean": 2.105730723877986e-07,
|
|
"stddev": 3.294005306439554e-08,
|
|
"rounds": 193799,
|
|
"median": 2.075006098796924e-07,
|
|
"iqr": 4.588703935345023e-09,
|
|
"q1": 2.0583199026683965e-07,
|
|
"q3": 2.1042069420218468e-07,
|
|
"iqr_outliers": 11045,
|
|
"stddev_outliers": 3374,
|
|
"outliers": "3374;11045",
|
|
"ld15iqr": 1.991623624538382e-07,
|
|
"hd15iqr": 2.1745897053430477e-07,
|
|
"ops": 4748945.288495225,
|
|
"total": 0.04080885085568298,
|
|
"iterations": 24
|
|
}
|
|
},
|
|
{
|
|
"group": null,
|
|
"name": "test_encode_int",
|
|
"fullname": "tests/benchmarks/test_codec_perf.py::test_encode_int",
|
|
"params": null,
|
|
"param": null,
|
|
"extra_info": {},
|
|
"options": {
|
|
"disable_gc": false,
|
|
"timer": "perf_counter",
|
|
"min_rounds": 5,
|
|
"max_time": 1.0,
|
|
"min_time": 5e-06,
|
|
"warmup": false
|
|
},
|
|
"stats": {
|
|
"min": 9.495008271187544e-08,
|
|
"max": 8.562498260289431e-07,
|
|
"mean": 9.819238487790007e-08,
|
|
"stddev": 8.207935436892014e-09,
|
|
"rounds": 51335,
|
|
"median": 9.700015652924776e-08,
|
|
"iqr": 8.993083611130741e-10,
|
|
"q1": 9.660026989877224e-08,
|
|
"q3": 9.749957825988531e-08,
|
|
"iqr_outliers": 2476,
|
|
"stddev_outliers": 1709,
|
|
"outliers": "1709;2476",
|
|
"ld15iqr": 9.529991075396538e-08,
|
|
"hd15iqr": 9.884999599307776e-08,
|
|
"ops": 10184089.135257041,
|
|
"total": 0.005040706077707,
|
|
"iterations": 200
|
|
}
|
|
},
|
|
{
|
|
"group": null,
|
|
"name": "test_encode_str_ascii",
|
|
"fullname": "tests/benchmarks/test_codec_perf.py::test_encode_str_ascii",
|
|
"params": null,
|
|
"param": null,
|
|
"extra_info": {},
|
|
"options": {
|
|
"disable_gc": false,
|
|
"timer": "perf_counter",
|
|
"min_rounds": 5,
|
|
"max_time": 1.0,
|
|
"min_time": 5e-06,
|
|
"warmup": false
|
|
},
|
|
"stats": {
|
|
"min": 4.200264811515808e-07,
|
|
"max": 6.139976903796196e-06,
|
|
"mean": 4.615799622473153e-07,
|
|
"stddev": 8.453654720518955e-08,
|
|
"rounds": 126742,
|
|
"median": 4.5995693653821945e-07,
|
|
"iqr": 1.0128132998943329e-08,
|
|
"q1": 4.4994521886110306e-07,
|
|
"q3": 4.600733518600464e-07,
|
|
"iqr_outliers": 8787,
|
|
"stddev_outliers": 2251,
|
|
"outliers": "2251;8787",
|
|
"ld15iqr": 4.390021786093712e-07,
|
|
"hd15iqr": 4.789326339960098e-07,
|
|
"ops": 2166471.861411086,
|
|
"total": 0.05850156757514924,
|
|
"iterations": 1
|
|
}
|
|
},
|
|
{
|
|
"group": null,
|
|
"name": "test_encode_str_utf8",
|
|
"fullname": "tests/benchmarks/test_codec_perf.py::test_encode_str_utf8",
|
|
"params": null,
|
|
"param": null,
|
|
"extra_info": {},
|
|
"options": {
|
|
"disable_gc": false,
|
|
"timer": "perf_counter",
|
|
"min_rounds": 5,
|
|
"max_time": 1.0,
|
|
"min_time": 5e-06,
|
|
"warmup": false
|
|
},
|
|
"stats": {
|
|
"min": 3.7949648685753344e-07,
|
|
"max": 4.142004763707519e-06,
|
|
"mean": 4.0244505908328793e-07,
|
|
"stddev": 3.517347358384737e-08,
|
|
"rounds": 119047,
|
|
"median": 3.964989446103573e-07,
|
|
"iqr": 8.99890437722203e-09,
|
|
"q1": 3.925000783056021e-07,
|
|
"q3": 4.014989826828241e-07,
|
|
"iqr_outliers": 4942,
|
|
"stddev_outliers": 3931,
|
|
"outliers": "3931;4942",
|
|
"ld15iqr": 3.7949648685753344e-07,
|
|
"hd15iqr": 4.1499733924865725e-07,
|
|
"ops": 2484811.224364032,
|
|
"total": 0.04790987694868818,
|
|
"iterations": 20
|
|
}
|
|
},
|
|
{
|
|
"group": null,
|
|
"name": "test_encode_float",
|
|
"fullname": "tests/benchmarks/test_codec_perf.py::test_encode_float",
|
|
"params": null,
|
|
"param": null,
|
|
"extra_info": {},
|
|
"options": {
|
|
"disable_gc": false,
|
|
"timer": "perf_counter",
|
|
"min_rounds": 5,
|
|
"max_time": 1.0,
|
|
"min_time": 5e-06,
|
|
"warmup": false
|
|
},
|
|
"stats": {
|
|
"min": 1.2991949915885925e-07,
|
|
"max": 4.639965482056141e-06,
|
|
"mean": 1.5344735326122993e-07,
|
|
"stddev": 3.9628501777315876e-08,
|
|
"rounds": 199206,
|
|
"median": 1.5005934983491898e-07,
|
|
"iqr": 1.1641532182693481e-10,
|
|
"q1": 1.4994293451309204e-07,
|
|
"q3": 1.5005934983491898e-07,
|
|
"iqr_outliers": 78209,
|
|
"stddev_outliers": 3670,
|
|
"outliers": "3670;78209",
|
|
"ld15iqr": 1.4994293451309204e-07,
|
|
"hd15iqr": 1.5890691429376602e-07,
|
|
"ops": 6516893.115110252,
|
|
"total": 0.03056763345375657,
|
|
"iterations": 1
|
|
}
|
|
},
|
|
{
|
|
"group": null,
|
|
"name": "test_encode_date",
|
|
"fullname": "tests/benchmarks/test_codec_perf.py::test_encode_date",
|
|
"params": null,
|
|
"param": null,
|
|
"extra_info": {},
|
|
"options": {
|
|
"disable_gc": false,
|
|
"timer": "perf_counter",
|
|
"min_rounds": 5,
|
|
"max_time": 1.0,
|
|
"min_time": 5e-06,
|
|
"warmup": false
|
|
},
|
|
"stats": {
|
|
"min": 2.200249582529068e-07,
|
|
"max": 1.8549966625869274e-05,
|
|
"mean": 2.495290070327044e-07,
|
|
"stddev": 6.700914428761149e-08,
|
|
"rounds": 175750,
|
|
"median": 2.4994369596242905e-07,
|
|
"iqr": 1.0011717677116394e-08,
|
|
"q1": 2.400483936071396e-07,
|
|
"q3": 2.50060111284256e-07,
|
|
"iqr_outliers": 10436,
|
|
"stddev_outliers": 1755,
|
|
"outliers": "1755;10436",
|
|
"ld15iqr": 2.2992026060819626e-07,
|
|
"hd15iqr": 2.689193934202194e-07,
|
|
"ops": 4007550.1116747344,
|
|
"total": 0.043854722985997796,
|
|
"iterations": 1
|
|
}
|
|
},
|
|
{
|
|
"group": null,
|
|
"name": "test_encode_datetime",
|
|
"fullname": "tests/benchmarks/test_codec_perf.py::test_encode_datetime",
|
|
"params": null,
|
|
"param": null,
|
|
"extra_info": {},
|
|
"options": {
|
|
"disable_gc": false,
|
|
"timer": "perf_counter",
|
|
"min_rounds": 5,
|
|
"max_time": 1.0,
|
|
"min_time": 5e-06,
|
|
"warmup": false
|
|
},
|
|
"stats": {
|
|
"min": 1.8599675968289375e-06,
|
|
"max": 1.343991607427597e-05,
|
|
"mean": 1.9514378415340784e-06,
|
|
"stddev": 2.2459184590519486e-07,
|
|
"rounds": 61501,
|
|
"median": 1.920037902891636e-06,
|
|
"iqr": 2.991873770952225e-08,
|
|
"q1": 1.9100261852145195e-06,
|
|
"q3": 1.9399449229240417e-06,
|
|
"iqr_outliers": 2196,
|
|
"stddev_outliers": 1641,
|
|
"outliers": "1641;2196",
|
|
"ld15iqr": 1.8689315766096115e-06,
|
|
"hd15iqr": 1.9889557734131813e-06,
|
|
"ops": 512442.6608504592,
|
|
"total": 0.12001537869218737,
|
|
"iterations": 1
|
|
}
|
|
},
|
|
{
|
|
"group": null,
|
|
"name": "test_parse_tuple_5cols_iso8859",
|
|
"fullname": "tests/benchmarks/test_codec_perf.py::test_parse_tuple_5cols_iso8859",
|
|
"params": null,
|
|
"param": null,
|
|
"extra_info": {},
|
|
"options": {
|
|
"disable_gc": false,
|
|
"timer": "perf_counter",
|
|
"min_rounds": 5,
|
|
"max_time": 1.0,
|
|
"min_time": 5e-06,
|
|
"warmup": false
|
|
},
|
|
"stats": {
|
|
"min": 2.620043233036995e-06,
|
|
"max": 1.5789992175996304e-05,
|
|
"mean": 2.7960869296309257e-06,
|
|
"stddev": 2.9548134292988817e-07,
|
|
"rounds": 39124,
|
|
"median": 2.7599744498729706e-06,
|
|
"iqr": 5.995389074087143e-08,
|
|
"q1": 2.7300557121634483e-06,
|
|
"q3": 2.7900096029043198e-06,
|
|
"iqr_outliers": 1293,
|
|
"stddev_outliers": 1018,
|
|
"outliers": "1018;1293",
|
|
"ld15iqr": 2.649961970746517e-06,
|
|
"hd15iqr": 2.8799986466765404e-06,
|
|
"ops": 357642.671764857,
|
|
"total": 0.10939410503488034,
|
|
"iterations": 1
|
|
}
|
|
},
|
|
{
|
|
"group": null,
|
|
"name": "test_parse_tuple_5cols_utf8",
|
|
"fullname": "tests/benchmarks/test_codec_perf.py::test_parse_tuple_5cols_utf8",
|
|
"params": null,
|
|
"param": null,
|
|
"extra_info": {},
|
|
"options": {
|
|
"disable_gc": false,
|
|
"timer": "perf_counter",
|
|
"min_rounds": 5,
|
|
"max_time": 1.0,
|
|
"min_time": 5e-06,
|
|
"warmup": false
|
|
},
|
|
"stats": {
|
|
"min": 2.620043233036995e-06,
|
|
"max": 2.8469949029386044e-05,
|
|
"mean": 2.7905499414258814e-06,
|
|
"stddev": 3.3678126483548525e-07,
|
|
"rounds": 62422,
|
|
"median": 2.749962732195854e-06,
|
|
"iqr": 5.902256816625595e-08,
|
|
"q1": 2.720043994486332e-06,
|
|
"q3": 2.779066562652588e-06,
|
|
"iqr_outliers": 2264,
|
|
"stddev_outliers": 1699,
|
|
"outliers": "1699;2264",
|
|
"ld15iqr": 2.6399502530694008e-06,
|
|
"hd15iqr": 2.869986928999424e-06,
|
|
"ops": 358352.3036642133,
|
|
"total": 0.17419170844368637,
|
|
"iterations": 1
|
|
}
|
|
},
|
|
{
|
|
"group": null,
|
|
"name": "test_insert_single_row",
|
|
"fullname": "tests/benchmarks/test_insert_perf.py::test_insert_single_row",
|
|
"params": null,
|
|
"param": null,
|
|
"extra_info": {},
|
|
"options": {
|
|
"disable_gc": false,
|
|
"timer": "perf_counter",
|
|
"min_rounds": 5,
|
|
"max_time": 1.0,
|
|
"min_time": 5e-06,
|
|
"warmup": false
|
|
},
|
|
"stats": {
|
|
"min": 0.001582358032464981,
|
|
"max": 0.0023439470678567886,
|
|
"mean": 0.0017878168699458057,
|
|
"stddev": 9.797651240016688e-05,
|
|
"rounds": 243,
|
|
"median": 0.0017855080077424645,
|
|
"iqr": 0.00012171000707894564,
|
|
"q1": 0.0017153230146504939,
|
|
"q3": 0.0018370330217294395,
|
|
"iqr_outliers": 4,
|
|
"stddev_outliers": 70,
|
|
"outliers": "70;4",
|
|
"ld15iqr": 0.001582358032464981,
|
|
"hd15iqr": 0.0020228370558470488,
|
|
"ops": 559.3414050457601,
|
|
"total": 0.4344394993968308,
|
|
"iterations": 1
|
|
}
|
|
},
|
|
{
|
|
"group": null,
|
|
"name": "test_executemany_100_rows",
|
|
"fullname": "tests/benchmarks/test_insert_perf.py::test_executemany_100_rows",
|
|
"params": null,
|
|
"param": null,
|
|
"extra_info": {},
|
|
"options": {
|
|
"disable_gc": false,
|
|
"timer": "perf_counter",
|
|
"min_rounds": 5,
|
|
"max_time": 1.0,
|
|
"min_time": 5e-06,
|
|
"warmup": false
|
|
},
|
|
"stats": {
|
|
"min": 0.16832035908009857,
|
|
"max": 0.1755698589840904,
|
|
"mean": 0.17103146946257247,
|
|
"stddev": 0.0026583298272997696,
|
|
"rounds": 7,
|
|
"median": 0.17046913609374315,
|
|
"iqr": 0.003929688478820026,
|
|
"q1": 0.16898605454480276,
|
|
"q3": 0.17291574302362278,
|
|
"iqr_outliers": 0,
|
|
"stddev_outliers": 3,
|
|
"outliers": "3;0",
|
|
"ld15iqr": 0.16832035908009857,
|
|
"hd15iqr": 0.1755698589840904,
|
|
"ops": 5.846877204190976,
|
|
"total": 1.1972202862380072,
|
|
"iterations": 1
|
|
}
|
|
},
|
|
{
|
|
"group": null,
|
|
"name": "test_executemany_1000_rows",
|
|
"fullname": "tests/benchmarks/test_insert_perf.py::test_executemany_1000_rows",
|
|
"params": null,
|
|
"param": null,
|
|
"extra_info": {},
|
|
"options": {
|
|
"disable_gc": false,
|
|
"timer": "perf_counter",
|
|
"min_rounds": 5,
|
|
"max_time": 1.0,
|
|
"min_time": 5e-06,
|
|
"warmup": false
|
|
},
|
|
"stats": {
|
|
"min": 1.7241007370175794,
|
|
"max": 1.8025506250560284,
|
|
"mean": 1.770115462364629,
|
|
"stddev": 0.040949964893151496,
|
|
"rounds": 3,
|
|
"median": 1.783695025020279,
|
|
"iqr": 0.05883741602883674,
|
|
"q1": 1.7389993090182543,
|
|
"q3": 1.797836725047091,
|
|
"iqr_outliers": 0,
|
|
"stddev_outliers": 1,
|
|
"outliers": "1;0",
|
|
"ld15iqr": 1.7241007370175794,
|
|
"hd15iqr": 1.8025506250560284,
|
|
"ops": 0.5649348990286422,
|
|
"total": 5.310346387093887,
|
|
"iterations": 1
|
|
}
|
|
},
|
|
{
|
|
"group": null,
|
|
"name": "test_executemany_1000_rows_in_txn",
|
|
"fullname": "tests/benchmarks/test_insert_perf.py::test_executemany_1000_rows_in_txn",
|
|
"params": null,
|
|
"param": null,
|
|
"extra_info": {},
|
|
"options": {
|
|
"disable_gc": false,
|
|
"timer": "perf_counter",
|
|
"min_rounds": 5,
|
|
"max_time": 1.0,
|
|
"min_time": 5e-06,
|
|
"warmup": false
|
|
},
|
|
"stats": {
|
|
"min": 0.029487275052815676,
|
|
"max": 0.031187782995402813,
|
|
"mean": 0.03018106399880101,
|
|
"stddev": 0.0008923988615717756,
|
|
"rounds": 3,
|
|
"median": 0.02986813394818455,
|
|
"iqr": 0.001275380956940353,
|
|
"q1": 0.029582489776657894,
|
|
"q3": 0.030857870733598247,
|
|
"iqr_outliers": 0,
|
|
"stddev_outliers": 1,
|
|
"outliers": "1;0",
|
|
"ld15iqr": 0.029487275052815676,
|
|
"hd15iqr": 0.031187782995402813,
|
|
"ops": 33.133358056552495,
|
|
"total": 0.09054319199640304,
|
|
"iterations": 1
|
|
}
|
|
},
|
|
{
|
|
"group": null,
|
|
"name": "test_cold_connect_disconnect",
|
|
"fullname": "tests/benchmarks/test_pool_perf.py::test_cold_connect_disconnect",
|
|
"params": null,
|
|
"param": null,
|
|
"extra_info": {},
|
|
"options": {
|
|
"disable_gc": false,
|
|
"timer": "perf_counter",
|
|
"min_rounds": 5,
|
|
"max_time": 1.0,
|
|
"min_time": 5e-06,
|
|
"warmup": false
|
|
},
|
|
"stats": {
|
|
"min": 0.010703847045078874,
|
|
"max": 0.010994946002028883,
|
|
"mean": 0.010857723001390696,
|
|
"stddev": 0.00012220593763959052,
|
|
"rounds": 5,
|
|
"median": 0.01081350794993341,
|
|
"iqr": 0.000195654749404639,
|
|
"q1": 0.010780639509903267,
|
|
"q3": 0.010976294259307906,
|
|
"iqr_outliers": 0,
|
|
"stddev_outliers": 2,
|
|
"outliers": "2;0",
|
|
"ld15iqr": 0.010703847045078874,
|
|
"hd15iqr": 0.010994946002028883,
|
|
"ops": 92.10034183704231,
|
|
"total": 0.05428861500695348,
|
|
"iterations": 1
|
|
}
|
|
},
|
|
{
|
|
"group": null,
|
|
"name": "test_pool_acquire_release",
|
|
"fullname": "tests/benchmarks/test_pool_perf.py::test_pool_acquire_release",
|
|
"params": null,
|
|
"param": null,
|
|
"extra_info": {},
|
|
"options": {
|
|
"disable_gc": false,
|
|
"timer": "perf_counter",
|
|
"min_rounds": 5,
|
|
"max_time": 1.0,
|
|
"min_time": 5e-06,
|
|
"warmup": false
|
|
},
|
|
"stats": {
|
|
"min": 0.00010902993381023407,
|
|
"max": 0.002848736010491848,
|
|
"mean": 0.00021822520665460928,
|
|
"stddev": 0.0001375125435240596,
|
|
"rounds": 2183,
|
|
"median": 0.00018530897796154022,
|
|
"iqr": 9.743723785504699e-05,
|
|
"q1": 0.00014857493806630373,
|
|
"q3": 0.0002460121759213507,
|
|
"iqr_outliers": 111,
|
|
"stddev_outliers": 165,
|
|
"outliers": "165;111",
|
|
"ld15iqr": 0.00010902993381023407,
|
|
"hd15iqr": 0.00039244897197932005,
|
|
"ops": 4582.422055316121,
|
|
"total": 0.4763856261270121,
|
|
"iterations": 1
|
|
}
|
|
},
|
|
{
|
|
"group": null,
|
|
"name": "test_pool_acquire_query_release",
|
|
"fullname": "tests/benchmarks/test_pool_perf.py::test_pool_acquire_query_release",
|
|
"params": null,
|
|
"param": null,
|
|
"extra_info": {},
|
|
"options": {
|
|
"disable_gc": false,
|
|
"timer": "perf_counter",
|
|
"min_rounds": 5,
|
|
"max_time": 1.0,
|
|
"min_time": 5e-06,
|
|
"warmup": false
|
|
},
|
|
"stats": {
|
|
"min": 0.00021435902453958988,
|
|
"max": 0.0026991659542545676,
|
|
"mean": 0.00034451136280134787,
|
|
"stddev": 0.0001381192549398773,
|
|
"rounds": 1734,
|
|
"median": 0.000307839538436383,
|
|
"iqr": 0.0001273100497201085,
|
|
"q1": 0.0002589399227872491,
|
|
"q3": 0.0003862499725073576,
|
|
"iqr_outliers": 81,
|
|
"stddev_outliers": 186,
|
|
"outliers": "186;81",
|
|
"ld15iqr": 0.00021435902453958988,
|
|
"hd15iqr": 0.0005773489829152822,
|
|
"ops": 2902.661879911984,
|
|
"total": 0.5973827030975372,
|
|
"iterations": 1
|
|
}
|
|
},
|
|
{
|
|
"group": null,
|
|
"name": "test_select_one_row",
|
|
"fullname": "tests/benchmarks/test_select_perf.py::test_select_one_row",
|
|
"params": null,
|
|
"param": null,
|
|
"extra_info": {},
|
|
"options": {
|
|
"disable_gc": false,
|
|
"timer": "perf_counter",
|
|
"min_rounds": 5,
|
|
"max_time": 1.0,
|
|
"min_time": 5e-06,
|
|
"warmup": false
|
|
},
|
|
"stats": {
|
|
"min": 0.00010571896564215422,
|
|
"max": 0.0014337979955598712,
|
|
"mean": 0.00016123567918431363,
|
|
"stddev": 6.081706925207678e-05,
|
|
"rounds": 3602,
|
|
"median": 0.00014233950059860945,
|
|
"iqr": 6.208906415849924e-05,
|
|
"q1": 0.0001211799681186676,
|
|
"q3": 0.00018326903227716684,
|
|
"iqr_outliers": 140,
|
|
"stddev_outliers": 436,
|
|
"outliers": "436;140",
|
|
"ld15iqr": 0.00010571896564215422,
|
|
"hd15iqr": 0.00027650000993162394,
|
|
"ops": 6202.101204019913,
|
|
"total": 0.5807709164218977,
|
|
"iterations": 1
|
|
}
|
|
},
|
|
{
|
|
"group": null,
|
|
"name": "test_select_systables_first_10",
|
|
"fullname": "tests/benchmarks/test_select_perf.py::test_select_systables_first_10",
|
|
"params": null,
|
|
"param": null,
|
|
"extra_info": {},
|
|
"options": {
|
|
"disable_gc": false,
|
|
"timer": "perf_counter",
|
|
"min_rounds": 5,
|
|
"max_time": 1.0,
|
|
"min_time": 5e-06,
|
|
"warmup": false
|
|
},
|
|
"stats": {
|
|
"min": 0.0001464600209146738,
|
|
"max": 0.0006670691072940826,
|
|
"mean": 0.00020406637762734778,
|
|
"stddev": 5.242213281716161e-05,
|
|
"rounds": 2919,
|
|
"median": 0.00018970994278788567,
|
|
"iqr": 6.735578062944114e-05,
|
|
"q1": 0.00016244172002188861,
|
|
"q3": 0.00022979750065132976,
|
|
"iqr_outliers": 85,
|
|
"stddev_outliers": 525,
|
|
"outliers": "525;85",
|
|
"ld15iqr": 0.0001464600209146738,
|
|
"hd15iqr": 0.00033088994678109884,
|
|
"ops": 4900.366300548209,
|
|
"total": 0.5956697562942281,
|
|
"iterations": 1
|
|
}
|
|
},
|
|
{
|
|
"group": null,
|
|
"name": "test_select_bench_table_all",
|
|
"fullname": "tests/benchmarks/test_select_perf.py::test_select_bench_table_all",
|
|
"params": null,
|
|
"param": null,
|
|
"extra_info": {},
|
|
"options": {
|
|
"disable_gc": false,
|
|
"timer": "perf_counter",
|
|
"min_rounds": 5,
|
|
"max_time": 1.0,
|
|
"min_time": 5e-06,
|
|
"warmup": false
|
|
},
|
|
"stats": {
|
|
"min": 0.0012891979422420263,
|
|
"max": 0.002537296968512237,
|
|
"mean": 0.0014767767646464644,
|
|
"stddev": 0.00015889450439075735,
|
|
"rounds": 536,
|
|
"median": 0.0014329130062833428,
|
|
"iqr": 0.00017965061124414206,
|
|
"q1": 0.0013673279318027198,
|
|
"q3": 0.0015469785430468619,
|
|
"iqr_outliers": 23,
|
|
"stddev_outliers": 110,
|
|
"outliers": "110;23",
|
|
"ld15iqr": 0.0012891979422420263,
|
|
"hd15iqr": 0.0018201080383732915,
|
|
"ops": 677.1504156482289,
|
|
"total": 0.7915523458505049,
|
|
"iterations": 1
|
|
}
|
|
},
|
|
{
|
|
"group": null,
|
|
"name": "test_select_with_param",
|
|
"fullname": "tests/benchmarks/test_select_perf.py::test_select_with_param",
|
|
"params": null,
|
|
"param": null,
|
|
"extra_info": {},
|
|
"options": {
|
|
"disable_gc": false,
|
|
"timer": "perf_counter",
|
|
"min_rounds": 5,
|
|
"max_time": 1.0,
|
|
"min_time": 5e-06,
|
|
"warmup": false
|
|
},
|
|
"stats": {
|
|
"min": 0.0008895490318536758,
|
|
"max": 0.001708118012174964,
|
|
"mean": 0.0010690036180604182,
|
|
"stddev": 0.00012057836413943589,
|
|
"rounds": 729,
|
|
"median": 0.001042668940499425,
|
|
"iqr": 0.0001435203303117305,
|
|
"q1": 0.0009819729311857373,
|
|
"q3": 0.0011254932614974678,
|
|
"iqr_outliers": 28,
|
|
"stddev_outliers": 172,
|
|
"outliers": "172;28",
|
|
"ld15iqr": 0.0008895490318536758,
|
|
"hd15iqr": 0.0013541990192607045,
|
|
"ops": 935.4505289835995,
|
|
"total": 0.7793036375660449,
|
|
"iterations": 1
|
|
}
|
|
}
|
|
],
|
|
"datetime": "2026-05-04T23:25:30.942621+00:00",
|
|
"version": "5.2.3"
|
|
} |