a702|R星程序员这么水?10M的文件被读取20亿次,最后被黑客搞定!( 二 )
你抽一根烟的功夫,你电脑的CPU把这段代码悄悄执行了将近20亿次。更加噩梦的是,如果R星在商店里增加新东西,这段代码的执行次数还会以指数级进行增加!
小弟打个比喻,这感觉大概就像是,你本来和妹子的约会地点10分钟就能到,结果你脑子秀逗了,在家门口来回转圈了19.8亿次,才去找妹子,让妹子硬生生多等了你60分钟。
文章插图
不过非常可疑的是,从GTA5上线至今R星竟然从来没有考虑过优化这段代码。黑客大佬又在伴随着头发掉落的声音独自研究起这段反编译后的代码,发现了一个致命的问题,就是这个文件的读取明明存在着更有效率的方法。
文章插图
于是这位黑客大佬使用了代码中的hook strlen+hash map的方法,将这个文件的读取和储存过程进行了优化。
如果让小弟用“人话”来描述就是,把这个文件看做一个小区,每个数据看成每户人家,cpu想要做人口普查(读取数据),可以根据直接找到对应的的门牌号然后进行数据读取,再用小本本记录下来(储存数据)。下次想要再读取这家内容,直接看本本,不用每家每户再敲一次门,大大提升了数据的读取和存储效率。
文章插图
也就是这个方法的添加,自己的游戏启动现在只需要1分50秒就能加载完成,相比较之前的6分钟效率提高了70%。那么相比较来看,之前R星的这段祖传代码,完全就是“屎山”(比喻极其糟糕的代码)。
文章插图
文章插图
这位大佬还把这段程序开源放在了github上,玩家如果需要可以自行下载。
文章插图
而且有意思的是,在这段反编译后的源码中,竟然出现了大量的TODO字样,一般在IT公司中这些都是给实习生或者新人做的工作,国外网友打趣道:这家伙竟然发现了R星分配给了实习生的活啊!
文章插图
之后这位黑客大佬的行为在国外论坛和新闻上被广泛传播,很多玩家表示想要给大佬打CALL,并强烈建议大佬开通打赏功能,因为这件事实在是解决了大家一个扎心的痛点。更有人建议作者给R星发邮件。
文章插图
不过大佬表示现在R星肯定已经看到了,这样做可能会让一部分人陷入麻烦,在社交媒体上公布已经足够了。
- 马力欧派对:超级巨星|Fami通新一周销量榜出炉《马力欧派对》登顶
- 18888金币|攒够18888买谁青铜买宫本,钻石买猴子,大神买他王者51星起步
- 亚运会|王者荣耀入选亚运会,登录即送多重好礼,牛魔制霸全明星限时返场
- 孟子坤|王者荣耀全明星公益赛,赵让联手和孟子坤,挑战KS主播
- 韩国队|EDG夺冠,素人朋友圈和明星都在刷屏,到底是狂欢还是“发疯”
- 王俊凯|英雄联盟手游全新活动:明星召唤师和你一起“峡谷竞技挑战”
- 油管|GTA6一词被在油管被R星禁 玩家想各种对策 名称奇怪的出现
- 幽默|《狂野星球之旅》测评:明亮幽默下的内核,是对荒诞和现实的思考
- 司马懿|弈星即将重做完成,新版美男子建模帅哭,轮到司马懿玩家笑了
- 英雄联盟|英雄联盟手游全新活动:明星召唤师和你一起“峡谷竞技挑战”