每日HackerNews RSS

该文本详细介绍了一种令人惊讶的高效哈希表设计,使用开放寻址和线性探测,并采用2的幂次方作为表大小——这种方法被称作“可爱”且鲜为人知。它将键值对存储为64位整数(32位用于键,32位用于值),允许使用零来表示空槽,从而无需使用墓碑。 核心创新是“罗宾汉”策略:在插入期间,如果发生冲突,算法优先置换距离其理想(哈希)位置更远的键,以确保平衡的分布。查找操作在找到空槽或遇到“分数”较低的键(基于距离其理想位置的距离)时有效终止。 该设计针对64位架构进行了优化,利用了高效的位运算指令。它包括查找、插入(带返回值)、删除(无需墓碑)和迭代等函数。讨论了针对非随机键分布(使用哈希)和更大的键/值大小的调整,但并发和SIMD优化不在其范围内。最终,作者提倡这种设计作为许多用例的实用且高性能的解决方案。

## 黑客新闻讨论:小型、快速的哈希表 一场黑客新闻讨论围绕着最近发布的一个高度优化的哈希表实现([corsix.org](https://corsix.org))。作者的设计优先考虑速度,通过简洁性并利用特定的CPU特性来实现。 讨论的关键点包括: * **Cuckoo哈希与简洁性:** 许多评论员赞扬了简单的哈希表布局的有效性,指出避免指针追逐并保持数据在紧凑数组中可以提高性能,因为CPU缓存。Cuckoo哈希因其理论上的O(1)查找复杂度而受到强调。 * **优化技巧:** 用户分享了从看似微小的优化(如位交错坐标和删除冗余查找)中获得显著性能提升的经验。性能分析器有时可能会产生误导。 * **实现细节:** 所讨论的哈希表使用`uint64_t`存储键值对,可能避免填充问题。它实现了一个多重集合,并采用了一种带有独特约束的Robin Hood哈希策略。 * **内存考虑:** 该设计受益于能够分配一个大而可能稀疏的数组,尤其是在键值落在有限范围内时。 * **CPU特性:** 作者利用了诸如Zba之类的CPU扩展来优化操作。 这场对话强调了在构建高性能数据结构时,仔细的设计、性能分析以及理解硬件限制的重要性。

欧盟委员会已启动调查,针对谷歌利用在线内容为其人工智能驱动的搜索摘要和系统提供支持的行为。调查的重点是谷歌是否不公平地使用了网站和YouTube视频的数据来训练其人工智能,而未为出版商和创作者提供充分的补偿或退出选项。 人们担心谷歌的人工智能概述正在减少新闻网站的流量,从而影响其广告收入。批评人士认为,谷歌本质上是在利用创作者的作品来构建竞争性的人工智能产品,使在线出版依赖于允许这种使用。 谷歌为自己的AI功能辩护,称其具有创新性和益处,并声称调查可能会扼杀竞争。然而,欧盟强调建立尊重创作者权利和支持多元媒体环境的公平人工智能生态系统的重要性,并警告说,创新不应以牺牲基本价值观为代价。如果发现违规行为,调查可能会导致谷歌面临巨额罚款。

苹果公司的股价近几个月出现令人惊讶的反弹,表现优于Meta和微软等许多“人工智能重点”科技巨头。尽管苹果最初因其在人工智能方面采取的较慢方式而受到批评,但这种犹豫现在被视为一种优势。 投资者正在质疑其他科技公司在人工智能开发上的巨额支出,而苹果避免了这场代价高昂的“军备竞赛”,同时仍能将其定位为在技术成熟时将其整合到其产品中。这推动了苹果公司的市值达到4.1万亿美元,超过微软并逼近英伟达。 然而,这种成功使得苹果股票价格昂贵——相对于其历史平均水平,交易倍数很高。一些分析师,如克雷格·莫菲特,认为投资者为苹果的稳定性支付了过高的价格。即使是沃伦·巴菲特的伯克希尔·哈撒韦公司也削减了其在苹果公司的股份,并将部分资金转移到人工智能领域的Alphabet公司。尽管存在这些担忧,但许多人仍然看好苹果,认为它是在人工智能不确定性中的避风港,并预计随着人工智能走向主流,对其设备的需求将强劲。

启用 JavaScript 和 Cookie 以继续。

## Kaiju:用Go编写的新游戏引擎 Kaiju是一个新的、快速发展的2D/3D游戏引擎,使用Go语言构建,并由Vulkan支持。其核心目标是简单性和高性能,旨在超越Unity等成熟引擎——初步测试显示渲染速度高达9倍。 主要特性包括对Windows、Linux、Android的支持,以及(正在进行中)对Mac的支持,同时还集成了实验性的本地AI。尽管使用了垃圾回收语言(Go),但该引擎的设计旨在最大限度地减少GC的影响并保持稳定性,这对于面向公众的引擎至关重要。开发者可以直接用Go编写游戏,并计划支持Lua用于模组。 目前,基础引擎已经准备就绪,但编辑器仍在积极开发中,欢迎贡献。Kaiju优先考虑直接的开发体验,使其易于新贡献者上手,无需复杂的工具或语言。有关更新和更多信息,请访问项目的Discord和Twitter/X。

## Kaiju:一个新Go与Vulkan游戏引擎 - 摘要 Kaiju是一个用Go和Vulkan构建的通用2D/3D游戏引擎,内置编辑器。该项目在Hacker News上引发讨论,主要围绕其性能主张——特别是据称“比Unity快9倍”——以及它作为严肃游戏开发工具的可行性。 许多评论者对该基准测试表示怀疑,认为空场景FPS比较具有误导性,不能反映实际游戏开发场景。人们对Go的垃圾回收机制可能影响性能表示担忧,尽管作者对此提出了反驳。这场讨论凸显了创建可用引擎与*真正*制作游戏之间的困难,许多人指出引擎开发往往优先考虑技术挑战,而非设计和乐趣。 尽管存在怀疑,但人们对该项目仍有兴趣,特别是关于像Go这样现代垃圾回收语言在游戏开发中的潜力,以及将托管运行时与类似C的控制相结合的优势。然而,缺乏用Kaiju构建的可演示游戏仍然是一个主要的争议点。

## Pebble Index 01:永不遗忘灵感 是否曾有过这样的经历:想法刚涌现,瞬间就忘记了?Pebble 的 Index 01 是一款微型环状设备,旨在捕捉这些稍纵即逝的灵感。只需按下按钮并轻声说出你的想法,它就会立即发送到你的手机,并转换为文本,用于笔记、提醒或日历事件。 这款低调、始终在线的设备优先考虑隐私:仅在按下按钮时录音,在你的手机上使用开源软件本地处理数据,且无需订阅。它采用耐用的不锈钢结构,具有防水性能,电池续航时间长达*数年* – 无需充电!当电池最终耗尽时,这款戒指的设计便于回收。 现已开放预订,价格为 75 美元(2026 年 3 月起涨至 99 美元),全球发货。除了基本的记忆捕捉功能外,Index 01 还具有高度可定制性,允许用户触发操作,与 Notion 等应用程序集成,甚至可以通过语音命令和网络钩子探索高级功能。它有三种颜色和八种尺寸可供选择,兼容 iPhone 和 Android。

Gamma是一个极简的、可自托管的C预处理器,旨在创建简单、符合人体工程学的模板化数据结构,*无需*进行完整的C解析。它严格是C的超集,意味着现有的C代码仍然有效。 要使用Gamma,只需在克隆仓库并运行`make`后,将C编译器设置为“gc gcc”。它允许使用模板化代码,例如通用排序和向量实现,如提供的示例所示。 一个关键优势是其易于集成——Gamma足够小,可以直接嵌入到项目中,并与标准的C构建过程(目标文件、静态库、链接)兼容。 对于那些寻求更高级的类型反射能力的人,建议使用相关的项目MaC。Gamma由Matthew和Akshay创建,作为C模板化的一次实验。

## Gamma:一个C扩展实验 一篇Hacker News讨论围绕着Gamma,一种由masot创建的“无聊爱好”语言——尝试在不完全解析语言的情况下为C添加模板/泛型。目标是以最少的方式向C添加这些特性,保持编译器大小可控(与Chibicc相当,几千行代码)。 早期版本(Gamma)在实例化模板时,尤其是在存在循环依赖的情况下,难以正确复制类型定义。这促成了MaC,一个更强大的解决方案,它*确实*解析头文件以有效处理类型信息。 这些“不解析代码”方法的关键局限性是缺乏类型推断,阻碍了多重分派等特性。虽然探索了通过DWARF信息进行动态分派,但证明其过于复杂。该项目是由个人兴趣驱动的——对小型、易于理解的编译器的审美吸引力——而不是实际应用,作者建议在需要强大泛型的实际项目中选择D语言。

《魔兽争霸II:黑暗之潮》于1995年12月发布,在初代《魔兽:兽族与人类》的基础上进行了扩展,并显著推动了即时战略(RTS)游戏类型的发展。它引入了单位分组、右键命令、海军与空战、单位升级以及沉浸式的“战争迷雾”等关键特性。 尽管通过人类和兽族之间的镜像单位保持了阵营平衡(尽管兽族受益于强大的嗜血法术),《魔兽争霸II》展示了暴雪快速开发和不断演进的设计——最初融入了资源开采和奇幻冲突等元素。 该游戏经历了多次发布,包括扩展包(《黑暗之门之外》)、主机移植版(《黑暗传奇》)、用于在线游戏的《战网版》以及2024年的最新《重制版》。它广受好评,将暴雪推向了显赫地位,并与《命令与征服》一起推动了RTS游戏的繁荣。《魔兽争霸II》也孕育了一个充满活力的MOD社区,启发了War2xEd和Wardraft等工具,最终影响了暴雪在《星际争霸》和《魔兽争霸III》等未来游戏中加入强大的编辑器——甚至催生了《Dota》等游戏。

## 魔兽争霸II:黑暗之潮 - 30年后 最近的Hacker News讨论庆祝了《魔兽争霸II:黑暗之潮》30周年,回忆了它的影响和持久魅力。尽管被《星际争霸》的发布所掩盖,许多玩家仍然 fondly 回忆《魔兽争霸II》易于上手的游戏玩法、创新的地图编辑器以及涌现的策略——例如使用农场作为城墙。 对话强调了这款游戏在RTS类型中的重要性,它开创了现在司空见惯的功能。 许多评论员哀叹RTS游戏的衰落,认为其学习曲线陡峭和盈利模式面临挑战。 另一些人则指出像《星际争霸》和《最高指挥官》这样的成功游戏,以及MOBA作为该类型演变。 一个关键点是游戏通过早期互联网连接(如Kali和AOL)培养了强大的社区,从而实现了多人游戏体验。 许多人分享了关于拨号连接、软盘交换和专门在线社区的怀旧轶事。 尽管已经过时,《魔兽争霸II》仍然可以玩,并且受到那些体验过其创新精神和引人入胜的游戏玩法的人们的喜爱。

## 马自达的可携带行李箱车:90年代的创新 在20世纪90年代初,马自达工程师开发了一个非凡的概念:一种便携式三轮车,旨在快速穿梭于机场。它诞生于一项名为“Fantasyard”的内部竞赛,被称为“行李箱车”,使用袖珍摩托车的零件制造,并巧妙地装进一个标准硬壳的三森行李箱内。 组装大约需要一分钟,包括将车轮和座椅连接到箱子上。它由1.7 PS的二冲程发动机驱动,最高速度可达30公里/小时(19英里/小时),重量为32公斤。其设计灵感源自马自达早期的车辆,如马自达-Go人力车和MX-5的低重心。 虽然从未大规模生产,但制造了两个版本——一个用于美国,一个用于欧洲——欧洲型号于1991年法兰克福车展上展出。美国版本至今仍存在,而欧洲原型车不幸丢失。行李箱车仍然是马自达创新精神和对实用、小型化交通工具关注的独特例子。

启用 JavaScript 和 Cookie 以继续。

更多

联系我们 contact @ memedata.com