Скриншот для memread2.exe [img] _2098053508__1.jpg
2 > S_T_A_S_ Разогнал проц по шине до 3200. Твоя прога стала показывать странные результаты: no prefetch 1796, prefetch 1531. Раньше было...
Как оказалось оба поиска работали не верно. После исправления оказалось что первый тратит аж 590мс на 64Mb. Второй после исправления был...
2 > S_T_A_S_ Скорости чтения как в memread недостигнуть все равно, потому что производится еще и запись результатов, и хорошо если транзакции...
Получился пока следующий код (см. вложение). По скорости обычный поиск (с частыми jmp'ами) на iCell2400 где-то в два раза медленее (110 и 200...
IMHO При поиске с запоминанием позиций вхождений значения, лучше использовать setcc команды. Это несколько уменьшит количество ветвлений в циклах,...
S_T_A_S_ Использовать цепочечные команды в прнципе можно. Но есть следующие ограничения: <ol type=1> 1. Все смещения придется упаковывать...
Если идеально оптимизировать поиск, надо цикл развернуть до 16 раз. Это подходит для алгоритма побитовой упаковки найденых результатов: в два...
Делать отдельную оптимизированую функцию для каждого варианта, может и увеличит скорость поиска, но по моему на разных процессорах, эта...
По read_test.exe. Сейчас мне до Athlona не добраться, проверил на iCel2400: макс. результат - 1605Ms/s. Скорость поиска колеблется от 100 до 115Мб/с.
Похоже что для указаного кода, есть решение без потери тактов. Штрафные такты ведь возникают при остановках конвейера, после каждой попытке записи...
И как я уже говорил модификацию можно выполнять перед поиском во всей памяти процесса, а для этого выполнять размножение кода функции избыточно,...
GetMem/FreeMem & New/Delete управляют в Delphi кучей. Быстро, но не идеально, при чем иногда наблюдается рост занимаемой программой памяти (это...
S_T_A_S_ ReadProcessMemory - самый главный тормоз, из-за него не раз приходится переключаться между режимом ядра и двумя процессами....
А вот собственно и сам код поиска текущей версии. Прошу не пугаться, он не оптимизирован, и вполне возможно с ошибками. Многие функции упаковывают...
2> S_T_A_S_ Действительно можно: имеем следующее количество функций для (BYTE, WORD, DWORD) x (> < = <> >= <=) т. е. 18 реализаций...
>2 Funbit просто информация, сам я в поисках инфы по этой теме никуда не ушел. Надеюсь кто поопытнее поделится своим опытом оптимизации в...
Полиморфный код удобно использовать в вирусах, механизмах защиты прог. от копирования, и как ни странно для оптимизации. По крайней мере это...
Имена участников (разделяйте запятой).