用查找表优化UTF-8解码:避免分支预测

2025-09-06
用查找表优化UTF-8解码:避免分支预测

本文探讨了如何通过查找表来优化UTF-8解码过程,避免分支预测带来的性能损耗。作者详细解释了如何创建一个256字节的查找表,将UTF-8序列的首字节映射到其对应的序列长度。查找表有效地将分支操作替换为简单的数组访问,从而提升解码效率。虽然增加了256字节的内存消耗,但这种方法在许多情况下可以显著提高性能。

阅读更多
开发

86-DOS:改变PC时代的幕后故事

2025-08-28
86-DOS:改变PC时代的幕后故事

1980年,西雅图电脑产品公司(SCP)的年轻员工Tim Paterson开发了一个名为QDOS(Quick and Dirty Operating System)的小型磁盘操作系统,为Intel 8086处理器而生。这个最初旨在快速解决SCP 8086电脑缺乏操作系统的项目,最终演变成微软的MS-DOS,统治PC行业长达十余年。文章详细讲述了QDOS的开发历程,包括其与CP/M的API兼容性争议,以及微软最终收购QDOS并将其更名为MS-DOS的故事。QDOS的简易设计和对CP/M API的借鉴,虽然引发争议,却使其快速投入市场,成为PC时代的重要基石。

阅读更多
科技

两位微型计算机先驱的传奇人生:辛克莱与基尔达尔

2025-07-17
两位微型计算机先驱的传奇人生:辛克莱与基尔达尔

本文讲述了英国电子天才克莱夫·辛克莱爵士和美国计算机科学家加里·基尔达尔两位微型计算机先驱的精彩人生。辛克莱凭借ZX Spectrum等家用电脑引领了80年代的家用电脑革命,但他最终因投资失利而退出商界。基尔达尔则开发了CP/M操作系统,一度成为微型电脑的标准,但他错失了与IBM合作的机会,最终公司被收购。两人都展现了非凡的技术才能和商业上的不足,为微型计算机产业做出了巨大贡献,他们的故事也为后来的创业者提供了宝贵的经验和教训。

阅读更多
科技

Jupiter Ace:一个被Forth扼杀的英伦复古电脑

2025-04-10
Jupiter Ace:一个被Forth扼杀的英伦复古电脑

1982年,英国诞生了一款名为Jupiter Ace的小型家用电脑。它与众不同之处在于ROM中内置了Forth语言而非BASIC。这篇文章探讨了在当时BASIC在ROM中如此重要的原因,以及用Forth替代BASIC是否是Jupiter Ace失败的关键。虽然Forth在技术上更优秀,运行速度更快,更适合专业软件开发,但其较高的学习门槛和Jupiter Ace本身落后的硬件配置(3KB RAM,无彩色图形)最终导致了它的市场失败。比起编程语言,大多数用户更关心的是游戏和内存。

阅读更多
科技

6502汇编:学习汇编的最佳起点?

2025-02-06
6502汇编:学习汇编的最佳起点?

学习汇编语言的最佳起点是什么?作者认为是6502。尽管6502在现代应用中并不常见,但其简单的指令集(只有56条指令)和丰富的学习资源使其成为学习汇编语言基本概念的理想选择。6502曾广泛应用于经典电脑,例如Apple II和Commodore 64,因此拥有大量的模拟器和学习资料。作者推荐了Easy 6502和Visual6502.org作为学习资源,并比较了其他架构如x86-64和ARM的复杂性,进一步强调了6502的优势。

阅读更多
开发