我如何将GTA Online的加载时间减少70%
像GTA V这样的摇钱树出现这种问题已有6年以上,这是绝对令人难以置信的(也是无法原谅的),事实证明这是如此简单。
我不同意这个兄弟姐妹的评论,他说这个问题看起来很简单,而且我们缺少上下文。
仅在2017年,仅这种在线游戏模式就赚了10亿美元。
将两个功能从6分钟的加载时间调整到不到2分钟,这是值得精打细算的任何开发人员都可以在配备了良好分析器的此类代码库中完成的工作。
相反,没有源代码的人设法对加载了反作弊措施的模糊可执行文件执行此操作。
这个问题是事实造成的Rockstar的过度微交易策略(JSON造成这一瓶颈的10MB都可以使用微交易物品)是在顶部的樱桃。
(是的,我可能还很咸,因为他们的母公司不公正地使用了DMCA re3(https://github.com/GTAmodding/re3),这是GTA III和Vice City的反向工程版本。已有20年历史了游戏。如果不购买原始游戏,这甚至是无法玩的。)
>这个问题是由Rockstar过度的微交易政策(导致此瓶颈的10MB JSON是所有可用的微交易项)引起的,这一事实是最重要的。
值得的是,10MB的JSON并不多。将文章中的示例条目复制63000次(用uuid4替换“ key”以实现唯一性)会产生11.5MB JSON。
反序列化JSON,然后将每个条目插入字典(按键索引)中,在Python中需要450毫秒。
但是正如布鲁斯·道森(Bruce Dawson)经常指出的那样,二次行为是最有效的方法,因为它“足够快就能投入生产,而足够慢就可以落到生产阶段”。这里的赔率是在开发期间只有几十个或几百个项目,因此没有人注意到球超过几千个时它会变慢。
加上加载时间通常是您一开始就忽略的一件事,只需开始会议,喝咖啡或小便,然后等到回来时就加载了。尤其是在质量检查人员通知了缓慢的加载时间六次之后,开发人员(使用快速机器并可能有较小的开发数据集)可以“正常工作”,而质量检查人员只是放弃了。