问题描述
我用新线程执行while(true)循环,为什么占用内存特别高,一个不大的程序占到了一个多g,加了sleep(1000)后可以改善,这是什么原理,求解,另外还有什么办法可以缓解内存占用巨大的问题?
解决方案
解决方案二:
无码无真相~
解决方案三:
放俩20分的贴是想干啥你不如放一个40分的贴
解决方案四:
内存占用高,是程序申请的多,释放的少,如果加了sleep能缓解,说明处理逻辑中存在瓶颈不从原理上解决,加多少sleep都不能算可靠
解决方案五:
引用3楼xian_wwq的回复:
内存占用高,是程序申请的多,释放的少,如果加了sleep能缓解,说明处理逻辑中存在瓶颈不从原理上解决,加多少sleep都不能算可靠
while(true)是不是因为循环了??反复申请
解决方案六:
引用4楼ldmxyzldm的回复:
Quote: 引用3楼xian_wwq的回复:
内存占用高,是程序申请的多,释放的少,如果加了sleep能缓解,说明处理逻辑中存在瓶颈不从原理上解决,加多少sleep都不能算可靠while(true)是不是因为循环了??反复申请
申请完了释放,循环也是没问题的但申请的快,释放的慢,才是问题
解决方案七:
不谈代码你用while(true)的根本原因是什么?定时器?循环?还是从所谓的"网上"抄袭下来的代码就应用?最后发现有一大堆问题?我猜一定是后者..所以不如你说说你要实现什么.让大家给你个思路吧.而不是随意上网上搜索一些"垃圾"代码就用.然后还一大堆问题.
解决方案八:
你是纯c#程序么?有没有使用c++写的dll?是不是有内存泄露问题?
解决方案九:
1、避免使用Threadth=NewThread()创建物理线程,改用线程池,如果是4.0,改用Task.Factory.StartNew2、避免使用Thread.sleep,改用if(未完成)Contioniu
时间: 2024-10-27 11:15:24