Что нового

Различная скорость выполнения функции PixelGetColor() на разных системах

belovkirill

Новичок
Сообщения
23
Репутация
0
Здравствуйте. Я столкнулся с такой проблемой. Для примера код AutoIt
Код:
For $x=200 To 1201 Step 1
   For $y=100 To 901 Step 1
	  $pixelgetcolor=PixelGetColor($x,$y)
	  If $pixelgetcolor=0x000000 Then
		 MsgBox(0,'','конец поиска')
	  EndIf
   Next
Next

Код перебирает все пиксели слева направо и сверху вниз и если на экране попадается пиксель черно цвета - появляется сообщение о том что он нашелся. Для того чтобы проверить как быстро это происходить я открываю пустое изображение, на котором только белый цвет и в правом нижнем углу стоит черная точка. Координаты точки (1200,900). Программа очень простая. Я запускал код на выполнение на компьютере с операционной системой Windows XP, 1Гб оперативной памяти, процессор "AMD Athlon(tm) 64 Dual Core Processor 3800+". Требуемый пиксель нашелся за 11 секунд. Т.е. за это время произошло примерно 800000 операций взятия цвета, сравнения и увеличения значений итераторов. Далее этот же код я запускал на компьютере с операционной системой Windows 7 x64, 4Гб оперативной памяти, процессором intel core i3-3240 CPU. Однако теперь область поиска была не 1000x800 а 50x50, то есть пиксель находился в координате (250,250) а поиск по X происходил от 200 до 251 и по Y от 200 до 251. В сумме получается около 2500 операций выполнения функции PixelGetColor(), операций сравнения и увеличения значений итераторов. Такой поиск занял 52 секунды. То есть если проводить поиск в той же области что и на первом компьютере то поиск пикселя в правом нижнем углу занял бы примерно 4 часа. Вопрос почему на втором компьютере параметры которого намного лучше поиск происходит в 1500 раз медленнее?
 
Автор
B

belovkirill

Новичок
Сообщения
23
Репутация
0
Спасибо, InnI, я попробую использовать этот метод. Однако, вопрос заключается в том что непонятно почему выполнение одной и той же функции происходит достаточно быстро на Windows XP и очень медленно на Windows 7 x64. И есть ли возможность на Windows 7 x64 выполнять тот же код с такой же скоростью.
 

InnI

AutoIT Гуру
Сообщения
4,950
Репутация
1,445
belovkirill [?]
есть ли возможность на Windows 7 x64 выполнять тот же код с такой же скоростью
Я вам ссылку дал на "интересный глюк". Перечитайте внимательно ещё раз ту тему.
 
Верх