大神自己写代码让《GTAOL》载入时间缩短4分钟

文章图片
【大神自己写代码让《GTAOL》载入时间缩短4分钟】《GTAOL》是全球最受欢迎的网络游戏之一 , 是神作《GTA5》的在线模式 , 但它有一个公认的缺点:载入太慢 。
拉脱维亚程序员tostercx在个人博客中写道 , 他的电脑CPU是AMDFX-8350 , GPU是GeForceGTX1070 , 内存为8GB金士顿 , 但加载《GTAOL》需要6分钟 , 加载《GTA5》只需要1分10秒 。 
文章图片
根据一项针对271人的调查显示 , 只有51人的载入时间在1-3分钟 , 125人的时间为3-6分钟 , 还有95人的时间在6分钟以上 , 如下图所示:
文章图片
首先 , tostercx使用任务管理器查看加载《GTAOL》时的系统性能 , 结果发现了一件怪事:游戏最大限度地使用了CPU的一个核长达4分钟 , 但期间几乎没有使用磁盘、网络、GPU甚至内存 。 
文章图片
接下来 , tostercx使用了性能分析工具——LukeStackwalker , 以剖析《GTAOL》的代码 , 结果他发现里面有某种混淆、加密的东西 , 用乱码代替了大多数指令 。 
文章图片
事实证明 , 《GTAOL》花了很长时间解析一个JSON文件 , 它似乎包含了线上购物和升级的数据 。
然而 , 这个JSON解析器的设计很糟糕 , 其解析后会出现一个缓慢的重复数据删除例程 , 导致载入时间过长 。 
文章图片
文章图片
tostercx想了一个办法 , 他编写了一个.dll文件 , 并将其挂钩一些函数 , 最后注入游戏中 , 如下图所示:
文章图片
文章图片
经过测试 , 在编写并加入.dll文件后 , 游戏的载入时间为1分50秒 , 明显短于之前的6分钟 。
tostercx表示 , 要解决游戏载入问题很简单 , 对于R星的程序员不会耗费超过1天时间 , 但这是一个巨大的漏洞 , 不明白为什么R星这么多年都没有发现它 。
目前 , tostercx已制作补丁 , 并放在了github上 。
- 公务员|考取公务员后,退伍女兵给老部队写了封信
- 盐城一辆电动三轮在无人状态下突然自己启动,奥迪女车主躺枪
- 黄奕调侃秦昊“上对花轿嫁对娘”伊能静回怼:写稿人学会尊重女性
- 因打假赛,他一夜间身败名裂,颇具实力的游戏大神为何要去作死?
- 礼服挑选门道太多,从王霏霏的这套礼服说起,怎样穿出自己的优势
- 戍边战士写匿名信捐奖金,最后10个字太感人
- 新手小白看过来,不到10块钱教你自己更换凌渡车钥匙电池
- 法律:大妈勇斗小偷兴奋不已,一查大妈自己也偷过东西
- 虞书欣好敢说!内涵硬糖少女不火指责学员不努力,网友:想想自己
- 3000米之外一枪击毙?盘点史上5大神枪手
