LabVIEW

 找回密碼
 注冊

掃一掃,訪問微社區

查看: 35228|回復: 214
打印 上一主題 下一主題

[共享貼] 瞬間釋放程序內存

    [復制鏈接]
跳轉到指定樓層
1
發表于 2011-10-20 17:38:07 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
USB-6009數據采集卡首發
本帖最后由 bincker 于 2012-1-4 14:10 編輯
' }3 n% C7 r; H$ ]  a' b5 D* @% g* ~+ I" d# m
最近遇到一個問題,使用DB Tools操作ACCESS數據庫的時候,發現在查詢大量數據的時候,程序內存暴增,然后每查詢一次都會有所增加,但把查詢相關的程序關閉了,只要不退出LV,內存就不釋放。, N2 ~7 W- o0 H$ I( h- ?
這時我用的查詢語句是:SELECT C1,C2,C3.. FROM Table where ...,根據查詢條件,有時會一次返回上萬條數據,當查詢結果中包括30列,2萬多條記錄時,內存要增加300MB左右。+ b8 F7 k4 J! G* K( g8 W* m+ D+ R
后來,搜索相關問題,得知可以通過查詢數據分頁的方式把一次查詢分成多個子查詢然后再拼接起來,強哥在一個帖子里回答說用LIMIT來限制每次返回的記錄數,但ACCESS不支持這個指令,只能用繁瑣的top語句來替代。. m& s8 f3 s2 w" h$ ]0 q
這時,我用的查詢語句是:SELECT TOP 1000 C1,C2,C3... FROM Table where ...,根據返回記錄數是否小于1000(假如設定每次返回1000條),來判定是否查詢結束,內存問題有所改善,返回30列,2萬多條記錄時,內存增加100MB左右。9 k% K8 r# i8 L3 y2 ?6 B( x
但仍然不能徹底解決問題。8 V0 ?" p0 Z2 q7 N

- k* {# A8 V* e: d; ^* C: D偶然,我發現360安全衛士提供的任務管理器可以優化內存,占用幾百兆內存的程序一優化就剩下幾十兆或幾兆了,他是怎么做到的呢?windows肯定提供了這個機制。. d" y9 X. d; h
) l' \  ^4 Y& m4 h( |- ^2 g% a
我就在網上搜啊搜啊搜,終于被我找到了,一個叫empty.exe的程序,調用這個程序可以清理程序的內存。* m1 `  R  q( A- c9 @- s
調用方法:empty  {pid | task-name}/ a+ _& q$ v4 w, [5 l

  b( D+ K8 F" @7 ]4 E省心了,呵呵。. ^( [5 Q- ^# @% O' m
回個帖子,就把這個empty給你了
$ e( S# [; D) J. m4 m. T
) D( ^! c, L, I! b& z: P, U' j2 K/ d4 _- e7 S  t1 H0 m* }" W
游客,如果您要查看本帖隱藏內容請回復

6 j% C  A+ P7 [5 K
游客,如果您要查看本帖隱藏內容請回復
IDAQ-USB-6009數據采集卡
推薦
發表于 2011-10-21 14:32:10 | 只看該作者
在線課堂
這個太簡單了,俺也提供一個dll。嵌入你的程序內,隨時隨地愛怎莫釋放就怎莫釋放!! {. s1 n& p3 O! l: N  y8 r. \+ k0 \3 m
調用方式:
2 K% e8 X  K- n% T$ \void FreeMem(void);! _- j! k! s  p: p
簡單吧,沒有參數。有沒有返回值(方便LV們使用! )。
8 B( x8 h3 v/ ^( n7 m6 Z8 Z FreeMem.rar (2.4 KB, 下載次數: 413) % @& G! C- X" e) j! |$ ]. r/ t

評分

參與人數 3威望 +20 V幣 +200 收起 理由
bincker + 200 很給力!
herny1016 + 10 mark,雖然現在用不到,但是收了以防以后要.
iwanttofly + 10 很給力!

查看全部評分

回復 支持 1 反對 0

使用道具 舉報

2
發表于 2011-10-20 18:32:38 | 只看該作者
不錯,看看啊。
3
發表于 2011-10-20 19:30:15 | 只看該作者
看一看什么樣子的。。
4
發表于 2011-10-20 19:32:35 | 只看該作者
謝謝分享,我正需要啊,access數據庫清空了,大小不變,不過寫入查詢速度會變快,網上查了下 好像是運行機制的問題  這個問題有什么好的解決方案不?
5
發表于 2011-10-20 20:32:27 | 只看該作者
樓主真用心啊,值得學習。
6
發表于 2011-10-20 21:21:15 | 只看該作者
Look Look
7
發表于 2011-10-21 07:57:04 | 只看該作者
經典啦!收藏了,
8
發表于 2011-10-21 08:00:02 | 只看該作者
本帖最后由 btlec0553 于 2011-10-21 08:01 編輯 / u* v& Q# D' _6 `

$ L& z' L! V5 ]. ?: H- f, J& ^1 F有木有什么方法將這個EXE文件嵌入LabVIEW中呢?期待中……(LabVIEW中自帶的“釋放內存”效果怎樣呢?)
9
發表于 2011-10-21 08:14:52 | 只看該作者
聽起來不錯,看看先,還沒用
10
發表于 2011-10-21 08:27:38 | 只看該作者
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規則

QQ|小黑屋|無圖瀏覽|手機版|網站地圖|虛擬儀器家園 ( 滬ICP備13044638號-3 )

GMT+8, 2020-6-20 01:21 , Processed in 0.030734 second(s), 21 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回復 返回頂部 返回列表
腾讯分分彩历史走势图