侠盗猎车手|史上牵扯最广“屎山”代码:if循环19.8亿次,7年无人敢动!终于被修复了!

侠盗猎车手|史上牵扯最广“屎山”代码:if循环19.8亿次,7年无人敢动!终于被修复了!

文章图片

侠盗猎车手|史上牵扯最广“屎山”代码:if循环19.8亿次,7年无人敢动!终于被修复了!

文章图片

侠盗猎车手|史上牵扯最广“屎山”代码:if循环19.8亿次,7年无人敢动!终于被修复了!

嗨 , 大家好

这里是汐仔
大家玩过“侠盗猎车手5”(简称GTA 5)吗?这个游戏是由Rockstar Games游戏公司(被玩家称作R星)出版发行的一款围绕犯罪为主题的开放式动作冒险游戏 。
它从2013年诞生至今 , 备受全球玩家的喜欢 , 多年前 , 《侠盗猎车5》刚登陆PS3和Xbox 360的时候 , 无数玩家兴奋得彻夜难眠 。

据说这款游戏仅2020年就卖了2000万份 , 累计销量更是达到1.4亿份 , 从销售量上就可以看出这个游戏有多让人上头!
但这样一个让人上头的游戏 , 在其程序中却暗藏一个“屎山”代码 , 并且7年间没人敢动!
在2020年 , 无数玩家在网络上吐槽抱怨:进入GTA 5花费的时间太长了 , 少则5、6分钟 , 多则20分钟 , 对于急切想开始游戏的玩家来说 , 这么长的等待时间实在是太长了
如果平均给每个玩家节省10秒 , 全球500万玩家一天就能节约5000万秒 , 一年中 , 节约的总时间大概能有数十年 。 相当于挽救了十多个人的生命!
于是一位黑客大佬实在忍受不了这么长的等待时间 , 嘲讽一波之后直接将等待时间压缩70% 。 后续还把代码文件po在了网上 。

这篇揭R星老底的帖子在全网大火后 , R星不得不出面应 。 在和黑客大哥联系后 , R星认可了他的改进方法 , 宣布在后续更新中修复相关问题 , 并且还慷慨的给他付了一笔1万美元的奖金 。
这一事件也引来不少网友的吐槽 , 很多人说R星每年都能从这个项目上赚数亿美元 , 但是却不肯花几分钟去解决这么一个低级错误 , 实在可耻 。

据悉 , R星到现在只是官宣会修复这一代码 , 但还没有实际修改这一代码 , 至今这个代码还在各个玩家的CPU上运行!
类似于GTA 5游戏中循环19.8亿次的if语句 , 就被大家称作为“屎山”代码 。
所谓“屎山” , 是程序员间流传的一个梗 , 指陈年累月且复杂低效的代码 , 因为改动成本巨大 , 所有人避之不及 。

换个通俗易懂的比喻 , 你是一名装修工人 , 掌握各种装修技能 。 一位房主找到你 , 说他的二手别墅有问题 , 有一面墙经常漏水 。
当你一番摸索之后 , 发现这别墅整体就是个豆腐渣工程!墙上所用的灰是一种已经过时很久的质量很差的材料 , 你的库里没有这种材料 , 但是出于成本考虑房主不可能拆了重盖 。 于是你用了一种比较接近的但质量更好的材料补上了 。
由于原本是豆腐渣补丁用好材料可能跟豆腐渣原材料产生冲突根本用不了只能补相同的豆腐渣材料 。
但补好后过了几天房主打电话问你 , 为什么补上的那一块色差太大?你跑过去一看 , 确实有色差 , 便告诉房主除非把整面重新刷一次 。

房主很恼火表示:你再去找一个这种颜色的材料不就好了?你说我的库房没有 , 房主说:整个重新刷不是不行 , 钱无所谓 , 太麻烦 , 时间太久 , 我还要住人 。 这样 , 我多给你点钱 , 你帮我到处找找同样的材料 。
于是你用了两天时间跑遍了这个城市大小小的建材店 , 终于找到了一个二手同厂的半罐材料 , 当你把那一片补好以后拿着满意的房主给了你的500块钱 , 开始思考:我TMD这是在干嘛呢?
当你收完钱离开的时候 , 一块墙皮缓缓飘落......
一不小心又到底部了 。

推荐阅读