Re: [問題] 請問BCB6 的記憶體配置
※ 引述《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
討論串 (同標題文章)
Programming 近期熱門文章
PTT數位生活區 即時熱門文章