使用SIMD指令更快地扫描HTML(C++ 和 C#)

2024-07-22

文章介绍了一种使用SIMD指令加速HTML解析的方法,称为64位向量化分类。该方法通过加载64字节的非重叠块并将每个块转换为64位寄存器,其中每个位对应一个字符,从而快速识别目标字符。与WebKit和Chromium中使用的向量化分类方法相比,该方法性能更优,因为它避免了重复加载和识别相同字符的问题。文章提供了C++和C#的代码示例,并在Apple M2笔记本电脑上进行了基准测试,结果显示该方法可以显著提高HTML扫描速度。

阅读更多
42
未分类

如何在JavaScript中快速读取文件

2024-05-31

文章评测了使用Node.js和Bun两种JavaScript运行时,分别采用fs.promises、fs.readFile和fs.readFileSync等不同方法读取文件的速度。结果表明,在Node.js环境下,fs.promises方法效率最低,而Bun运行时在文件读取速度方面远超Node.js。综合测试结果,fs.readFile方法在读取文件,尤其是大文件时效率最高。

阅读更多
43

从面向对象狂热中汲取的教训

2024-05-14

本文回顾了面向对象编程的狂热时期,指出尽管面向对象编程的一些基本原则很有用,但当时的狂热是不必要的,甚至是有害的。作者将这种现象比作社会传染病,并指出现代社会中仍然存在类似的趋势,例如强制戴口罩。作者建议读者批判性地看待任何流行的技术和理念,避免盲目跟风。

阅读更多
45
未分类 社会传染

How do you recognize an expert? – Daniel Lemire's blog

2024-04-21

该网站文章探讨了如何识别专家,作者提出七个关键特征:1. 能够清晰解释复杂概念;2. 能够提出新颖或不同的见解;3. 能够展示证据来支持他们的观点;4. 能够考虑不同的视角;5. 愿意承认错误;6. 热衷于他们的领域;7. 谦虚且自我批评。

阅读更多
48
未分类