瓢虫,一个网页引擎,正在从C++过渡到Rust,以提高内存安全性和构建更强大的生态系统。 之前考虑过Swift,但由于互操作性问题和平台支持有限而受阻。 尽管最初担心Rust不适合网页平台的OOP风格,但其优势现在超过了这些缺点,这与Firefox和Chromium等项目的采用相呼应。 首次重大移植是LibJS,瓢虫的JavaScript引擎,在人工指导下,借助Claude和Codex等AI工具成功翻译,耗时约两周——手动操作估计需要数月。 这25,000行Rust代码与C++版本输出*字节对字节*完全相同,并且在广泛的测试套件(test262和瓢虫内部测试)和基准测试中未发现任何回归。 最初的重点是兼容性,因此Rust代码有意模仿C++模式。 未来的开发将涉及子系统的逐步移植,同时继续C++开发,由核心团队管理以确保高效集成。
## NASA对卡车设计的意外影响
1973年,NASA工程师埃德温·J·萨尔茨曼在骑自行车上班时观察到空气动力学湍流,由此领导了一个提高卡车燃油效率的项目。他的团队使用改装的福特厢式货车,后来又使用半挂卡车,系统地测试了空气动力学改进。
最初,他们使用平铝板建立基线,然后专注于将前缘圆滑化并密封底盘。这些改变显著降低了阻力——厢式货车圆滑前缘可降低高达52%的阻力,而底盘密封可进一步降低7%,从而可能将燃油经济性提高15-25%。
对半挂卡车进行的进一步测试显示,平滑的前端可降低超过50%的阻力,底盘整流罩可降低15%。这项NASA研究直接影响了现代卡车设计,促使广泛使用空气动力学整流罩、圆角,甚至像Airtab这样的涡流发生器,证明了NASA的工程专业知识远不止于太空探索。
## 2024 年网络爬虫:每天抓取十亿页
该项目重新审视了大规模网络爬虫,这是一个自 2012 年以来未得到充分更新的主题,以确定启动一个谷歌规模的爬虫是否仍然可行。作者成功地在约 **25.5 小时**内抓取了 **10 亿个网页**,成本约为 **462 美元**,远低于之前的估计。
尽管硬件有所改进(更快的 CPU、NVMe 驱动器、增加的网络带宽),但挑战依然存在。网络越来越动态且内容密集。该爬虫专注于 HTML,绕过了 JavaScript 渲染以直接与过去的爬虫进行比较,并令人惊讶地发现仍然可以通过这种方式访问网络的大部分内容。
该爬虫利用了 **12 个优化节点**的集群,每个节点处理爬虫的一部分,在有限的预算下优先考虑效率。**解析被证明是一个主要瓶颈**,这归因于与 2012 年相比,平均页面尺寸显著增加(242KB vs. 51KB),因此需要切换到更快的 `selectolax` 库并截断页面。网络带宽不是限制因素,但 **SSL 握手消耗了大量的 25% CPU 时间**。
该项目强调了**礼貌性**(尊重 `robots.txt`、爬取延迟)和**容错性**。虽然与理论模型相当,但作者的结果表明,仅提取机器的扩展可以实现类似的吞吐量。未来的工作应解决动态内容渲染问题,并分析抓取数据的特征。人工智能驱动的抓取技术的兴起也正在促使互联网基础设施提供商采取新的防御措施。