diff --git a/README.md b/README.md index 919ecef..fee1853 100644 --- a/README.md +++ b/README.md @@ -117,9 +117,15 @@ machine (x86_64-linux): and Rust examples. Both python `sanic` and rust `axum` were easy enough to integrate. -![](wrk_table_summary.png) +**Update**: I have automated the benchmarks. See +[blazingly-fast.md](./blazingly-fast.md) for more information. Also, thanks to +@alexpyattaev, the benchmarks are fairer now, pinning server and client to +specific CPU cores. + +![](./wrk/samples/req_per_sec_graph.png) + +![](./wrk/samples/xfer_per_sec_graph.png) -![](wrk_charts_summary.png) So, being somewhere in the ballpark of basic GO performance, zig zap seems to be ... of reasonable performance 😎. diff --git a/blazingly-fast.md b/blazingly-fast.md index 9caa04b..5efc31d 100644 --- a/blazingly-fast.md +++ b/blazingly-fast.md @@ -94,7 +94,80 @@ different computers. It's interesting to see the variation in relative numbers. ### The test machine (graphs in the README) -To be added when I get home. +![](./wrk/samples/req_per_sec_graph.png) + +![](./wrk/samples/xfer_per_sec_graph.png) + +``` +➜ neofetch --stdout +rs@ryzen +-------- +OS: NixOS 23.05.997.ddf4688dc7a (Stoat) x86_64 +Host: Micro-Star International Co., Ltd. B550-A PRO (MS-7C56) +Kernel: 6.3.7 +Uptime: 15 days, 11 hours, 13 mins +Packages: 2094 (nix-system), 1356 (nix-user), 7 (flatpak) +Shell: bash 5.2.15 +Resolution: 3840x2160 +DE: none+i3 +WM: i3 +Terminal: tmux +CPU: AMD Ryzen 5 5600X (12) @ 3.700GHz +GPU: AMD ATI Radeon RX 6700/6700 XT/6750 XT / 6800M/6850M XT +Memory: 4981MiB / 32028MiB + + +➜ lscpu +Architecture: x86_64 + CPU op-mode(s): 32-bit, 64-bit + Address sizes: 48 bits physical, 48 bits virtual + Byte Order: Little Endian +CPU(s): 12 + On-line CPU(s) list: 0-11 +Vendor ID: AuthenticAMD + Model name: AMD Ryzen 5 5600X 6-Core Processor + CPU family: 25 + Model: 33 + Thread(s) per core: 2 + Core(s) per socket: 6 + Socket(s): 1 + Stepping: 0 + Frequency boost: enabled + CPU(s) scaling MHz: 67% + CPU max MHz: 4650.2920 + CPU min MHz: 2200.0000 + BogoMIPS: 7399.43 + Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt + pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16 + sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefet + ch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 hw_pstate ssbd mba ibrs ib + pb stibp vmmcall fsgsbase bmi1 avx2 smep bmi2 erms invpcid cqm rdt_a rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xget + bv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local clzero irperf xsaveerptr rdpru wbnoinvd arat npt lbrv svm_lock nrip + _save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif v_spec_ctrl umip pku ospk + e vaes vpclmulqdq rdpid overflow_recov succor smca fsrm +Virtualization features: + Virtualization: AMD-V +Caches (sum of all): + L1d: 192 KiB (6 instances) + L1i: 192 KiB (6 instances) + L2: 3 MiB (6 instances) + L3: 32 MiB (1 instance) +NUMA: + NUMA node(s): 1 + NUMA node0 CPU(s): 0-11 +Vulnerabilities: + Itlb multihit: Not affected + L1tf: Not affected + Mds: Not affected + Meltdown: Not affected + Mmio stale data: Not affected + Retbleed: Not affected + Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl + Spectre v1: Mitigation; usercopy/swapgs barriers and __user pointer sanitization + Spectre v2: Mitigation; Retpolines, IBPB conditional, IBRS_FW, STIBP always-on, RSB filling, PBRSB-eIBRS Not affected + Srbds: Not affected + Tsx async abort: Not affected +``` ### Workstation at work diff --git a/wrk/samples/req_per_sec_graph.png b/wrk/samples/req_per_sec_graph.png new file mode 100644 index 0000000..e619a8f Binary files /dev/null and b/wrk/samples/req_per_sec_graph.png differ diff --git a/wrk/samples/xfer_per_sec_graph.png b/wrk/samples/xfer_per_sec_graph.png new file mode 100644 index 0000000..53bfe00 Binary files /dev/null and b/wrk/samples/xfer_per_sec_graph.png differ