每日HackerNews RSS

随着 CPU 核心数量增加,主要的可扩展性瓶颈可能不再是算法复杂度,而是同步开销。传统锁耦合在二叉树中的表现尤其糟糕,因为每次查找都会在高度竞争的节点(尤其是根节点)上反复获取和释放共享锁,即使读者之间在语义上并不冲突。 乐观锁耦合将读者产生的写竞争移除。写入者更新数据并递增版本计数器;读者则在不加锁的情况下乐观地遍历结构,读取节点的版本和数据,然后在使用数据或移动到下一个节点之前验证版本。任何并发修改或正在进行的写入都会导致验证失败,使查找重新开始。 由于在验证之前使用数据可能引入难以察觉的竞态条件,该设计利用类型系统在编译时确保正确性。乐观访问器返回 `unvalidated<T>` 值;这些值在经过锁守卫验证之前无法使用。即使是锁的获取和指针传递,也必须遵循这一验证链。这样既能在编译时防止不安全的读取,又能保留接近无锁的查找可扩展性以及安全的并发写入。

讨论涵盖了**乐观锁耦合**这是一种并发处理方式:读操作与写操作可以同时进行,而多个写操作之间仍保持互斥。与 `RwLock` 在写操作期间阻止读者、在读操作活跃时阻止写者不同,乐观读操作不会等待,而是在完成后验证版本计数器。如果读取期间写操作修改了数据,读者必须重试;编译器层面的检查有助于避免遗漏重试。 主要技术问题是安全地回收内存。读者仍在访问某个节点时,写者可能会删除或复用该节点,因此需要使用 RCU 或危险指针等技术。据称,LeanStore 不会立即释放已移除的节点,而是将其返回对象池并递增版本计数器,从而实现安全复用并减少清理频率。`madvise(MADV_DONTNEED)` 可能提供一种两阶段回收策略,但评论中有人质疑其实际性能,因为系统调用、TLB 和内核开销会带来额外成本。 参与者还指出,宽松原子操作必须避免因撕裂更新而导致未定义行为,并且必须正确处理版本验证。总体而言,这篇文章被认为清晰且实用。

佛罗里达州一名女子被指控利用 Claude 写日记,并在其中写下计划袭击警长办公室,因此面临重罪指控。Anthropic 的安全系统标记了这篇日记,一名人工审核员认定其构成可信威胁,公司随后向执法部门报告。她被拘留时没有发生冲突,并依据佛罗里达州一项禁止以书面或电子形式威胁实施暴力的法律受到起诉。 这起事件凸显了将人工智能对话视为私人内容的局限性。Anthropic 表示,在紧急情况下,为防止死亡或严重伤害,公司可能披露用户信息。此前有报道称,审核 Microsoft Copilot 图像的承包商可以看到用户的提示词、上传的照片以及人工智能生成的编辑结果,其中可能包含令人不安的内容,这进一步加剧了人们对隐私的担忧。 此前已有多起诉讼,指控人工智能公司未报告与现实世界暴力行为有关的可疑对话。聊天机器人信息披露的法律责任仍是一个新兴问题。

SQLDoom 是一个从零开始移植的 1993 年《Doom》引擎版本,其游戏逻辑和渲染器完全在 CedarDB 中执行。精简的 Python/Pygame 客户端仅负责采集输入、以固定的 35 Hz 频率触发游戏逻辑帧,并显示 SQL 返回的 320×200 RGB 帧缓冲区。WAD 数据可以自然地映射为关系表,而 AI、移动、战斗、物品、门、投射物、动画、音效和扇区效果则通过约 5,900 行 SQL 和数据库函数实现。 渲染与模拟相解耦,并通过相机插值达到最高 60 FPS。其 SQL 渲染管线使用 BSP 排序、生成的像素扫描块、用于可见平面裁剪的窗口函数,以及用于深度解析的打包整数键。在 Ryzen 7 7840U 上,一个典型逻辑帧耗时 2.15 毫秒,观察到的最慢逻辑帧耗时 10.45 毫秒,远低于 Doom 所需的 28.6 毫秒时间预算。 数据库还便于进行数据驱动的模组开发,并提供事务一致性、身份认证、访问控制,以及四人多人游戏所需的一致性快照。SQLDoom 支持《Doom》第一集的分享版内容,并在 GitHub 上开源。

CedarDB 将原版《DOOM》移植到了大约 5,900 行 SQL 代码中,比其约 9,000 行的 C 语言实现更短,还新增了面向欧洲和美国的多人服务器。该项目被誉为一项工程壮举,同时也被视为数字艺术作品;不过,它似乎与 CedarDB 的查询规划技术密切相关。 这场讨论进一步延伸为对“SQL 能否作为通用编程环境”的辩论。支持者认为,数据库可以统一数据与业务逻辑,同时提供原子性、完整性约束,并便于使用生产数据的复制副本来进行测试。他们还列举了存储过程和函数在分析、制造及电信领域成功应用的案例。 批评者则警告称,复杂的数据库逻辑可能难以调试、版本管理、维护和扩展,尤其是在文档不足的情况下。他们还提到了死锁、工具有限、类型系统较弱,以及业务规则与数据库模式设计之间紧密耦合等问题。总体而言,评论者对这个移植项目印象深刻,但仍怀疑 SQL 能否在更广泛的场景中取代传统的应用程序代码。

请启用 JavaScript 和 Cookie 以继续。

《The Hacker News》的讨论聚焦于:生物质能否替代石化原料,同时不造成更大的环境危害。评论者认为,过度消费、社会身份信号、产品淘汰机制和电子垃圾才是更深层的问题,因此应延长设备使用寿命,并支持维修、翻新、以旧换新和回收。 交通运输被视为一个系统性问题:以汽车为中心的基础设施往往使步行、骑自行车或乘坐公共交通变得不现实,因此仅靠个人选择无法解决排放问题。增加对步行友好型社区和可靠公共交通的投资,可能减少汽车拥有量,同时不必让人们接受更低的生活质量。 生物燃料因效率低、补贴高且可能破坏土地而受到批评;同样面积的土地用于部署太阳能,通常能产生更多能源。总体上,人们更倾向于电气化,不过生物燃料在航空或能源安全方面仍可能有用。 植物基塑料并不天然可生物降解;以生物质制成的塑料可能像传统塑料一样长期存在,并加剧微塑料污染。总体而言,生物质对于化学原料和专用材料可能有价值,但减少浪费和推动能源系统电气化被认为影响更大。

访问受限 抱歉,您当前所在的地区无法访问此页面。感谢您的理解。

Kagi 已停止开发适用于 Linux 的 Orion 浏览器,但计划将现有成果开源。Hacker News 上的相关讨论被标记为重复,并链接到了 Kagi 的官方公告和更早的讨论。 评论者质疑 Orion 在 Linux 上使用的是哪种渲染引擎,并指出 Orion 的 iOS 和 macOS 版本基于 Safari/WebKit,因为 Apple 要求这些平台上的浏览器必须使用 WebKit。一些用户表示,Orion 在 iOS 上尤其有用,因为该平台对搜索引擎提供商的限制会使 Kagi 等服务受到限制。另一些用户则对 Kagi 没有将 Orion 在所有平台上开源感到失望,不过一名评论者表示,无论如何都会继续使用 Firefox。

新巴比伦和晚期巴比伦时期的宗教教育,并不是一门独立学科,也不以圣典为核心,而是精英书吏训练的一部分。富裕家庭的男孩通常在家中的学校学习,先掌握阿卡德语和苏美尔语的基础读写能力,再进阶学习高级文学,并接受专业学徒训练。除书写技能外,课程还传授神话、祭祀知识、社会价值观和帝国意识形态。 学生通过神祇名录、祷文、赞美诗和神话文本,了解庞大的众神体系,尤其重视马尔杜克。《卢杜卢尔·贝勒·内梅基》和《智慧箴言》等作品讲授神明的 characteristics、应有的虔敬、道德行为,以及面对疾病或不幸时的应对方式。《廷蒂尔》和《尼普尔纲要》将巴比伦和尼普尔描绘为神圣中心;奉献文书则让学习者接触实际的祭祀仪式。 这种教育为书吏和祭司日后从事学术、行政、医疗、占卜和祭祀服务奠定了基础。后来,这些专家运用所掌握的文字知识,在阿契美尼德和塞琉古统治时期保存或重塑宗教传统。对马尔杜克和巴比伦日益强调,可能有助于在外来帝国统治下维护巴比伦人的身份认同。

《黑客新闻》的一则讨论帖涉及《课堂上的神:第一千纪巴比伦的宗教与教育》。评论者争论宗教在历史上究竟是促进还是阻碍了科学探索。一些人认为,基督教帮助人们形成了理性且可预测的世界观,而实验性研究在一定程度上是针对原罪等观念而兴起的。另一些人则反驳称,教会机构也曾压制天文学、进化论等思想,科学是在希腊、犹太、基督教、波斯和伊斯兰社会广泛交流的过程中发展起来的。 另一场相关讨论涉及动物献祭和圣经教义,指出祭品中的肉通常会被分配,并非全部浪费;亚伯拉罕诸教的传统有时也更强调服从,而非仪式。多位参与者批评那些对宗教在历史中的作用所作的笼统判断,认为这些说法过度简化或不符合历史事实。 讨论还提到巴比伦的抄写学校,其中宗教文本可能同时具有信仰崇拜和行政管理用途,以及当前关于在公立学校教授“十诫”的争论。一段偏离主题的讨论提议利用宗教威胁来约束人工智能系统,但有人反对称,优化器只会把这种威胁视为另一种需要规避的约束。

在 Go 工作负载运行时,使用交换空间(swap)吸收内存峰值可能会造成明显干扰。Go 的垃圾回收器(GC)会在停止世界(stop-the-world)阶段反复读取持久化的运行时元数据。由于这些页面会被重复使用而不是释放,内核的页面老化机制可能会将它们换出到交换空间,从而迫使 GC 在所有 goroutine 都暂停期间处理同步的严重页面故障。 在配备 MGLRU 和 NVMe 的 Linux 6.8 上,GC 暂停时间的中位数约为 51 微秒,但最长暂停时间达到 40 毫秒。其中,39 毫秒用于处理 GC 内部记账期间发生的 228 次页面故障。此类暂停会显著增加尾部延迟,并推迟已完成 I/O 的处理。 内存分配密集的路径也受到了影响:构造一条 511 KiB 消息所需的时间,在 NVMe 上从 3–5 毫秒增加到 105 毫秒,在网络存储上则增加到 903 毫秒,不过这一额外开销仅影响执行内存分配的 goroutine。 结论是,交换空间本身并不一定有害,但将 Go GC 元数据换出到交换空间,可能会把存储延迟转化为全局停止世界延迟。在此次实验中,Go 1.26 的 Green Tea 垃圾回收器几乎没有带来改善。

一个 Go 服务经历了大约 40 毫秒的停止世界垃圾回收暂停,原因是内存压力已将 GC 元数据换出到磁盘。因此,这次延迟主要来自缺页,而不是产生垃圾的数量。 讨论中提出了几种可能的应对方案: - 确保有足够的 RAM,并将延迟 SLO 的达成以内存压力处于可接受范围内为前提。 - 在 GC 指标之外,跟踪主要缺页、内存压力和交换活动。 - 考虑禁用或调整交换、锁定内存,或使用 cgroup 限制。不过,禁用交换并不能消除换页:内核仍然可以回收文件映射的代码页和页缓存页。 - 通过预取、锁定 GC 元数据、页状态 API、基于区域的回收,或更深入地协调对象图与交换机制,改进运行时或操作系统集成。 - 认识到追踪式垃圾收集器会扫描仍然存活且可达的数据,因此即使分配速率较低,庞大的长期存活对象图仍可能带来高昂开销。 另外一场漫长的讨论围绕引用计数是否应归类为垃圾回收展开。它的主要实际缺点是原子更新开销、级联式释放和引用循环,而优点则是能够更早地回收资源。总体而言,评论者一致认为,任何内存管理策略都无法避免权衡取舍。

许多程序分析任务都可归结为求单调函数的固定点。在完备格上,塔斯基定理保证最小固定点和最大固定点都存在,但必须根据需求有意识地选择:从底元素开始迭代通常会逼近最小固定点,而从顶元素开始迭代则会逼近最大固定点。 死变量消除很好地说明了这一问题。将所有值都初始化为活跃,并反复删除不再活跃的值,通常只能得到不够理想的固定点,并可能遗漏循环以及其他无用计算。正确的方法是从返回、内存写入等可观察效果出发,将相关值反向标记为活跃,再正向传播活跃性;这样计算得到的是最大固定点。 罢工强制条件分析提供了一个现实示例。从已经参与的工会开始,不断扩充参与罢工的工会集合往往会趋向最小固定点,并可能导致不必要的死锁。若要找出满足所有条件的最大协同群体,就应从所有受强制条件约束的工会开始,反复删除未达到要求的工会,从而计算最大固定点。 保守初始化可以得到安全且可行的中间结果,并加快收敛速度,但可能牺牲完备性。因此,选择初始近似值——也就是选择最终要逼近的固定点——应当明确权衡准确性与性能。

黑客新闻 最新 | 往期 | 评论 | 提问 | 分享 | 招聘 | 提交 登录 《不动点与罢工强制措施》(2012) (pvk.ca) 17 分 由 luu 提交 1 天前 隐藏 | 往期 | 收藏 | 1 条评论 帮助 munchler 22 小时前 [–] 这是抽象数学直接影响现实情况的又一个很酷的例子。实际上,这里包含了两个不同的酷例子,而且都解释得很清楚。很棒! 回复 考虑申请 YC 2027 年冬季批次! 申请截至 11 月 2 日开放。 指南 | 常见问题 | 列表 | API | 安全 | 法律声明 | 申请 YC | 联系我们 搜索:

俄罗斯伊尔库茨克州卫生部门表示,据官员和媒体报道,一名实验室工作人员因鼠疫死亡后, 近200人被要求接受医学观察。这名27岁或28岁的员工在伊尔库茨克抗鼠疫研究所工作,据称她在打碎一支装有活菌的试管后感染了鼠疫。她出现严重肺炎,被送往舍列霍夫斯克住院治疗,随后接上呼吸机,并于周四死亡。 至少197名可能的接触者被隔离,其中100多人住在医院病房,舍列霍夫斯克医院也已被封闭。公众活动被取消,当局还就可能存在的卫生安全违规行为启动刑事调查。州官员表示,接触者均无症状,检测结果也呈阴性。据报道,这起病例属于肺鼠疫,但官方声明没有说明具体类型;邻近的布里亚特共和国没有报告疫情暴发。

**《河流突袭》(1982)**在浏览器中得到高度忠实的 Atari 2600 移植。玩家驾驶飞机沿程序生成的河流 endless 向上飞行,避开河岸、桥梁、轮船、直升机和喷气式飞机,同时应对迅速消耗的燃料。飞越燃料库可为油箱补充燃料,也可以将其击毁,获得 80 分。必须射击桥梁才能继续前进;撞毁会损失九条命中的其中一条,每获得 10,000 分便奖励一条新命。 原始 4 KB 卡带会使用确定性的 16 位随机数生成器,提前生成每个由 32 条扫描线组成的河流区块,因此每次游玩都会出现相同路线。河道在不同路线之间交替,包括笔直和蜿蜒路段,难度也会逐渐提高。 该项目没有使用模拟器,而是用 JavaScript 重新实现了卡带的 6502 运行逻辑,保留了其 128 字节内存、硬件碰撞检测、图形、音效,甚至一些未公开的特殊行为。原始 ROM 也会同时运行,以进行逐字节验证。测试结果显示,在 45,000 帧内没有出现任何差异,开场画面完全一致,并且 300,000 个河流生成器状态下的行为均完全匹配。

一个 Hacker News 项目向一款深受喜爱的 Atari 2600 游戏致敬:从原始 ROM 开始,逐条指令地反汇编并重新构建其游戏卡带。该链接引发了讨论,话题涉及疑似未披露的 LLM 协助、怀旧情绪,以及早期游戏能否吸引年轻玩家。 一些评论者认为,操控设计出色的老游戏具有一种如今鲜少被复刻的独特手感;另一些人则觉得 Atari 2600 的玩法较为浅薄,并认为 NES 才是吸引年轻玩家的实际分界线。技术讨论聚焦于 Atari 和 Nintendo 如何通过卡带芯片扩展基础硬件:Atari 的 DPC、SARA 和 Starpath Supercharger,以及 Nintendo 的 MMC 系列。尽管画面原始、功能有限,Atari 仍取得了惊人的成果,也一直被那些在它陪伴下成长的人亲切地记在心里。

更多

联系我们 contact @ memedata.com