Re: [問題] 請問BCB6 的記憶體配置

看板Programming作者 (幸福就是妳)時間18年前 (2006/09/12 14:37), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/6 (看更多)
※ 引述《DrLiang.bbs@bbs.ccns.ncku.edu.tw (台灣黑山豬)》之銘言: : ※ 引述《fredfrost.bbs@ptt.cc (幸福就是妳)》之銘言: : > 我有一個程式 要畫很大的圖檔 我用Image裡的Bitmap : > 為了不要讓整個REPAINT的動作變得很難看 : > 所以又new了一個TBitmap的Buffer : > 現在呢 初始化的時候的時候 : > 因為有的圖真的很大 大概10000x10000的 : > 什麼事都沒做 光開個視窗 就佔5M : > 開兩個7000x4000的時候 整個程式佔記憶體8M : > 那開了兩個10000X10000Bitmap 導致整個記憶體不足?? : > 因為我記憶體有2G 所以感覺上應該是Borland的設定問題 : > 請教版上得高手有沒辦法幫我解決 不然就要用VS重寫一個了@@ : 剛剛試了以下的程式碼 : int *A=new int[10000*10000]; : int *B=new int[10000*10000]; : for(int i=0;i<10000;i++) : for(int j=0;j<10000;j++) : { : A[i*10000+j]=0; : B[i*10000+j]=0; : } : delete [] A; : delete [] B; : 根據Windows供作管理員的說法:記憶體從345直接跳到1.08G, : 沒有出現記憶體不足的問題,我的記憶體只有512Mb。 : 我猜是記憶體管理的問題,許多片片段段的記憶體造成 memory fragment??? : 給個建議,若妳要處理這麼大張的圖檔,盡可能就讓他躺在硬碟裡, : 用 WindowsAPI 中有一個叫檔案映射的方法去處裡他。 : 這個可以請 google神幫妳找答案, __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { Graphics::TBitmap *a=new Graphics::TBitmap; Graphics::TBitmap *b=new Graphics::TBitmap; a->Width=10000; a->Height=10000; b->Width=10000; b->Height=10000; } 我測試的時候 這麼幾行 就跳出記憶體不足 只是開一個畫布出來 還沒開始畫 我的目的是要畫圖 不是讀圖檔 如果用純c++ 應該也是不會當才是 所以應該是bcb的問題吧 不知道去哪改他的記憶體上限 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.105.166.16
文章代碼(AID): #151bMiYC (Programming)
文章代碼(AID): #151bMiYC (Programming)