请教gms2垃圾收集处理的问题
gamemaker吧
全部回复
仅看楼主
level 13
Venus🔥 楼主
在提问贴里发了一个,应该帖子沉下去了没人看见,我在这里重新发一个吧。
关于gc_target_frame_time()的用法和下面问题的解决方法。最近发现,房间里大概有200个模型(固定数量),刚一开始帧数可以维持到500帧左右,但随着时间增长会慢慢降低帧数。我调出show_debug_overlay(1)发现蓝色条垃圾收集器越来耗时越长。教程推荐用gc_target_frame_time()函数来控制,但完全看不懂教程表达的意思,所以来请教。另外经过测试让垃圾收集器增长时间的代码图片。
2022年09月08日 07点09分 1
level 13
Venus🔥 楼主
问题已解决。yoyo终于干正事了,更新后就把这个问题解决了。话说为啥我遇到的都是这么冷门的问题[阴险]
2022年09月09日 02点09分 2
大概因为别人在做内容,你在试(没啥人用的)功能
2022年09月13日 01点09分
@q糖豆p 如果是空房间啥都没有,如果到3000fps(或是超过一定帧数)也会出现这种情况
2022年09月13日 02点09分
level 13
Venus🔥 楼主
更新一下帖子,后来经过各项测试发现更新gms没用,这必须手动收集垃圾才可以。你的游戏是锁定60帧或者场景obj不多的话基本可以忽略这个问题,如果相反的话那就在create里先禁用垃圾收集器,然后在步结束里面写上gc_collect(),必须写个延迟,不然收集太频发会影响帧数。话说这很奇怪,一开始我也以为是obj某个事件造成的内存泄露,后来经过无数测试才发现和帧数关系非常大,就算房间就一个obj,当帧数到好几千也会出现这种情况(视配置而定),后来经过研究初步发现,traversal_time这个变量不断增加导致的此情况,而这种现象的最终会导致程序闪退(我估计可能没人盯着程序发呆十多分钟然后发现退出的)。以上结论提供给新手,大佬完全可以无视。虽然是
单机贴吧
,还是发表一下吧。
2022年09月13日 02点09分 3
哦对了,还有一种情况,你每次开机运行测试时垃圾收集器耗时有可能涨的特别快,1分钟就能看出蓝条明显增长,还有可能增长非常缓慢,好几分钟才能看出来。具体原因未知,这是随机的。
2022年09月13日 03点09分
1