我正在使用while循環來執行一些算法,什麼不是,但它不是很快,我如何讓我的程序使用更多的RAM? (我認爲這是限制它)它目前穩定在504kB。C++更快的執行
我使用
- Ç:: B 13.12
- 64位Windows 7
- 的mingw32-G ++。exe文件(我不認爲我需要的64位版本,除非我想去超過4GB公羊吧?)
我很抱歉,如果這個問題已被問及之前回答,但我似乎無法找到它,如果它。
編輯:所以這將掃描100像素,這是什麼導致這需要2.2秒?
#include <windows.h>
#include <iostream>
#include <wingdi.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
using namespace std;
void scan(HDC dc, int x, int y, int &r, int &g, int &b) {
COLORREF color = GetPixel(dc, x, y);
r = GetRValue(color);
g = GetGValue(color);
b = GetBValue(color);
}
int main() {
HDC dc = GetDC(NULL);
int r,g,b;
for(int i = 0; i < 100; i++) {
scan(dc,100,100 + i,r,g,b);
}
ReleaseDC(NULL, dc);
return 0;
}
2:nd edit:是否可以在不編輯代碼的情況下減少這段時間?我的意思是,它必須受到我的RAM或我的CPU的限制嗎?
對於各種問題,各種各樣的有趣的時空權衡,但沒有一般的答案。所以提出的問題是沒有意義的。 – Xarn 2014-10-05 18:15:17
我在解決數學問題上總是很慢。當我的叔叔給我買了一間更大的房子時,這一切都改變了,現在我只需輕輕一磨就能解決所有問題。 – 2014-10-05 18:16:30
好吧,@KerrekSB,萬一你的老房子太小,你甚至無法坐得舒服,那麼這可能確實如此。 :D以類似的方式,不斷交換到硬盤可能會減慢你的速度,但我懷疑504 kB是否足夠。即使回到MS-DOS時代,通過編輯啓動文件也可以輕鬆實現這些操作。 ;) – Mario 2014-10-05 18:19:13