查看: 2840|回复: 8

[已经过期] 求一个整理内存的脚本

[复制链接]
梦石
0
星屑
466
在线时间
828 小时
注册时间
2009-5-31
回帖
71
发表于 2010-8-22 17:17:49 | 显示全部楼层 |阅读模式

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

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

×
在用远景做地图的时候会发现电脑内存会越来越高,请问有没有真理系统内存的脚本?
梦石
0
星屑
116
在线时间
192 小时
注册时间
2008-5-11
回帖
506
发表于 2010-8-22 17:43:24 | 显示全部楼层
  1. #==============================================================================
  2. # ■ Memories_Exchange
  3. #------------------------------------------------------------------------------
  4. #  将内存中不必要的空间释放到虚拟内存中。
  5. #==============================================================================
  6. class Memories_Exchange
  7.   #--------------------------------------------------------------------------
  8.   # ● 初始化对像
  9.   #    ● ● ● 尽量减少调用次数● ● ●
  10.   #--------------------------------------------------------------------------
  11.   def initialize()
  12.     $SetProcessWorkingSetSize = Win32API.new("kernel32", "SetProcessWorkingSetSize", 'lll', 'l')
  13.     $GetCurrentProcess = Win32API.new("kernel32", "GetCurrentProcess", 'v', 'l')
  14.     $SetProcessWorkingSetSize.call ($GetCurrentProcess.call, -1, -1)
  15.   end
  16. end
复制代码
效果待测,尽量不要调用

点评

囧 这样只会越来越慢  发表于 2010-8-23 12:42
9
回复

使用道具 举报

头像被屏蔽
梦石
0
星屑
50
在线时间
0 小时
注册时间
2010-8-21
回帖
122
发表于 2010-8-22 17:56:08 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

梦石
0
星屑
466
在线时间
828 小时
注册时间
2009-5-31
回帖
71
 楼主| 发表于 2010-8-22 20:27:31 | 显示全部楼层

评分

参与人数 1星屑 -20 收起 理由
八云紫 -20 请不要发春表情回复

查看全部评分

回复

使用道具 举报

梦石
0
星屑
466
在线时间
828 小时
注册时间
2009-5-31
回帖
71
 楼主| 发表于 2010-8-22 20:35:18 | 显示全部楼层
不怎么管用啊
回复

使用道具 举报

梦石
0
星屑
80
在线时间
386 小时
注册时间
2007-7-27
回帖
4075

开拓者

发表于 2010-8-22 22:00:04 | 显示全部楼层
{:nm_7:}放到虚拟内存只会变慢吧
一般来说是要把rm的cache清理一下,好像是clear?我忘了……
吸吸
回复

使用道具 举报

梦石
0
星屑
116
在线时间
192 小时
注册时间
2008-5-11
回帖
506
发表于 2010-8-22 23:08:54 | 显示全部楼层
= =Lz要的是整理内存嘛,这么做可以回收一部分内存,貌似MSDN是这么说的
9
回复

使用道具 举报

神隐的主犯

梦石
0
星屑
553
在线时间
271 小时
注册时间
2008-2-22
回帖
7534

贵宾

发表于 2010-8-22 23:11:27 | 显示全部楼层
感觉效果不大, VX 自己建立了一个 Cache 保存图片.

Cache.clear;

《天空之城 —— 破碎的命运》
回复

使用道具 举报

梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
回帖
1912
发表于 2010-8-23 00:54:48 | 显示全部楼层
SetProcessWorkingSetSize(hProcess, -1, -1) 的用法是(尽可能多地)清空 hProcess 标识的进程的虚拟地址空间里的页面,供给系统核心或系统上的其它进程使用,但当某个页面内存已经被该进程占用时,当然就不会把这个页面从地址空间里移除了,否则后果可想而知
RM 的 Cache 没有容量限制,对于比较庞大的游戏,游戏进行一段时间后不但内存负荷巨大,同时哈希碰撞率也会大大地增加,有大量只用过一次的位图闲置于内存中,降低了真实 CPU Cache 的命中率,完全与了 Cache 设计的初衷背道而驰。可能的解决方案是学主流 CPU Cache,用 LRU 算法记录使用次数最少的 Cache 块,固定其容量,这样在一个快速缓存区中维护的是游戏中使用次数最多的位图
回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部