社区
C++ 语言
帖子详情
程序启动导致其他程序所占内存减少?
xy0402
2010-09-04 02:59:35
在windows系统下启动两个程序,两个程序都是由其他程序带起来的,A程序先启动,并申请内存,静态申请到25M内存,总共就需要25M内存,B程序后启动,启动过程中,A程序所占的内存一直减少到2M左右,不知道是什么原因导致的?应该如何排查呢?
A程序内存不足,无法进行正常工作了。
如果B程序不启动的话,A程序内存不会减少。
求助。在线等,谢谢大家了!!!!
...全文
145
12
打赏
收藏
程序启动导致其他程序所占内存减少?
在windows系统下启动两个程序,两个程序都是由其他程序带起来的,A程序先启动,并申请内存,静态申请到25M内存,总共就需要25M内存,B程序后启动,启动过程中,A程序所占的内存一直减少到2M左右,不知道是什么原因导致的?应该如何排查呢? A程序内存不足,无法进行正常工作了。 如果B程序不启动的话,A程序内存不会减少。 求助。在线等,谢谢大家了!!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
xy0402
2010-09-07
打赏
举报
回复
最近两天查了下,应该是由于启动的程序比较多,物理内存(1G)不够用了,操作系统减少A程序所占物理内存,而使A程序使用虚拟内存来存储数据,导致A程序存取时间增加,从而影响正常通讯。
增加物理内存(变成2G)之后,物理内存减少的情况就没有了。
谢谢大家的回答!很有帮助~~~~
康斯坦汀
2010-09-04
打赏
举报
回复
用new分配的内存是在堆中,正确分配以后,操作系统会将此内存的地址加入已分配内存地址链表,
其他进程的程序是不会再进行分配的的,也就不会出现B程序运行,A程序内存被占用的情况。
但是如果你的程序本身存在问题,比如多线程程序会有一个线程占用另一个线程内存产生错误的情况,
或者在不适当的时候释放了内存,操作系统移除了已分配内存地址,才可能会让其他程序占用。
所以1)如果A程序是多线程的,重点检查这部分代码 2)检查释放内存的代码,它可能被调用了。
(可通过写LOG方式,调试不一定能捕获)
xy0402
2010-09-04
打赏
举报
回复
那应该如何查看此类bug呢?
但是我不起B程序的话,A程序内存使用是不会减少的啊。
而且A程序在负责处理通讯,是不会空闲的啊。
康斯坦汀
2010-09-04
打赏
举报
回复
应该是A程序代码存在bug,在内存分配使用方面,不然不会出现
“A程序内存不足,无法进行正常工作了。”的现象。
系统是会在某程序空闲的时候自动调整内存占用,但不会影响正常程序使用的。
xy0402
2010-09-04
打赏
举报
回复
那如何确定发生了物理内存换页呢?从上述两项能看出来么?
justkk
2010-09-04
打赏
举报
回复
在任务管理器中能看到“内存使用”、“虚拟内存大小”两列
xy0402
2010-09-04
打赏
举报
回复
这样会导致程序申请的内存减少么?如何查看是否物理内存换页呢?
justkk
2010-09-04
打赏
举报
回复
不会是内存调度策略影响的吧,物理内存换页了?
xy0402
2010-09-04
打赏
举报
回复
A程序是我写的,是在初始化对象时,用new申请的内存。
补充一下,在内存减少过程中,A中并未调用析构函数释放内存。
B程序不是我写的。
辰岡墨竹
2010-09-04
打赏
举报
回复
那个A程序是你写的么?你用什么方法申请内存的?
xy0402
2010-09-04
打赏
举报
回复
不是的,呵呵。
小楫轻舟
2010-09-04
打赏
举报
回复
楼主,你那B程序不会是病毒吧
SciTech.NET.Memory.Profiler.v4.0.114.安装_注册机
NET Memory Profiler-找到
内存
泄漏并优化
内存
使用针对C#,VB.Net, 或其它.Net
程序
。 包含安装+注册机
memcached for window32
memcached for window 32位系统,mem版本为1.4.5,其中的几个bat文件,注意需要修改install.bat中的binPath参数。
内存
溢出
导致
单片机
启动
死机问题
内存
溢出是单片机应用中常见的问题之一,我们需要合理使用
内存
、优化
程序
、避免
内存
交叉等方式来避免
内存
溢出问题。单片机
内存
有限,当
程序
运行时,如果申请开辟的空间超过了
内存
大小,就会发生
内存
溢出的问题,
导致
单片机死机无法
启动
。2.增加单片机的存储器容量:如果单片机
内存
容量不足,可以考虑增加单片机的存储器容量,如增加数据存储器和
程序
存储器容量,或考虑使用外部存储器等。1.合理使用
内存
:在编写
程序
时,应注意合理使用
内存
,避免申请过多
内存
空间,及时释放不再使用的
内存
,以
减少
内存
溢出的风险。
如何
减少
idea的
内存
消耗
最近使用Intellij idea开发的时候,经常遇到
内存
被
占
满,
导致
异常卡顿,一开始总以为是自己
程序
内存
泄露,后面发现即使不
启动
自己的项目,只是单纯的开发,依然会出现
内存
占
满甚至溢出的情况。最后,实在受不了,在各大技术网站上搜罗相关文章,都说修改Intellij idea默认的vm配置文件即可增大使用
内存
,比如,将bin目录下的idea.exe.vmoptions文件内由-server -Xms1
内存
溢出原因和解决办法
集合类(如List、Map等)在使用完毕后未清空,
导致
JVM不能回收其中的对象,最终
导致
内存
溢出。如果
程序
一次性加载大量数据到
内存
中,而没有及时释放,会
导致
内存
占
用过多,最终引发
内存
溢出。检查
程序
中是否存在一次性加载大量数据的情况,尝试分批加载或使用流式处理来
减少
内存
占
用。
程序
中存在死循环或大量重复创建对象实体的情况,
导致
内存
占
用不断增长,最终引发
内存
溢出。
内存
泄漏是由于
程序
中存在未正确释放
内存
的情况,
导致
内存
不断累积,最终
导致
内存
溢出。JVM
启动
参数中分配的
内存
值过小,
导致
程序
运行时出现
内存
溢出。
C++ 语言
65,206
社区成员
250,517
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章