我正在使用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