![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 23.07.2007
Сообщений: 20
|
![]()
Доброго времени суток.
Пишу программу, очень требовательную к скорости выполнения Поэтому необходимо как можно лучше оптимизировать по скорости следующую функцию: Код:
|
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,087
|
![]()
Выносим отдельную константу для хранения 128*Ratio и используем её для задания границ циклов, а то они каждую итерацию высчитываются.
Вместо ir = (byte)(i / Ratio); и jr = (byte)(j /Ratio); лучше: создать константу для 1/Ratio, а в итерациях циклов писать ir += <эта самая константа>; ppvBits+dy+dx так же выносится в отдельную переменную, чтобы каждый раз не высчитывалось. этот ужас: Код:
В общем: - все повторяющиеся расчеты заносим в переменные - * и / стараемся заменить на + и - - Стараемся всё, что можно, вынести за границы циклов (Если значение какого-то выражения не меняется от итерации к итерации, то ему нечего делать в цикле) |
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Нужна помощь | sergy88 | Паскаль, Turbo Pascal, PascalABC.NET | 5 | 28.01.2009 12:36 |
Нужна помощь | zinger | Помощь студентам | 2 | 16.05.2008 10:55 |