Выскажи свое мнение
Категории раздела
Статьи с других форумов [25]
Наш опрос
Пользуетесь ли Вы Твиттером?
Всего ответов: 27
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
Главная » Статьи » Чужие статьи » Статьи с других форумов

Оптимальный код?
В самом начале работы было желание максимально оптимизировать скорость вычисления показателей, я использовал "хитрые" алгоритмы кеширования значений расчетных показателей, которые будут в дальнейшем использоваться для вычисления других значений. Смотрел, и радовался, как же "круто" я все продумал и сделал.

Но со временем уточнялась теория и возникала необходимость изменять не только нормы, коэффициенты и формулы вычисления показателей, но и алгоритмы получения значений вообще. В итоге постепенно скорость разменивалась на понятные глазу алгоритмы вычислений. Когда же количество входных показателей выросло с 30 до 80, а расчетных до 300, код уже был очень далек о оптимального по скорости. Вычисляемые показатели ссылались на другие, другие — на третьи, и так несколько уровней вложенности, на каждом из которых повторно производились вычисления одних и тех же значений.

С одной стороны, это кошмарно — столько напрасных вычислений, необъятное поле для оптимизации. Но если взглянуть на проблему шире, ситуация меняется в корне:
1. Программа используется на предоставляемом разработчиком железе
2. При тех же финансовых ограничениях, мощность железа выросла настолько, что неоптимизированные алгоритмы на новом железе работаю быстрее оптимизированных на старом.
3. Показатели вычисляются дискретно, нагрузка на ЦП в момент вычислений увеличивается не более чем 3-4% при общей постоянной нагрузке в 20-25 и пиковой в 50%
4. Периодически, взаимосвязи между показателями изменяются, приходится разбираться в том, что было сделано ранее, вносить изменения и дополнения
5. Самое ценное — при взгляде на функцию вычисления любого показателя понятно, что имеется ввиду.

Вывод: критерии оптимальности кода и алгоритма зависят от каждой конкретной задачи, и сейчас они все больше и больше смещаются от оптимизации под железо к оптимизации под человека-разработчика, насколько позволяет ситуация. Железки с каждым днем становятся вcе круче и круче, а программисты — все старее и старее :)


Источник: http://habrahabr.ru/blog/development/47954.html#habracut
Категория: Статьи с других форумов | Добавил: MN (30.07.2008)
Просмотров: 636 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Copyright MyCorp © 2024Конструктор сайтов - uCoz