掃描ip+端口的多綫程問題, |
尚未結案
|
DogHub
一般會員 發表:4 回覆:3 積分:1 註冊:2005-03-22 發送簡訊給我 |
我正在寫一個可重用的掃描單元,單元内定義了一個掃描管理類和一個掃描綫程類 管理類 負責接收一個StringList類型的命令信息,格式如下:
'192.168.1.1 ; 21 ; 100 ; 1000' // StringList[0]
'192.168.1.1 ; 8080 ; 100 ; 1000' // StringList[1]
'192.168.2.2 ; 8080 ; 100 ; 1000' // StringList[2]
.....
ip port 扫描次数 间隔 管理類接受后,集中創建綫程實例執行。(我現在的做法是每一個Ip Por創建一個綫程)集中創建綫程的時候把其指針記錄到一個StringList中,然後集中執行縣程。
問題是,若管理類接受的StringList.Count 數目很大的時候,内存就會不夠(大約1000個綫程佔用45M内存) 這樣做法行嗎?
能否給點解決此類問題的提示?
謝謝!
|
syntax
尊榮會員 發表:26 回覆:1139 積分:1258 註冊:2002-04-23 發送簡訊給我 |
45M = 45*1024*1024 Byte
1000 個
每個 45*1024*1024/1000 = 47185.92
平均 一個 String 有 47185 個字 ?
你自己算,你有這麼多字嗎?
就算 String List 只佔 1 MB 好了
1024*1024/1000 約 1000 ,每個 String 有 1000個字嗎?
'192.168.1.1 ; 21 ; 100 ; 1000' // StringList[0]
0123456789012345678901234567890 <--- 也不過 40 個字元 40 byte 假設 每個有 60 個字好了
count 為 1000 時,所有字元所佔的空間也不過
60 * 1000 byte = 58 KB = 0.0572 MB
45 MB ?哪裡來?
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |