在近期,我的服务器中运行HLDS时候经常会遇到这个问题
我做了一个大灾变模式
但这个模式会导致这个蜜汁问题,这不是我第一次遇到 在很久以前我也遇到过这种问题,这个错误崩溃
是我无论如何都想解决的,但由于那时不清楚怎么办,所以这个问题就一拖再拖
在我的经验中,这可能是我用的数组太多了,导致内存不够,但当我把数组全部优化后 依然有这个问题,说明问题不在数组那边(也可能是,但这不是主要问题)
我们看看崩溃错误是什么:Cache_TryAlloc ,Try大概是尝试的意思,但Alloc是什么意思 我那时候真是不懂
我以为是内存溢出了,那这种情况下唯一的解决方法就是减少代码来优化插件,也可以更换一个大内存的服务器
比如64GB内存的,但当我换真正换了一个大内存的服务器后,发现问题依然存在,依然会崩溃
所以此时我已经考虑不是服务器的问题了,就是代码里面有什么东西有异常
经过我在上次百度贴吧提问后 :
https://tieba.baidu.com/p/5030036002
我看见了来自 「展鸿丶」这样的回复:
结合我所遇到的那个崩溃问题,很明显我插件中的Alloc超出限制了,那么Alloc是什么
百度的解释是:申请
光是这样还不够,我去问了许多dalao,最终得到了答案
>> 【在引擎的字符串池里添加一个字符串,返回index】
那如果已经知道原因了,那是哪里出现的问题
答案就是: 【创建实体的写法有问题】
我之前的写法是这样
相信很多制作创建实体的哥哥、姐姐们 都会这样去写代码,因为这样写看上去是最标准的,而且创建出来的实体也没有异常,但这样创建会出现一个问题 那就是 【占用越来越多的 Alloc】
是的,如果你没有理解错的话,这样就代表创建一个实体占用一个Alloc,我们已知Alloc不是无限的,所以
如果有需要创建许多实体并且还需要无限生成,比如说:射出去的 弩箭、抛物线榴弹、追踪导弹、各种各样的需要用实体来实现的效果,都会越来越多的占用Alloc,直到崩溃
如果我们之前的写法有问题,那么解决方法是什么?
那就是先注册一个Alloc,以后创建实体的时候只使用那个 Alloc 即可,这样以后无论创建多少个实体,只会占用一个Alloc,不会崩溃(关于这一点,如果有持有不同的意见,欢迎回复告诉我)
那么优化后的代码是怎么样的?
小灰将学到的经验分享给大家,希望大家为了自己的插件更多的优化,为了服务器更稳定的运行
感谢:@小飞CS 、@展鸿丶 的帮助
Q群:139659650
By 小灰灰
我做了一个大灾变模式
但这个模式会导致这个蜜汁问题,这不是我第一次遇到 在很久以前我也遇到过这种问题,这个错误崩溃
是我无论如何都想解决的,但由于那时不清楚怎么办,所以这个问题就一拖再拖
在我的经验中,这可能是我用的数组太多了,导致内存不够,但当我把数组全部优化后 依然有这个问题,说明问题不在数组那边(也可能是,但这不是主要问题)
我们看看崩溃错误是什么:Cache_TryAlloc ,Try大概是尝试的意思,但Alloc是什么意思 我那时候真是不懂
我以为是内存溢出了,那这种情况下唯一的解决方法就是减少代码来优化插件,也可以更换一个大内存的服务器
比如64GB内存的,但当我换真正换了一个大内存的服务器后,发现问题依然存在,依然会崩溃
所以此时我已经考虑不是服务器的问题了,就是代码里面有什么东西有异常
经过我在上次百度贴吧提问后 :
https://tieba.baidu.com/p/5030036002
我看见了来自 「展鸿丶」这样的回复:
结合我所遇到的那个崩溃问题,很明显我插件中的Alloc超出限制了,那么Alloc是什么
百度的解释是:申请
光是这样还不够,我去问了许多dalao,最终得到了答案
>> 【在引擎的字符串池里添加一个字符串,返回index】
那如果已经知道原因了,那是哪里出现的问题
答案就是: 【创建实体的写法有问题】
我之前的写法是这样
相信很多制作创建实体的哥哥、姐姐们 都会这样去写代码,因为这样写看上去是最标准的,而且创建出来的实体也没有异常,但这样创建会出现一个问题 那就是 【占用越来越多的 Alloc】
是的,如果你没有理解错的话,这样就代表创建一个实体占用一个Alloc,我们已知Alloc不是无限的,所以
如果有需要创建许多实体并且还需要无限生成,比如说:射出去的 弩箭、抛物线榴弹、追踪导弹、各种各样的需要用实体来实现的效果,都会越来越多的占用Alloc,直到崩溃
如果我们之前的写法有问题,那么解决方法是什么?
那就是先注册一个Alloc,以后创建实体的时候只使用那个 Alloc 即可,这样以后无论创建多少个实体,只会占用一个Alloc,不会崩溃(关于这一点,如果有持有不同的意见,欢迎回复告诉我)
那么优化后的代码是怎么样的?
小灰将学到的经验分享给大家,希望大家为了自己的插件更多的优化,为了服务器更稳定的运行
感谢:@小飞CS 、@展鸿丶 的帮助
Q群:139659650
By 小灰灰