程序员的文档调优(一):基本守则

撰写代码是程序员的本职工作,但编写文档时至今日依然常常遭到忽视。纵有高人曰过,优雅的代码是最好的文档,但先不说多少人的代码能达到这般境界,许多事务并不能仅靠代码本身完成。例如:用户文档,不能倚赖用户去阅读代码后再使用你的系统;设计文档,需要快速纵览项目时并无闲暇去阅览数万行代码;需求文档,乙方不可能按着你的 API 接口声明猜测你的意图……然而,几乎每一个程序员都被文档的匮乏深深伤害过。

[……]

阅读全文


macOS on KVM on Mac!

最近在公司的项目有一个诡异的需求,要做 macOS 的虚拟化。

其实,真正的需求是稳定可重现的 macOS 系统环境,而且同一物理机上的环境之间要有充分的隔离。考虑到 macOS 那一坨 Xcode、brew 什么的绞成一团浆糊,况且咱 Mac 机器数量也不多,还是直接上虚拟机比较靠谱。

正好,公司的虚拟化团队并没有成熟的 macOS 方案,于是乎,小小地摸鱼调研了一下在 Mac 上安装 Linux(Proxmox VE),再在上面安装 macOS 虚拟机的路子……

[……]

阅读全文







「iowait」究竟是什么?

本文翻译自《What exactly is “iowait”?》,格式与部分内容略有调整。

原文发布于 2004 年 4 月的某 AIX-L 邮件列表上,原始地址已失效,原文可参见备份地址

iowait,也就是 top 中见到的「wa」、Proxmox VE 面板上看到的「IO delay」,指示着 CPU 有多少时间用于 IO 操作上。

等等,现代的计算机的 IO 还需要 CPU 的全程参与吗?难道 CPU 不该进入睡眠状态或者忙其他的吗?iowait 可以指示 IO 是否成为瓶颈,又是真的吗?

搜了一圈,发现这篇文章讲解得比较清晰,故采而译之。

一言以蔽之,「iowait」指的是 CPU 空闲并且存在未完成 I/O 操作的时间,所占总时间的比例。

[……]

阅读全文