WackoWiki : WackoБыстродействие

Перед нами стоит серьёзная проблема: как увеличить скорость работы wacko?

Wacko Ускорено

Предложения

  1. По структуре БД
    1. Заменить все VARCHAR -> CHAR
      • Плюсы: увеличивает скорость работы с этими полями на 50–100%.
      • Минусы: занимает заметно больше места.
      • Вывод: наверное, делать.
      • Вывод: наверное, не делать. глупости.
    2. Отказаться от медленного и глючного FTS в mysql и написать свой индексатор. Индексирование делать отдельно от сохранения. Открывать картинку 1х1 пиксель раз в день, которая будет индексировать, либо при помощи WeaselWiki:НебольшоеПериодическоеЗадание.
      • Плюсы: будет заметно быстрее сохранение, немного быстрее селекты.
      • Минусы: очень много работы.
      • Вывод: делать, но потом.
  2. Движок.
    1. Хранить отформатированный текст, кроме акшнов и ссылок (которые анврапнуть и завернуть в двойной-скобка-синтаксис).
      1. переписывается форматтер основной, чтобы вызывал не Линк, а PreLink.
      2. пишется PreLink, который анврапывает все линки, приводя их в простой, удобный для регэкспа формат
      3. пишется PostFormatter, который ничего не умеет, кроме простого Link.
      4. при сохранении пользуемся основным форматтером
      5. при выводе — PostFormatter
      6. вспомогательно — пользуемся основным, куда флажком $this->Format(.... immediate=1) добавляем вызов PostFormatter
      7. под это уже даже есть специальное поле в БД – body_r.
        • Плюсы: Все должно стать заметно быстрее.
        • Минусы: не вижу.
        • Вывод: сначала думать, потом делать.
        • Итог: сделано, привело к большому ускорению, очевидно. 0.2 секунды на страницу примерно сейчас.
  3. Экшны.
    1. Search (?)
    2. lastusers (?)
    3. pageindex
      • оптимизировать, ужасно тормозит
    4. linkstree (??)
  4. Вопросы.
    1. Что-нибудь ещё? DBAL с кэшированием sql-запросов в текстовых файлах?
      • Ку Ме: буэ...
      • Ку Куц вот думает, что не буэ. Сделать экспирейшн в 10 минут...
    2. Стоит сделать хотя-бы примитивное профилирование. Ускорять надо узкое место, а мы его не знаем.
      • Ку Куц: Сейчас узкого места не видать.







Many thanks to: