Тема открыта по просьбе жителей Королевства и посвящена обсуждению вопросов оптимизации кода. Выставляйте свои лучшие и худшие тексты и не стесняйтесь их обсуждать. В споре рождается истина. Или, по крайней мере, оптимизация.
Всего в теме 737 сообщений
Добавить свое сообщение
Отслеживать это обсуждение
- Тестирование проекта. Отладка.
- Подводные камни
- Централизованная обработка ошибок
- Бета-тестирование
- Давайте учиться на ошибках.
- Почему программисты допускают ошибки?
- Автоматизированные тесты для GUI
- О системах контроля ошибок
<<<... | 27—18 | 17—8 | ...>>> Всего сообщений в теме: 737; страниц: 74; текущая страница: 73
№ 17 14-06-2005 11:37 | |
Ответ на »сообщение 16« (CoreWars)
___________________________
Самое быстрое брать ответ из таблицы (256 значений). Если нельзя использовать заранее вычисленные данные, то вычитанием и AND'ом.
Ага, а таблица в памяти хранится...
№ 16 14-06-2005 11:34 | |
Самое быстрое брать ответ из таблицы (256 значений). Если нельзя использовать заранее вычисленные данные, то вычитанием и AND'ом.
№ 15 14-06-2005 11:28 | |
Ответ на »сообщение 14« (Geo)
___________________________
На оптимальность не претендую. Итак, вариант №1:
inline unsigned short BitsCounter(unsigned char value)
{
_asm {
mov al,value
xor cx,cx
noinc:
shl al,1
jz quit
jno noinc
inc cx
jmp noinc
quit:
mov ax,cx
}
}
№ 14 14-06-2005 11:10 | |
Ответ на »сообщение 13« (Сергей Перовский)
___________________________
Самое смешное, что наилучшее решение не зависит от процессора и является наилучшим независимо ни от чего. Честно говоря, я (когда мне эту задачу задали) до самого карсивого решения не догадался. Я тоже думал о сдвгах через CF и сложеннии с CF.
В принципе, я могу решение привести, если никто не хочет поизвращаться. Так что, как скажете.
Подсказка: "Требуется максимальная оптимизация по быстродействию. Остальные критерии несущественны".
№ 13 14-06-2005 10:45 | |
Ответ на »сообщение 12« (Geo)
___________________________
Задача отличная. Забавно, что и тут однозначного ответа нет - на разных процессорах оптимальными по быстродействию окажутся принципиально разные алгоритмы. Дело в соотношении длительности умножения и простых операций - сложений, сдвигов и т.д.
№ 12 14-06-2005 08:35 | |
Кстати, поситал вот сообщения и вспомнил прикольную задачку на оптимизацию.
Нужно написать функцию, которая бы получала на вход байт, а возвращала бы количество битов в этом байте, установленных в 1. Требуется максимальная оптимизация по быстродействию. Остальные критерии несущественны.
№ 11 14-06-2005 06:04 | |
Оптимизация предусматривает наличие критерия.
Привычными для программистов являются оптимизация по памяти и по скорости. А какие еще встречаются критерии?
Мне приходит в голову оптимизация по простоте использования, по надежности, по скорости разработки, по простоте модификации.Дополнения принимаются.
Таким образом мы имеем дело с многокритериальной оптимизацией. Для нее существует понятие множества Паретто. Это множество решений, для которых для любой пары решений не существует предпочтения по всем критериям одновременно. Если по каким-то критериям лучше A то по другим B.
Не вошедшие в множество Паретто варианты не являются лучшими ни в каком смысле.
К сожалению в случае программ множество Паретто очень велико т.к. критерии сильно противоречат друг другу.
Попробуем с этой точки зрения рассмотреть применение СУБД для небольших объемов данных.
По быстродействию и (редкий случай совпадения) по используемой памяти впереди списки объектов. По скорости разработки и легкости модификации впереди "карманные" СУБД.
Выбирай, но осторожно, но выбирай: или вчера большие но по пять, или сегодня по три но маленькие (с).
№ 10 14-06-2005 02:25 | |
Ответ на »сообщение 8« (sega-zero)
___________________________
А что? В Longhorn вроде обещали нечто подобное - файловая система на основе БД. Правда, скорее всего именно так писАться и не будет, опять тот же апи...
WinFS уже вывели из состава Longhorn
№ 9 12-06-2005 14:21 | |
"В споре рождается истина."
Истина в споре не рождается. В споре рождаются синяки. А если серьезно, то это выражение звучит примерно так: "В споре рождается сомнение, а сомнение - первый шаг на пути к истине".
№ 8 12-06-2005 14:06 | |
А что? В Longhorn вроде обещали нечто подобное - файловая система на основе БД. Правда, скорее всего именно так писАться и не будет, опять тот же апи...
<<<... | 27—18 | 17—8 | ...>>> Всего сообщений в теме: 737; страниц: 74; текущая страница: 73
Добавить свое сообщение
Отслеживать это обсуждение
Дополнительная навигация: |
|