Архив метки: тормоза

Evernote и тормоза

Сейчас пишут, что Evernote — «умирающий единорог», что они сокращают расходы, пытаются сосредоточиться на главном и так далее. Я использую Evernote постоянно (перешел с Upvise), хотя и, скажем так, малоинтенсивно — в основном простой текст, иногда скриншоты и фото. Соответственно, бесплатного варианта мне хватает с огромным запасом.

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

Попробуем по-другому: допустим, мне Evernote так нравится, что я просто хочу его поддержать деньгами. Тоже нет. Windows-клиент не очень удобный, нужные функции они не добавляют, компенсируя это ненужными. Но главное — тормоза. База размером около 50 МБ — что там может так тормозить? Может. Однажды пользоваться клиентом стало совсем трудно и я пошел разбираться. Действительно, у людей хватает подобных проблем, сообщений очень много. А решение обнаружить не так легко.

Оказывается, нужно зажать Ctrl и открыть меню Help — там будет секретный пункт Optimize Database. Я сделал это. Проблема с тормозами в моем случае решилась.

Теперь вопрос: почему он не делает это сам? Почему база не оптимизируется время от времени, или почему эта функция не вынесена куда-то, где ее может найти нормальный человек? Вместо этого они опустили репутацию Windows-клиента ниже плинтуса и при этом предлагают «try premium» — а что, в премиуме не будет этой многолетней проблемы, для которой у них даже есть решение, но оно секретное?

Займитесь продуктом, друзья, а потом поговорим о деньгах.

Лечение тормозов при обращении к API внешних сервисов

В любом проекте, где есть обращения к внешним API, именно их следует в первую очередь рассматривать как причину тормозов. Тормозит не коннект к базе, не ваша логика, не загрузка локальных файлов — все это мелочи по сравнению с любыми обращениями вовне. Поэтому важно минимизировать их количество.

Очень просто и некрасиво замерить временные интервалы в PHP можно так. Можно грубо оценить, что выполняется быстро, что — медленно; понять порядок величин.

В моем случае работа с API ВКонтакте состояла из 5 обращений к нему, что в сумме занимало (в среднем) почти 0,5 с. Если скорость загрузки страницы критически важна, это очень много. К счастью, у них в API есть замечательный метод execute, позволяющий не только объединять несколько запросов в один, но и использовать промежуточные результаты, не загружая их к себе (там несложный скриптовый язык). Сокращение 5 обращений до 2 дало двукратный выигрыш в скорости.