如何让PostgreSQL慢到令人发指?

2025-07-28
如何让PostgreSQL慢到令人发指?

本文作者挑战如何通过调整PostgreSQL的`postgresql.conf`配置文件参数,而非直接降低CPU频率或删除索引,来尽可能降低数据库的查询速度。通过一系列参数调整,包括极度缩小缓存大小(`shared_buffers`)、频繁触发自动vacuum和分析(`autovacuum_*`参数)、配置WAL(`wal_*`参数)以最大化写入频率和I/O阻塞,最终将PostgreSQL的TPS降低了超过7000倍,从7000+降至个位数以下,甚至低于0.1 TPS。作者详细解释了每个参数调整的原理和效果,并提供了可复现的配置参数列表。这是一个有趣的实验,展示了数据库参数微调对性能的影响之大。

阅读更多
开发 参数调优

JavaScript性能测试的困境:JIT编译器、引擎差异与计时精度

2024-12-24
JavaScript性能测试的困境:JIT编译器、引擎差异与计时精度

JavaScript的性能测试并非易事。文章指出,JIT编译器会根据代码运行情况动态优化,导致不同测试运行结果差异巨大;不同JavaScript引擎(如V8、JavaScriptCore)的性能差异显著,同一代码在不同引擎下的表现可能大相径庭;浏览器为了防止计时攻击,有意降低计时精度,使得精确的性能测量变得困难。作者建议,在服务器端可以使用d8等工具控制优化级别和垃圾回收,而在浏览器端则只能依赖于开发者工具提供的有限信息。总而言之,JavaScript的性能测试需要考虑JIT编译器、引擎差异、计时精度等诸多因素,这使得它比其他语言的性能测试更为复杂。

阅读更多