Склонение имен существительных и прилагательных готово! Практика оптимизации

Принципы оптимизации

Как известно, пользователи программных продуктов хотят чтобы эти самые продукты занимали как можно меньше места, работали безошибочно и как можно быстрее. Но, как знают разработчики, иногда приходится жертвовать одним качеством для достижения максимальной выгоды в другом месте.

Например, уменьшение размера приложения, работающего с локальной базой данных, может быть достигнуто за счет упаковки-распаковки данных на лету или за счет вычисления значений полей на лету вместо хранения этих данных в базе. Но этот подход уменьшает производительность системы за счет того, что процессору требуется время на упаковку-распаковку или на вычисление значений столбцов. И чем больше мы будем стараться уменьшить размер приложения, тем медленнее в конечном итоге будет работать программа.

Если же мы хотим добиться максимальной производительности, то необходимо хранить все заранее вычисленные значения в базу данных, так что в дальнейшем их извлечение будет занимать намного меньше времени, чем их вычисление. Естественно, что у этого подхода есть и свой минус - размер базы данных растет пропорционально количеству хранимых данных.

В настоящий момент база данных моего синонимайзера содержит таблицы слов и синонимов, и занимает 125 мегабайт. Я решил добавить еще несколько таблиц, которые будут содержать:

  • все формы имен существительных (по числам и падежам)
  • все формы имен прилагательных (по числам, падежам и родам)

Кроме того, я дополню таблицу слов одним полем, которое будет содержать информацию о наличии у слова нужной падежной формы. Это позволит уменьшить время на поиск слов в таблице за счет отсеивания тех слов, для которых заведомо нет никаких форм.

О результатах произведенных действий я расскажу в следующем посте.

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

Оставить комментарий