迴圈和記憶體問題 |
尚未結案
|
yachu721
初階會員 發表:51 回覆:98 積分:44 註冊:2003-07-13 發送簡訊給我 |
|
RedSnow
版主 發表:79 回覆:1322 積分:845 註冊:2003-12-15 發送簡訊給我 |
|
yachu721
初階會員 發表:51 回覆:98 積分:44 註冊:2003-07-13 發送簡訊給我 |
|
RedSnow
版主 發表:79 回覆:1322 積分:845 註冊:2003-12-15 發送簡訊給我 |
|
Stallion
版主 發表:52 回覆:1600 積分:1995 註冊:2004-09-15 發送簡訊給我 |
|
yachu721
初階會員 發表:51 回覆:98 積分:44 註冊:2003-07-13 發送簡訊給我 |
|
RedSnow
版主 發表:79 回覆:1322 積分:845 註冊:2003-12-15 發送簡訊給我 |
|
Stallion
版主 發表:52 回覆:1600 積分:1995 註冊:2004-09-15 發送簡訊給我 |
引言: 我主要的程式是要使用RS232的設備 來傳送約1MB的資料 但是在傳送的過程中 幾乎為記憶體滿載的狀態 我使用了多執行緒依然還是會有此情形 以下檔案是測試多執行緒的迴圈(BCB6檔) 但是還是出現滿載的情況 不知是否哪該注意 若大大們有空 是否可測試測試呢RedSnow版大,他指的應該是CPU滿載吧! > 建議寫個>當有資料要處理時,才觸發>! > 而你的 > 程式的 class="code"> //--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { Test=new TTest(true); } //--------------------------------------------------------------------------- void __fastcall TForm1::資料已準備好在發送緩衝區的事件(XXX) //屬於RS232串列通信元件的事件 { Test->Resume(); } //--------------------------------------------------------------------------- void __fastcall TForm1::資料已傳送完畢的事件(XXX) { Test->Suspend(); } //--------------------------------------------------------------------------- void __fastcall TForm1::Button3Click(TObject *Sender) { Test->Terminate(); Close(); } //------------------------- 如果不這樣寫,那這個THREAD會一直跑,CPU使用率當然一直飆高! ----------------------- Practice makes perfect. 發表人 - stallion 於 2005/11/15 00:24:02 |
yachu721
初階會員 發表:51 回覆:98 積分:44 註冊:2003-07-13 發送簡訊給我 |
|
RedSnow
版主 發表:79 回覆:1322 積分:845 註冊:2003-12-15 發送簡訊給我 |
Stallion 您好:
引言:他指的應該是CPU滿載吧!我想也是,我只是想提醒 yachu721,用較為適當的用詞來命題與討論會比較好些。 yachu721 您好: 引言:我的問題是CPU飆高..難怪之前有點雞同鴨講....,建議您將標題做個修正,以便於他人的索引、搜尋,並讓討論內容能切題。 引言:.... 問題就在CPU都在100% 是否在這一直傳送的狀態下 有辦法降低CPU我不是很確定您為何那麼的在意 CPU 趨近於滿載的情形?是您在傳送資料時,必須要同時做些其它的動作,還是 CPU 趨近於滿載會有什麼不良影響嗎? 您若是在迴圈內使用了 Application->ProcessMessages(); 敘述的話,雖然在執行迴圈時會有 CPU 飆高的現象,但是當您要做其它的操作時,系統還是允許 CPU 做 Time Sharing 的,這個時候您再查看 CPU 的使用率時,就不會是趨近於滿載的狀況了,換言之;這個時候您那個傳輸動作也會慢了下來,當其它的操作告一段落後,傳述動作就會恢復得較快些,CPU 的使用率又會再度飆高,畢竟是單 CPU 的環境,您無法過於強求的,如果想要真正的解決這個問題 (要全速傳輸,又要不影響其它動作),那恐怕就得使用多 CPU 的環境 (包含硬體與作業系統都要能支援多 CPU 才行) 囉~ 7 天天敲鍵盤 v 時時按滑鼠 8 |
yachu721
初階會員 發表:51 回覆:98 積分:44 註冊:2003-07-13 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |