查看: 3415|回复: 8

[通用发布] 简易的释放内存脚本

[复制链接]

路人党员

梦石
0
星屑
52
在线时间
2276 小时
注册时间
2010-12-30
回帖
3011
发表于 2014-4-12 11:00:40 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
主要是在界面切换的时候释放掉最吃内存的Bitmap==
  1. class Bitmap
  2.   alias clrram_init initialize unless defined? clrram_init
  3.   attr_reader :loaded_file
  4.   def initialize(*args)
  5.     @loaded_file = nil
  6.     if args[0].is_a?(String)
  7.       @loaded_file = args[0]
  8.     end
  9.     clrram_init(*args)
  10.   end
  11. end
  12. trace_var(:$scene){$__scene_changed = true}
  13. class << Graphics
  14.   alias clrram_freeze freeze unless defined? clrram_freeze
  15.   def freeze
  16.     clrram_freeze
  17.     if $__scene_changed
  18.       ObjectSpace.each_object(Bitmap) do |b|
  19.         b.dispose if !b.disposed? and b.loaded_file
  20.       end
  21.       $__scene_changed = false
  22.     end
  23.   end
  24. end
复制代码
本人擅长XP,如果有脚本或者Ruby方面的问题欢迎发电邮到engshun@1ppl.me咨询,本人很少检查电邮所以不一定会及时回复,本人不会直接出手解决问题只会提供一个方向,所以谢绝伸手党
梦石
0
星屑
50
在线时间
105 小时
注册时间
2013-2-7
回帖
72
发表于 2014-4-12 17:46:50 | 显示全部楼层
本帖最后由 jilei 于 2014-4-12 17:48 编辑

话说我放了三个同类型的脚本,一个防卡机,一个内存清理,还有一个就是你的,是不是太多了?
——————————————————————————————————————————————————————
主界面还看得到鼠标系统的鼠标,进入游戏后直接给清掉了。。。有待改进。。。

点评

。。。。。。好无力的回答  发表于 2014-4-13 08:25
本来就没说支持鼠标==  发表于 2014-4-12 23:46
回复

使用道具 举报

梦石
0
星屑
8026
在线时间
1051 小时
注册时间
2012-4-3
回帖
1270

开拓者

发表于 2014-4-13 04:35:23 来自手机 | 显示全部楼层
先赞一个。大地图因为吃内存的紧,有了清理确实减轻了不少负担。嗯……需要清理要打开菜单一次,不知道能结合转换场景来进行清理呢?
回复

使用道具 举报

梦石
0
星屑
50
在线时间
439 小时
注册时间
2013-3-2
回帖
657
发表于 2014-4-13 12:39:38 | 显示全部楼层
怎么切换地图时会闪烁?

曾经的美好已不在   吾只能独自回忆
【RMXP共享】50个脚本整合的系统
回复

使用道具 举报

梦石
0
星屑
50
在线时间
24 小时
注册时间
2014-3-2
回帖
28
发表于 2014-4-13 12:54:09 | 显示全部楼层
目测VA无效 不是用$scene控制场景的

评分

参与人数 1星屑 +10 收起 理由
taroxd + 10 我很赞同

查看全部评分

Request Time Out.
回复

使用道具 举报

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2014-4-13 17:19:04 | 显示全部楼层
本帖最后由 taroxd 于 2014-4-13 19:49 编辑

希望将来的RGSS能够自带这个功能~现在的RGSS3已经能自动释放场景里的窗口了,希望有朝一日可以彻底丢掉“dispose”啊~~

@喵呜喵5
我怕与默认脚本冲突,或者释放掉了Cache里的东西之类的……

点评

直接在scene_base里写一个呗?  发表于 2014-4-13 18:49
回复

使用道具 举报

故九江太守

梦石
0
星屑
314
在线时间
2158 小时
注册时间
2012-12-5
回帖
4323
发表于 2014-4-14 20:00:41 | 显示全部楼层
确定是无用的Bitmap吗?
回复

使用道具 举报

梦石
0
星屑
266
在线时间
2355 小时
注册时间
2009-3-13
回帖
2257

贵宾

发表于 2014-4-14 20:17:32 | 显示全部楼层
不手动释放不舒服
不是说释放最吃内存的 Bitmap 吗,怎么没见有判断哪个最吃呢
回复

使用道具 举报

梦石
0
星屑
8026
在线时间
1051 小时
注册时间
2012-4-3
回帖
1270

开拓者

发表于 2014-5-31 10:38:38 来自手机 | 显示全部楼层
本帖最后由 Im剑侠客 于 2014-5-31 10:39 编辑

恕我冒昧请求,内存清理默认执行条件是$_scene_changed = true ,也就是说只要scene改变,便开始清理内存了。问题也就有了,在菜单操作的时候,本身不占用太多内存的,但是也要清理,显得多余啦!希望能在scene改变的条件的基础上加入另外的判定条件,让内存清理成为自在可控的操作。(纠结于此,不能自己。)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部