赞 | 287 |
VIP | 11 |
好人卡 | 74 |
积分 | 227 |
经验 | 281171 |
最后登录 | 2024-12-3 |
在线时间 | 9422 小时 |
Lv5.捕梦者 (暗夜天使) 只有笨蛋才会看到
- 梦石
- 1
- 星屑
- 21711
- 在线时间
- 9422 小时
- 注册时间
- 2012-6-19
- 帖子
- 7119
|
本帖最后由 喵呜喵5 于 2023-11-7 10:47 编辑
查一下RM的内存占用情况,按我自己的经验这种状况一版是大图加载过多把内存爆了
RM为了加速图片的读取,所有已经加载过的图片都会存在缓存里(并且不会去清理),因此游戏长时间运行时占用的内存会越来越大,大到继续加载下一张图片失败时游戏就崩了
- class << Cache
- alias m5_20231106_normal_bitmap normal_bitmap
- def normal_bitmap(path)
- m5_20231106_normal_bitmap(path)
- if path.start_with?("Graphics/Pictures/")
- @m5_20231106_cache ||= {}
- @m5_20231106_cache[path] = true
- end
- @cache[path]
- end
- def m5_20231106_clear
- @m5_20231106_cache ||= {}
- @m5_20231106_cache.keys.each do |key|
- @cache[key].dispose
- @cache[key] = nil
- end
- @m5_20231106_cache.clear
- GC.start
- end
- end
复制代码
你可以插入这段脚本,然后挑选合适的时机(例如游戏每个章节结束后)在事件脚本中执行 Cache.m5_20231106_clear ,它会把加载到内存中的所有 Graphics/Pictures/ 目录下已经加载过的文件的缓存都清空,防止爆内存 |
评分
-
查看全部评分
|