Project1
标题:
求一个整理内存的脚本
[打印本页]
作者:
我海市蜃楼
时间:
2010-8-22 17:17
标题:
求一个整理内存的脚本
在用远景做地图的时候会发现电脑内存会越来越高,请问有没有真理系统内存的脚本?
作者:
光的圆周率
时间:
2010-8-22 17:43
#==============================================================================
# ■ Memories_Exchange
#------------------------------------------------------------------------------
# 将内存中不必要的空间释放到虚拟内存中。
#==============================================================================
class Memories_Exchange
#--------------------------------------------------------------------------
# ● 初始化对像
# ● ● ● 尽量减少调用次数● ● ●
#--------------------------------------------------------------------------
def initialize()
$SetProcessWorkingSetSize = Win32API.new("kernel32", "SetProcessWorkingSetSize", 'lll', 'l')
$GetCurrentProcess = Win32API.new("kernel32", "GetCurrentProcess", 'v', 'l')
$SetProcessWorkingSetSize.call ($GetCurrentProcess.call, -1, -1)
end
end
复制代码
效果待测,尽量不要调用
作者:
luowx
时间:
2010-8-22 17:56
提示:
作者被禁止或删除 内容自动屏蔽
作者:
我海市蜃楼
时间:
2010-8-22 20:27
作者:
我海市蜃楼
时间:
2010-8-22 20:35
不怎么管用啊
作者:
trentswd
时间:
2010-8-22 22:00
{:nm_7:}放到虚拟内存只会变慢吧
一般来说是要把rm的cache清理一下,好像是clear?我忘了……
作者:
光的圆周率
时间:
2010-8-22 23:08
= =Lz要的是整理内存嘛,这么做可以回收一部分内存,貌似MSDN是这么说的
作者:
八云紫
时间:
2010-8-22 23:11
感觉效果不大, VX 自己建立了一个 Cache 保存图片.
Cache.clear;
作者:
紫苏
时间:
2010-8-23 00:54
SetProcessWorkingSetSize(hProcess, -1, -1) 的用法是(尽可能多地)清空 hProcess 标识的进程的虚拟地址空间里的页面,供给系统核心或系统上的其它进程使用,但当某个页面内存已经被该进程占用时,当然就不会把这个页面从地址空间里移除了,否则后果可想而知
RM 的 Cache 没有容量限制,对于比较庞大的游戏,游戏进行一段时间后不但内存负荷巨大,同时哈希碰撞率也会大大地增加,有大量只用过一次的位图闲置于内存中,降低了真实 CPU Cache 的命中率,完全与了 Cache 设计的初衷背道而驰。可能的解决方案是学主流 CPU Cache,用 LRU 算法记录使用次数最少的 Cache 块,固定其容量,这样在一个快速缓存区中维护的是游戏中使用次数最多的位图
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1