Тест Моби Дика: как проверить, готово ли приложение к масштабированию

Инженер Hog Bay Software рассказал о методике оценки производительности приложений, тесте, который он называет «Моби Дик Workout». Суть идеи: приложение должно масштабироваться до объёма пользовательского контента. Хотя автор не рассчитывает, что каждое приложение справится с многогигабайтными файлами логов, оно должно легко работать с тем, что пользователь способен создать самостоятельно. Полный текст романа Мелвилла служит отличным бенчмарком, он длиннее и более сложный, чем обычно пишет автор.

Тест состоит из последовательности операций: открыть «Моби Дика» (проверка скорости загрузки), прокрутить до конца и изменить размер окна (проверка на задержки), прокрутить к середине и снова изменить размер, выделить всё содержимое и выполнить операции вырезания-вставки-отмены-повтора, редактировать текст в середине файла (проверка на лаги при вводе и прыгающий скролл), повторять пункты 2-5 до утомления. Затем надо открыть системный монитор macOS и проверить, использует ли приложение приемлемый объём памяти.

Автор подчёркивает, что компьютеры настолько быстрые, а текст романа, настолько маленький, что если приложение не пройдёт этот тест, это указывает на возможные проблемы. Методика не универсальна: хорошее приложение для конкретного пользователя может провалить тест, а плохое, пройти. Для тестирования предусмотрены файлы в нескольких форматах: MobyDick.bike (собственный формат для Bike Outliner), MobyDick.opml (для приложений-аутлайнеров) и MobyDick.markdown (для редакторов Markdown). Сам автор использует этот тест при разработке Bike Outliner.

Ключевые факты

  • Тест «Моби Дик Workout» проверяет масштабируемость приложения на примере полного текста романа Мелвилла
  • Включает 5 операций: загрузка, скролл с ресайзом окна, выделение-вырезание-вставка-отмена, редактирование в середине, проверка памяти
  • Практический критерий: если приложение справляется с романом без лагов и задержек при скроллинге и окончании операций, оно готово к масштабированию
  • Доступны тестовые файлы в трёх форматах (Bike, OPML, Markdown) для разных типов приложений
  • Тест не идеален, хороший инструмент может его провалить, а плохой пройти, но он полезен как первичный фильтр производительности

Почему это важно

Производительность приложения при работе с большими объёмами контента, критический показатель качества. Многие современные приложения страдают от лагов, задержек при скроллинге, расхода памяти когда пользователь работает с документом в несколько десятков килобайт. Тест на Моби Дике показывает, способно ли приложение масштабироваться от игрушечных примеров к реальным рабочим нагрузкам, которые пользователь может создать самостоятельно.

Кому это важно

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

Как это применить

Скачать один из предоставленных тестовых файлов (MobyDick.bike для Bike Outliner, MobyDick.opml для аутлайнеров, MobyDick.markdown для редакторов Markdown). Выполнить последовательность операций: открыть файл, прокрутить его полностью, ресайзить окно на скорости, прокрутить к середине, повторить ресайз, выделить весь текст и выполнить операции вырезания-вставки-отмены-повтора, отредактировать текст в середине, повторить несколько раз. После этого открыть системный монитор и проверить объём памяти, используемой приложением.

Можно ли доверять

Тест основан на практических операциях, которые выполняет типичный пользователь, поэтому он хорошо коррелирует с реальным опытом. Автор специально выбрал Моби Дика как текст, более сложный и объёмный, чем то, что он пишет сам, это дорожка безопасности, которая даёт запас. Проверка памяти добавляет объективности. Однако сам автор уточняет: результат теста, это сигнал, а не приговор. Приложение может быть идеально подходящим для конкретного пользователя, даже если провалит тест, или наоборот.

Риски и подводные камни

Тест не учитывает специфику вашей работы: если вы работаете с документами размером в 100 кб, то провал на романе может быть не критичен. Компьютеры разные, то, что медленно на Mac mini, может быть приемлемо на новом MacBook Pro. Тест проверяет только единичные операции, а не комплексные сценарии работы. Кроме того, алгоритм оптимизации приложения может быть специализирован под определённые форматы или структуры данных, и генерический тест это не покажет.

«Если приложение хорошо работает с Моби Диком, это хороший показатель того, что оно справится с моими потребностями»

— Hog Bay Software