古风汉服美女图集

GTA 5 祖传代码被修复,这位黑客喜提一笔“年终奖”

8次阅读

大厂加入 HiFi 圈:绿联发布单晶铜镀银耳机升级线,MMCX/0.78 接口可选

数码配件厂商绿联今日发布了该品牌首款 HiFi 耳机升级线。这款产品采用单晶铜镀银线芯,半透明 PTE 外皮,提供多种接口可供选择。官方表示,升级线音质均衡、解析高,佩戴舒适能减少听诊器效应。

来源:量子位,折磨全球无数 GTA 5 玩家的联机版超长加载时间问题,终于要修复了。,什么?R 星主动改善玩家游戏体验?不存在的。,打开 GTA 5 联机版,要跑 19.8 亿次 if 语句,一支烟的功夫游戏都加载不完。这堪称游戏开发史上最大的 ” 屎山 ” 代码,存在了 7 年,R 星从没想过要修复……,玩家对 GTA 5 联机版可谓又爱又恨,有人甚至破口大骂:,,直到一位黑客大哥路过,实在忍不了恶臭的代码,嘲讽完 R 星后,随手按了 ” 冲水键 “,直接将等待时间压缩 70%。,鉴于 R 星失误实在太低级太离谱,而这位老哥的方法又太有效,以致无数玩家称他 ” 功德无量 “。,如果平均给每个玩家节省 10 秒,全球 500 万玩家一天就能节约 5000 万秒,一年中,节约的总时间大概能有数十年。相当于挽救了十多个人的生命!,R 星这才坐不住了,赶忙官宣修复 bug,不但采用了黑客的方案,还大方的给他奖励了 1 万美元 ” 赏金 “。,黑客 ” 治病救人 “,不久前,量子位曾经介绍过黑客大哥通过逆编译器检查 GTA 5,并且重写代码,一下节约 70% 加载时间的故事。,先来前情回顾一下。,简单地说,就是 GTA 5 联机版加载时间长得过分,有超过 80% 的玩家要等 3 分钟以上,有的人甚至要等 15~20 分钟。,,一位黑客大哥实在忍不了,于是决定开扒 GTA 5 的代码,看看到底是哪里出了问题。,首先,他用 Windows 任务管理器,来判断联机版 GTA 5 在启动时,都调用了哪些计算机资源。,,在 1 分钟的时间分界线上,之前是加载的是单机和联机版通用的基础内容,之后是联机版独有的内容。,可以看到,联机版 GTA 5,加载时调用大量 CPU 资源至少长达 4 分钟之久,而同时,内存、GPU、硬盘的使用情况几乎没有明显变化。,所以,问题大概率出在代码上。,黑客大哥说:,我闻到一股烂代码的味道……,为了找出到底那一部分程序卡住了 CPU,他使用了工具 Luke Stackwalker,对 CPU 任务堆栈进行采样分析。,沿着调用栈往下走,发现问题出在一个 sscanf 函数上。,,sscanf 的功能是读取格式化的字符串中的数据,而在 GTA 5 中,它正在读取的是一个 10M 左右,有 63000 多个条目的 JSON 文件。,这个文件到底是干什么用的?黑客大哥推测,这可能是游戏内购商店的相关内容。,再看第二个问题,这是一个存储命令,对象是 item,具体是什么不得而知。,但是保存前,有一个 if 语句,逐一比较 item 内项目的哈希值,检查它们是否出现在某一列表中。,按照他计算,这一步 if,要执行(63000^2+63000)/2 = 1984531500 次!,没错,等待加载前的十多分钟里,GTA 5 用你的 CPU,执行了 19.8 亿次 if 命令。,如此简单粗暴的编程思路,让这位老哥哭笑不得:,既然对象有唯一哈希值,那为什么不用 hash map?,至于 R 星为什么不修正,有网友推测,最开始,

三星获得新订单:为谷歌开发下一代自动驾驶汽车芯片

三星电子(Samsung Electronics)已经开始着手为谷歌的下一代自动驾驶汽车芯片开发核心半导体部件。

if 的循环次数并没有这么多,而是随着开发,条目不断增多,最后到了积重难返的地步。,而之前的代码结构,谁也不愿意去动。,就是这样一个低级的失误,让全球玩家至今每次打开游戏,都要上演一遍 19.8 亿次的 if 循环……,这是不是堪称游戏开发史上最意外的 ” 屎山 ” 代码?,如何冲掉 ” 屎山 “,第一个问题,黑客大哥采用 hook 大法,不一一读取字符串,而是:,hook strlen” 缓存 ” 字符串起始和当前长度。如果在字符串范围内函数在此被调用,返回缓存的值。,至于 if 语句问题,就更直接了——完全跳过重复检查,利用 hash map 插入项目,因为这些值是唯一的。,最后的结果如下:,,现在,GTA 5 联机版加载,从原来的 6 分钟,下降到现在的 1 分 50 秒!,而且,他用的还是七八年前的硬件配置。CPU,是老而弥坚的 AMD FX-8350,2012 年上市,采用 ” 推土机 ” 架构,超频潜力惊人。而显卡,还是 GTX 1070。,随后他将修改好的代码打包,上传到了 Github,免费供玩家下载。,但是,他也提醒玩家,私自改动游戏文件,可能有被封号的风险。他本人也面临潜在的法律风险。,所以,他无论在博客还是 GitHub 上,都没有留下任何身份信息。,黑客大哥提前拿了一笔 ” 年终奖 “,但是现在黑客大哥不用担心了。,因为,这篇揭 R 星老底的帖子在全网大火,R 星不得不出面应对。,在和他联系后,R 星认可了他的改进方法,宣布在后续更新中修复相关问题,并且还慷慨的给他付了一笔 1 万美元的奖金。,,” 事了拂衣去,不留功与名 “,这位黑客大哥被无数玩家膜拜。当然大家也不忘再把 R 星拖出来 ” 鞭尸 “。,有人吐槽,GTA 5 仅 2020 年就买了 2000 万份,累计销量更是达到 1.4 亿份,R 星每年都能从这个项目上赚数亿美元,但是却不肯花几分钟去解决这么一个低级错误,实在可耻。,,还有人抨击 R 星几乎从不与玩家社区互动,玩家提的意见也从来充耳不闻,直到这次被被黑客嘲讽打脸,才不得不出来表态。,事后,黑客大哥还透露了一丝身份信息,原来他人在拉脱维亚。,拉脱维亚是波罗的海国家,原来是前苏联加盟国之一。在网上搜索相关信息,可以发现 ” 拉脱维亚黑客 “,几乎是和俄罗斯黑客一样传奇神秘的存在。,,有网友爆料,在拉脱维亚,普通程序员工资平均 3k~4k 欧元。,而他领到的这 1 万美元奖金,相当于三四个月工资了。,提前领了一笔 ” 年终奖 “,黑客大哥表示很开心。同时他也说,将密切关注 GTA 5 未来更新,一丝不苟的检查修复情况。,不知道他还能不能从 R 星领走更多奖金。,打开 GTA 5 联机版,要跑 19.8 亿次 if 语句,一支烟的功夫游戏都加载不完。这堪称游戏开发史上最大的 ” 屎山 ” 代码,存在了 7 年,R 星从没想过要修复……

海贝发布 Crystal 6 六单元动铁耳机:标配单晶铜线,2498 元

海贝音乐今日发布 HiBy Crystal 6 六单元动铁耳机,这款产品采用动铁耳机常见的半通明树脂外壳,四分频设计,提供了 3.5mm 和 4.4mm 两种线缆。耳机将于 3 月 19 日开售,原价 2698 元,首发价 2498 元。

正文完
 
admin
版权声明:本站原创文章,由 admin 2021-03-18发表,共计2617字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。