找回密码
 注册
LabVIEW+单片机学习套件全套教程资料下载[免费]LabVIEW论坛精华列表贴USB0816数据采集卡《LabVIEW宝典》
LabWindows/CVI论坛精华贴NET0816以太网数据采集卡RC0210远程设备授权系统 关闭关停锁定打开设备 户外分布式数据采集
NET1624低速高精度以太网数据采集卡WIFI0824SD无线WIFI网络数据采集卡脱机运行 SD存储 小尺寸微型 串口采集远程采集 安卓 手持移动采集 纪录仪
查看: 3520|回复: 15

请教程序运行耗内存越来越多,最终停止的问题

[复制链接]
发表于 2008-4-16 13:15:06 | 显示全部楼层 |阅读模式
我在while循环中放置一个CIN接口,CIN通过网口接收数据包,并提取需要的数据段组成数组输出至while循环中进行数据处理后在前面板显示波形等。问题是:可能CIN抓到数据包后并不释放内存,导致随着while循环进行中,内存越耗越多,最终未达到循环次数停止。查一些关于Labview内存管理的资料,有资料说SubVI调用完后会释放内存。我就将CIN接收数据包用一SubVI实现,问题仍然同样出现。恳请知情者帮助我解决此问题。致谢!
通过CIN接收数据包代码如下:

本帖子中包含更多资源

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

×
发表于 2008-4-16 17:01:38 | 显示全部楼层
可否考虑将CIN做成VI后动态调用呢??动调调用会自动释放内存的
回复 顶

使用道具 举报

 楼主| 发表于 2008-4-16 17:30:16 | 显示全部楼层
还未用过动态调用,我试试!谢谢回复!
回复 顶

使用道具 举报

 楼主| 发表于 2008-4-17 11:09:06 | 显示全部楼层
“站立的鱼”,你好。你说的动态调用指的是“引用节点调用”吗?刚试了,问题还是如此,随着循环进行,内存越耗越多,最终停止。
谢谢指点!还有其它方法吗?
回复 顶

使用道具 举报

发表于 2008-4-17 11:14:35 | 显示全部楼层
是不是那个shift register不断长大呢?
回复 顶

使用道具 举报

发表于 2008-4-17 11:14:57 | 显示全部楼层
最上面那个很精和二维数组的移位寄存器!
回复 顶

使用道具 举报

发表于 2008-4-17 11:15:22 | 显示全部楼层
它应该在不断地自增,所以内存会自动往上涨的!要到一定的程序,将它清空一下!
回复 顶

使用道具 举报

 楼主| 发表于 2008-4-17 14:26:05 | 显示全部楼层
coubbs你好,谢谢指点!这个二维的移位寄存器只是存储测试结果与标准值的比差,数据尽管随循环进行而增多,但应该不会大的(不会出现一次循环内存消耗增加2M的情况),我也希望一直保存这个结果。
看是否还有其它可能的问题?
回复 顶

使用道具 举报

发表于 2008-4-17 14:42:40 | 显示全部楼层
您可以尝试一下是不是上面的原因!还有显示这一部分好像也会占内存的!
回复 顶

使用道具 举报

 楼主| 发表于 2008-4-17 19:21:44 | 显示全部楼层
我去掉了移位寄存器,仍然是内存上涨,最后提示“VI在CIN处停止”后停止。
显示内存如何去掉?谢谢!
这个问题折腾我很长时间了,还望指点!
回复 顶

使用道具 举报

发表于 2008-4-17 19:44:45 | 显示全部楼层
哪估计应该是CIN的问题了,有可能的话把它打成DLL,这样更方便点! 我看看程序先!
回复 顶

使用道具 举报

 楼主| 发表于 2008-4-17 21:56:34 | 显示全部楼层
我把CIN改成CLF也试过了,还是内存越耗越多,最终停止。
用CIN停止时报错为:VI在代码接口节点处停止。谢谢!
回复 顶

使用道具 举报

发表于 2008-4-17 22:24:37 | 显示全部楼层
看你的程序使用的是静态结构的地址
这样的话使用中是不释放内存的,
想想看有什么好的方法解决
回复 顶

使用道具 举报

 楼主| 发表于 2008-4-18 22:54:45 | 显示全部楼层
在CINRun中不定义静态变量,程序运行起来依然如此。我也尝试了去掉移位寄存器,也没改善。
我想可能是我将CIN放在while循环中(每次循环CIN接收4000个数据包,即采样频率4K),而每次循环labview都会为CIN的输入输出数组新开一块内存,它并不覆盖以前的存储区。还有一个可能是CIN内部即C语言CINRun中定义的数组和指针(这些数组和指针保存有数据包和从数据包中提取的信息)在CINRun运行完后并没有释放内存,有这个可能吗?还望指点!
回复 顶

使用道具 举报

 楼主| 发表于 2008-4-21 13:43:58 | 显示全部楼层
还请高手指点,这个问题我很弄一段时间了。我看见过有人已经能解决这个问题(当时不好请教),但是我经验不多,尽管尝试了很多方法,但还是搞不定。谢谢了!也可以根据你们的经验给我些建议。
回复 顶

使用道具 举报

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

本版积分规则

Archiver|手机版|cpubbs论坛. ( 粤ICP备09171248号 )

GMT+8, 2026-9-30 11:31 , Processed in 0.061030 second(s), 11 queries , Gzip On, File On.

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表