1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!
| TarasBer |
2.02.2010 20:55
Сообщение
#1
|
![]() Злостный любитель ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 755 Пол: Мужской Репутация: 62 |
Я так понял, что каждое обращение к памяти, встречающееся в программе, долго и упорно обрабатывается системой на предмет залезания не туда, и если действительно было нарушение, вызывается обработчик исключения. Я сделал одну процедуру, у которой основной рабочий цикл (заполнении линии одинаковым, пока что, значением) выглядел так:
Сделал замер скорости. Огорчился. Решил смеха ради добавить одну паразитную команду (она тут закомментирована). Получил резкое ускорение - то есть теперь данные стали выводиться в одно и то же место в памяти. Видимо система запомнила, куда в последний раз обращалась программа и не стала проверять обращение на корректность лишний раз. Как на самом деле обрабатываются обращения к памяти в винде? И можно ли использовать эту информацию для ускорения? Кстати, почему пара deс; jnz работает намного быстрее, чем loop, который специально предназначен для циклов? -------------------- |
TarasBer Скорость работы с памятью в WinXP 2.02.2010 20:55
volvo Во-первых, не факт, что на всех процессорах будет ... 2.02.2010 22:05
TarasBer > Давай сделаем так: приведи простейшую програм... 2.02.2010 22:42
volvo Вот, посмотри, что у меня получилось:
На более ста... 2.02.2010 23:07
Lapp От типа памяти + кэша должно сильно зависеть. Tar... 3.02.2010 0:16
TarasBer > TarasBer, давно пора забыть про классическую ... 3.02.2010 19:05
volvo А можно озвучить задачу, которую ты пытаешься реши... 3.02.2010 19:35
TarasBer В рабочем цикле будет заполняться экранный буфер ц... 3.02.2010 19:48
volvo То есть, я так понимаю (ключевое слово выделено), ... 3.02.2010 22:37
TarasBer Я не просто так спросил, если что.
Я бы не стал за... 6.02.2010 14:19
TarasBer И да, тогда перенесите тему в ассемблер, пожалуйст... 6.02.2010 14:48
volvo Ну, и где этот код и результаты его прогонов на ра... 6.02.2010 14:53
TarasBer Результаты скорости меня интересуют, в первую очер... 6.02.2010 15:42
TarasBer Попробовал выводить по 8 байт, при помощи команды ... 9.02.2010 21:37
SKVOZNJAK Так в виндовсе память работает в защищённом режиме... 10.02.2010 1:21![]() ![]() |
|
Текстовая версия | 15.11.2025 12:53 |