avatar

Life of a Programmer

`Simplicity is prerequisite for reliability.’ - EWD

Own Goal

最近一周都是跑一休二,增加了休息的时间避免肌肉慢性炎症。之前 5km 的最好成绩是耗时 26'20", 当时暗自给自己的目标是今年能跑进 25'. 乌龙 🔗昨天跑最大摄氧量训练

Fugu

上周六去了趟锦溪古镇,离淀山湖景区不远。古镇不收门票,当天镇内各大展馆也都免费参观,薅了社会主义羊毛。停车场收费很便宜,加上来回走崧泽高架省

Half Marathon

昨晚跑无氧,意犹未尽,继续撒脚丫子,跑了人生第一个半马。耗时 2:08:30,还行。手表提醒恢复训练需要 79 小时。 最后四公里主要靠意志,特别是最

Strange Latency Issue

最近碰到一个奇怪的问题。有个多线程应用,其中一个线程中的伪代码如下: gettimeofday(&begin, NULL); foo(); // 同步过程调用 gettimeofday(&end, NULL); usleep(N); 其中,end-begin 得到 foo() 的耗时 T. 目前可以

Learning by Tracing

用 bpftrace 跟踪一个 Direct I/O 在 polling 和非 polling 模式下的处理逻辑。为了减少无关的 I/O 干扰,限定了 comm == "a.out" – 这个 a.out 是我的测试程序。 内核是 4.18, 关键代码相对比较好找,在 fs/block_dev.c: static void