X xiao_chenke Unregistered / Unconfirmed GUEST, unregistred user! 2005-10-24 #1 我用socket写了个服务,不停的向外发数据,写了一个队列线程来组织要发的数据,运行中内存不停的在涨,每次涨的不多,但二三天后系统就开始慢下来了,我查了,没有内存泄露,也用memproof看了,看不出什么问题,我该怎么办呀? 救命呀!!!!!
我用socket写了个服务,不停的向外发数据,写了一个队列线程来组织要发的数据,运行中内存不停的在涨,每次涨的不多,但二三天后系统就开始慢下来了,我查了,没有内存泄露,也用memproof看了,看不出什么问题,我该怎么办呀? 救命呀!!!!!
X xiao_chenke Unregistered / Unconfirmed GUEST, unregistred user! 2005-10-24 #2 我用socket写了个服务,不停的向外发数据,写了一个队列线程来组织要发的数据,运行中内存不停的在涨,每次涨的不多,但二三天后系统就开始慢下来了,我查了,没有内存泄露,也用memproof看了,看不出什么问题,我该怎么办呀? 救命呀!!!!!
我用socket写了个服务,不停的向外发数据,写了一个队列线程来组织要发的数据,运行中内存不停的在涨,每次涨的不多,但二三天后系统就开始慢下来了,我查了,没有内存泄露,也用memproof看了,看不出什么问题,我该怎么办呀? 救命呀!!!!!
W windcowboy Unregistered / Unconfirmed GUEST, unregistred user! 2005-10-24 #3 用这个sdk的函数吧,你能看的懂的. SetProcessWorkingSetSize
S skyccf Unregistered / Unconfirmed GUEST, unregistred user! 2005-10-24 #4 把下面的过程放到一个Timer中,每隔一段时间执行一次,如5秒。 procedure ClearMemory; begin if Win32Platform = VER_PLATFORM_WIN32_NT then begin SetProcessWorkingSetSize(GetCurrentProcess, $FFFFFFFF, $FFFFFFFF); Application.ProcessMessages; end; end;
把下面的过程放到一个Timer中,每隔一段时间执行一次,如5秒。 procedure ClearMemory; begin if Win32Platform = VER_PLATFORM_WIN32_NT then begin SetProcessWorkingSetSize(GetCurrentProcess, $FFFFFFFF, $FFFFFFFF); Application.ProcessMessages; end; end;
X xiao_chenke Unregistered / Unconfirmed GUEST, unregistred user! 2005-10-24 #5 我在队列中用了new()进 和dispose()出, 当运行时间一长好像总是不能完全释放申请的内存空间,不知道为什么?
X xiao_chenke Unregistered / Unconfirmed GUEST, unregistred user! 2005-10-25 #6 是要每个线程都要用SetProcessWorkingSetSize来清内存吗?虚拟内存好象清不到?
G gameboyda Unregistered / Unconfirmed GUEST, unregistred user! 2005-10-25 #7 这个情况也有可能会和机器配置有关,当前同时进行业务过多的时候,若机器的(cpu)二级缓存和(也可能虚拟)内存会一下处理不过来,会暂时反应过慢,而占用很多内存。
X xiao_chenke Unregistered / Unconfirmed GUEST, unregistred user! 2005-10-25 #9 应该不是机器的原因,我换了几台计算机都是一样的,我将进队列和出的速度降慢内存还是在慢慢涨,好像有内存碎片不能回收样。