注册 登录
编程论坛 C# 论坛

请教一个线程和内存占用的问题

wyc199288 发布于 2014-01-29 16:42, 2225 次点击
我编了一个二维码识别的程序。一个线程是打开摄像头显示图像,一个线程是分析二维码的函数。
首先程序是能够正常运行的。
但是一旦运行后在windows任务管理器中的内存占用大概有4M到10M这样的,不知道为什么这样一个小程序有这么大的占用?
(注:线程中有循环,就是程序的一个线程在不断的检测此时摄像头截图中的二维码,并解码。)

不知道这样的内存占用是否正常?
10 回复
#2
wp2319572014-01-30 07:47
我觉得是正常的
#3
tlliqi2014-01-30 08:09
正常的
#4
wyc1992882014-01-30 12:01
回复 2楼 wp231957
谢谢你的肯定!
#5
TonyDeng2014-02-01 13:51
程序占用内存或資源的大小,與程序自身的大小沒有必然關係,病毒就是最典型的用極微少代碼消耗巨大資源的程序。其實,祇要想一個示例就可以,寫祇有一行代碼的程序,向堆申請上G的空間即可。

你的程序要檢測圖像并分析,當設計爲事先申請了圖像空間的時候,就會這樣先占了資源,要想不這樣占,在檢測到攝像頭有(指示獲取圖像的)信號時,才動態申請空間,這樣就不長久占著,但終歸要占一下的。其實,自己的程序具體如何使用計算機的資源,是應該盡量弄清楚的,不然使用什麽函數、什麽類和對象,難道沒看過資料和斟酌過取捨問題的嗎。
#6
zklhp2014-02-01 19:40
Windows线程默认堆栈大小好像是1M
#7
zklhp2014-02-01 19:45
而且你这个属于.net程序?一般这种基于虚拟机的东东占内存都多。。
#8
TonyDeng2014-02-02 10:41
以下是引用zklhp在2014-2-1 19:45:54的发言:

而且你这个属于.net程序?一般这种基于虚拟机的东东占内存都多。。

把操作系統占的内存算上去是很多。
#9
TonyDeng2014-02-03 22:43
其實我一直不明白小z總是虛擬機是什麽意思,難道“虛擬機”的定義有歧義?
#10
zklhp2014-02-03 23:39
叫神马Framework 我不用 也不关心 自然也不知道有啥好
#11
有容就大2014-02-07 22:38
我觉着NetFramework很强大啊 Z版说不关心是假的吧 呵呵
1