每日HackerNews RSS

该基准测试比较了 Google Chrome 和 Mozilla Firefox 在一系列测试(401.bzip2、429.mcf 等)中的性能。结果以平均执行时间以及误差范围(±)呈现。 通常,Firefox 在大多数基准测试中表现出比 Chrome 较慢的性能。 “减速”指标量化了这一点:Firefox 平均慢 1.55 倍(几何平均值)和 1.53 倍(中位数)。 在像 `644.nab_s` 这样的测试中,观察到显著的性能差异,Firefox 耗时明显更长(3639/3829),而 Chrome 为 (2476)。 然而,一些基准测试显示出可比的结果(例如,`450.soplex`)。 数据提供了详细的比较,突出了 Firefox 整体性能的滞后,但也确定了差异不太明显的领域。

## WebAssembly 与原生代码性能:总结 最近的一项分析(来自2019年,此后有所改进)探讨了WebAssembly (Wasm) 与原生代码的性能对比。研究发现,在浏览器环境中运行并使用自定义Unix内核模拟的Wasm,速度比原生执行慢约45%。 尽管存在性能差距,评论员强调了使用Wasm在浏览器中运行未修改的Unix程序的令人印象深刻的成就。讨论的重点是Wasm在*浏览器之外*的潜力——特别是用于一次编译、随处运行的应用,并具有强大的沙箱功能。 许多用户已经利用Wasm来实现这一目的,并提到了跨语言兼容性和简化部署等好处。 虽然有些人提倡使用成熟的技术,如Docker,但另一些人认为Wasm在需要低延迟、小占用和大量隔离进程的场景中表现出色(例如游戏插件或Actor系统)。 此外,还提到Wasm有可能与Lua和eBPF竞争,以提供安全的沙箱环境。 最终,许多人认为Wasm是一项很有前途的技术,特别是如果性能可以提高到原生速度的10-15%以内。

氧化遇到一个bug,使用`serde`将复杂数据结构序列化为JSON时失败,原因是JSON的键类型有限制。为了防止未来出现问题,他们实现了基于属性的测试,生成随机实例并验证序列化是否成功。 虽然最初的测试通过了,但往返测试(序列化然后反序列化)却意外失败。调试发现问题源于`SocketAddrV6`,它包含文本JSON表示中不存在的`flowinfo`和`scope_id`字段。`serde`在序列化时省略了`flowinfo`,但在反序列化时将其默认为零,导致不匹配。 调查揭示了历史背景:`flowinfo`(包含流量类别和流标签)由于IPv6早期的QoS考虑而被包含在`SocketAddrV6`中,而`SocketAddrV4`则没有。虽然`scope_id`对于区分具有链路本地地址的网络接口是必要的,但`flowinfo`的实用性值得商榷。 团队通过在测试期间始终将`flowinfo`设置为零来生成`SocketAddrV6`实例,从而解决了这个问题。这突出了无损序列化的重要性以及在现代需求与历史设计决策之间取得平衡的挑战。

肖恩·邓恩因涉嫌袭击海关与边境巡逻局特工而被起诉,事件发生在今年夏天华盛顿特区。他的律师将这一行为描述为抗议特朗普总统时期联邦警务的“无害姿态”。特工格雷戈里·莱尔莫尔作证说,三明治撞击他的防弹背心时“爆炸”了,在他的制服上留下了芥末酱和洋葱残渣。 事件被视频记录,发生在邓恩对正在城市中盘问他们存在的警察大喊脏话的激烈争执中。检察官认为邓恩袭击了一名联邦官员,而辩方则认为投掷行为并未造成伤害。这场审判引起了关注,法庭听众在莱尔莫尔作证时努力克制笑声。 逮捕后,邓恩失去了他在司法部担任律师助理的工作,引发了包括司法部长帕姆·邦迪在内的各界人士的政治评论。检方最初寻求重罪起诉,但最终接受了轻罪指控。证据包括莱尔莫尔的同事在事件后送给他的玩笑礼物,以及关于缺乏损坏照片证据的问题。

边境巡逻队特工作证称,一枚扔向他的三明治“爆炸”了,导致投掷者被指控轻度袭击罪。这起事件在Hacker News上引发了争论,许多用户质疑联邦当局的过度反应和大规模应对——包括20名特工逮捕该名个人并将其录像发布到社交媒体上。 评论员强调了这起轻微“犯罪”与最初调查的严重程度之间的对比,引用了一句关于大陪审团起诉“一个火腿三明治”的名言。一些人认为特工对三明治造成的“创伤”的详细描述(洋葱、芥末污渍)是荒谬的,并开玩笑说“芥末气”,以及特工的同事嘲笑这起事件。 一些用户指出执法部门存在夸大和制造叙事的模式,并将之与过去事件(如西雅图BLM抗议活动)相提并论。这场讨论最终集中在对正义的看法、权力动态以及看似微不足道的事件周围可能存在的政治操纵上。

## 预编译头文件与Squid:一次失败的优化 预编译头文件旨在通过保存解析后的头信息来加速C++编译,避免在多个源文件中重复工作。GCC、Clang和MSVC等编译器都支持此功能,各自具有不同的实现细节,包括文件格式(GCC的.gch,Clang的.pch)和构建过程。 Squid项目研究了使用预编译头文件,特别是对于包含大量可移植性层的“squid.h”——为它的800多个源文件中的每一个解析206个头文件。虽然GCC显示出适度的5%(大约30秒)编译时间改进,但集成却存在问题。 使用GCC,实现需要对Autotools构建系统进行修改,包括修改包含目录中的文件。Clang提出了更大的挑战:它需要在编译*期间*使用`-include-pch`标志,并且如果缺少预编译头文件则会失败,这使得在现有的Autotools框架内控制构建顺序变得不可能。 最终,收益不足以证明所需的复杂性和修改是合理的,导致放弃了优化工作。对于Clang的一个关键改进是,应该像GCC一样行事——将预编译头文件视为可选的优化,而不是构建要求。

## Ruby 冻结字符串字面量的历程:总结 Ruby 字符串与其他许多语言不同,具有独特的易变性。这种易变性提供了灵活性,但也可能由于操作期间的复制而导致性能开销。Ruby 通过“冻结”字符串来解决这个问题,使其不可变,并实现诸如共享内存使用和安全哈希键使用的优化。 `# frozen_string_literal: true` 注释的引入是为了鼓励冻结字符串字面量,最初是为了优化性能并避免不必要的重复。虽然在 Ruby 3.0 中将其设为默认值的计划由于兼容性问题而被放弃,但讨论仍在继续。 最近的 Ruby 版本 (3.4+) 现在包含“冷冻”字符串——一种弃用机制,当可变字符串字面量被修改时会警告开发者,为未来潜在的默认冻结字符串铺平了道路。基准测试表明,冻结字符串可以提高性能,尽管许多项目的现有优化降低了影响。 未来仍然不确定,取决于 Matz 的最终决定,需要在性能优势与潜在破坏现有代码之间取得平衡。最终,使用冻结字符串字面量即使尚未成为默认设置,也能提供性能优势和更清晰的代码。

## SimpleText 窗口大小补丁:逆向工程总结 一个以较小窗口启动SimpleText的请求,引发了一个出乎意料的复杂编程挑战。最初设想为简单的常量覆盖,但该任务需要使用ResEdit和代码编辑器对SimpleText的68k代码进行深度反汇编和修补。 核心问题是避免为显示图片、视频或关于框的窗口进行不必要的调整。直接修改常量被证明不可行,因此需要注入自定义代码来检测文本窗口并替换为所需大小。这涉及到策略性地用跳转到新添加的子例程来覆盖现有代码,小心管理寄存器使用以避免与SimpleText的例程冲突,并处理应用程序内的多个调整点——包括一个由文档加载触发的调整点。 解决方法包括由于全局变量的限制,将临时数据存储在代码*内部*,直接调用系统例程以避免库依赖,以及应对CodeWarrior关于子例程调用和代码放置的怪癖。最终解决方案是添加一个自定义资源以便于窗口大小重新定义,但修补过程导致ResEdit中的反汇编问题。 作者分享这些详细的经验,希望能帮助其他人解决类似的复古软件修改项目。

一份新报告显示,全球首席执行官面临巨大的压力,需要证明人工智能投资的实际回报,**74%的人担心如果在两年内无法实现目标,将面临失业风险**。该研究对四个国家/地区的500多位首席执行官进行调查,表明由于人工智能的绩效,即将出现一波领导层变动,**70%的受访者预计今年将因人工智能失败而导致高管被解雇**。 首席执行官承认自己落后于竞争对手(54%),并且越来越认可人工智能在治理中的作用——**94%的人认为人工智能在提供建议方面可以与人类董事会成员相媲美**。然而,该报告强调了关键的失误,包括依赖“现成”人工智能(87%)以及员工广泛使用“影子人工智能”(94%)。 监管不确定性以及对潜在损害员工(80%)和客户(83%)的担忧也在阻碍进展。尽管面临这些挑战,**人工智能仍然是2025年的首要任务(78%)**,并且现在与投资者信心直接相关,这使得成功的人工智能实施对于企业和首席执行官的生存至关重要。

## 人工智能开放开发的斗争 通过版权许可限制人工智能(AI)训练的数据访问,威胁着创新、竞争和自由表达。人工智能依赖于分析庞大的数据集——这一过程在历史上受到“合理使用”的保护——从而推动医学和科学研究等领域的突破。征收许可费将不成比例地使拥有现有数据的巨型公司受益,扼杀小型竞争者,并可能阻碍进步。 最近的法律挑战,例如那些面临颠覆既定行业的初创公司所面临的挑战,表明版权主张如何被武器化以消除竞争。此外,许可并不一定能使创作者受益,正如音乐流媒体的过去经验所表明的那样——利润往往留在大型公司手中,而不是艺术家手中。 人工智能还实现了内容创作的民主化,使个人和历史上边缘化群体能够表达自己。限制训练数据会限制这种潜力。与其扩大版权,不如将解决方案集中在解决真正的人工智能相关危害上——例如工作岗位流失、滥用(如深度伪造)、隐私问题和环境影响——通过有针对性的政策,如更严格的反垄断执法、隐私法和工人保护。保护合理使用对于培养多元且有益的人工智能格局至关重要。

## 自复制:从乌龟到ZIP文件 本文探讨了自复制的概念,从哲学上的“乌龟无限叠层”悖论开始。然后深入计算机科学领域,研究程序如何被设计成自我复制。 作者追溯了这个想法,从早期的编程挑战——编写最短的自复制程序(“quine”)——到更复杂的实现。Python示例展示了程序打印自身源代码所需的递归逻辑。这进而引申到探索Scheme和Go等语言中的自复制程序,强调了该概念如何被优雅地表达。 核心挑战转向Lempel-Ziv压缩,用于gzip和zip等格式。作者成功创建了一个仅使用字面量和重复操作码的程序,该程序可以解压缩为自身,甚至将自身嵌入到前缀和后缀中。这一突破随后被应用于创建实际的自复制zip、gzip和tar.gz文件,克服了诸如哈夫曼编码和CRC32校验和等实际障碍。 最终,作者分享了代码和文件,并幽默地感叹缺乏能够无限解压缩这些递归循环的程序。文章以对终极自复制程序的简单性的致敬而结束:一个shell脚本简单地回显其自身的内容。

Hacker News 新闻 | 过去 | 评论 | 提问 | 展示 | 工作 | 提交 登录 Zip 文件层层嵌套 (2010) (swtch.com) 37 分,aebtebeten 1 天前 | 隐藏 | 过去 | 收藏 | 3 条评论 cachius 1 天前 | 下一个 [–] 好文章。深度与 zserge 关于灰度图像识别的文章类似。https://news.ycombinator.com/item?id=45771151 我记得 %|% 是一个 .bat cmd.exe 分叉炸弹。人们是否可以认为分叉炸弹是下一级的quine?回复 adzm 1 天前 | 上一个 | 下一个 [–] 终于找到了我得到这个 r.zip quine 的地方。用它来测试东西很有趣。回复 kmoser 1 天前 | 上一个 [–] 我想知道这会如何作为 zip 炸弹对抗恶意 LLM 爬虫?回复 考虑申请 YC 2026 冬季批次!申请截止至 11 月 10 日 指南 | 常见问题 | 列表 | API | 安全 | 法律 | 申请 YC | 联系方式 搜索:

启用 JavaScript 和 Cookie 以继续。

更多

联系我们 contact @ memedata.com