首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

《GTAOL》是全球最受欢迎的网络游戏之一,是神作《GTA5》的在线模式,但它有一个公认的缺点:载入太慢。

拉脱维亚程序员tostercx在个人博客中写道,他的电脑CPU是AMD FX-8350,GPU是GeForce GTX 1070,内存为8GB 金士顿,但加载《GTAOL》需要6分钟,加载《GTA5》只需要1分10秒。

根据一项针对271人的调查显示,只有51人的载入时间在1-3分钟,125人的时间为3-6分钟,还有95人的时间在6分钟以上,如下图所示:

首先,tostercx使用任务管理器查看加载《GTAOL》时的系统性能,结果发现了一件怪事:游戏最大限度地使用了CPU的一个核长达4分钟,但期间几乎没有使用磁盘、网络、GPU甚至内存。

接下来,tostercx使用了性能分析工具——Luke Stackwalker,以剖析《GTAOL》的代码,结果他发现里面有某种混淆、加密的东西,用乱码代替了大多数指令。

事实证明,《GTAOL》花了很长时间解析一个JSON文件,它似乎包含了线上购物和升级的数据。

然而,这个JSON解析器的设计很糟糕,其解析后会出现一个缓慢的重复数据删除例程,导致载入时间过长。

tostercx想了一个办法,他编写了一个.dll文件,并将其挂钩一些函数,最后注入游戏中,如下图所示:

经过测试,在编写并加入.dll文件后,游戏的载入时间为1分50秒,明显短于之前的6分钟。

tostercx表示,要解决游戏载入问题很简单,对于R星的程序员不会耗费超过1天时间,但这是一个巨大的漏洞,不明白为什么R星这么多年都没有发现它。

目前,tostercx已制作补丁,并放在了github上。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210301A0E57100?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券