为什么程序员每天只有两小时高效工作时间?从上下文切换成本到深度工作的二十年生产力革命

2016年,GitHub进行了一项令人震惊的内部研究。他们追踪了数千名工程师的工作模式,发现一个令人不安的事实:当程序员面临频繁的会议、消息通知和"快速问题"打断时,他们高达82%的高效工作时间被抹去了。这不是效率下降——这是效率的崩塌。 ...

22 min · 10797 words

为什么程序员的注意力只剩47秒从心流状态到碎片化工作的认知危机

2004年,加州大学尔湾分校的Gloria Mark教授开始了一项持续至今的研究:追踪人们在电脑屏幕上的注意力持续时间。那一年,她记录到的平均值是2分30秒。二十年后,这个数字变成了47秒。 ...

11 min · 5415 words

上下文切换为何如此昂贵?从寄存器保存到TLB失效的完整技术解析

一台拥有32个CPU核心的服务器,为什么在运行200个线程时性能反而不如运行32个线程?数据库连接池从100扩展到300,为什么吞吐量反而下降了40%? ...

11 min · 5248 words

数据库连接池不是越大越好:为什么10个连接能击败100个

2013年,Oracle Real World Performance Group发布了一段令人震惊的视频。他们在压力测试中,将9600个并发线程的数据库连接池从2048降到96——不做任何其他优化,响应时间从100毫秒骤降到2毫秒。 ...

13 min · 6445 words

协程调度:从用户态线程到Go GMP模型的二十年演进

1963年7月,Communications of the ACM发表了一篇题为《Design of a Separable Transition-Diagram Compiler》的论文。作者Melvin Conway提出了一个当时看来颇为新奇的概念:将编译器的词法分析阶段分解为多个"可以互相挂起和恢复"的执行单元。他将这些执行单元称为"coroutine"——协程。 ...

13 min · 6241 words