ВозможностиВеб-редакторЦенаДокументацияБлог
СкачатьКупить mori
Бенчмарки · 1.0 · измерено 2026-09-09

Цифры, которые можно воспроизвести.

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

0
кадров в простое / 10 с
18.2 ms
от нажатия до пикселя, p95
387 ms
холодный запуск, файл 100 KB

Среда

Все цифры на этой странице получены на одном компьютере: обычном ноутбуке со встроенной графикой, на котором разрабатывается приложение. Версия для Windows здесь ещё не измерялась, а версия для macOS находится в разработке; их строки появятся здесь после выпуска.

КомпьютерОСДисплейПримечания
Ноутбук, Intel i5-11300H, 23 GB, Iris Xe (Mesa 25.2)Ubuntu 24.04, GNOME в X112560×1440 @ 180 HzРелизная сборка 1.0.0, коммит 183cc22

Тестовый документ: tools/perf/fixtures/doc100k.md (100 KB, 874 строки) · 3 запуска, медиана · указатель за пределами окна · настоящий сеансовый автобус.

Кадры в простое

Утверждение: когда ничего не происходит, mori ничего не отрисовывает. Документ открыт в режиме «Редактор», фокус снят с редактора, чтобы каретка не мигала, ввода нет 10 секунд (t = 5–15 с после запуска). Мы считаем снимки самого редактора — каждый случай, когда GTK просит его выполнить отрисовку.

ПлатформаКадров за 10 сCPU, среднееМетод
Linux00.0%Подсчёт снимков редактора через tools/perf/gate.sh

Когда мигание каретки включено — по умолчанию, пока окно в фокусе, — редактор перерисовывается один раз на каждое мигание: меняется только каретка. Как только окно теряет фокус, перерисовка прекращается. Таймер мигания — единственный допустимый постоянный таймер приложения; других повторяющихся источников в простое нет.

Задержка ввода

Утверждение: 18.2 мс от нажатия до пикселя, 95-й перцентиль. Измерено вне процесса при помощи tools/perf/index/e2e_latency.sh: клавиша подаётся через XTest, а экран опрашивается, пока не изменится строка с курсором. Документ 100 КБ, режим Live, 2560×1440 при 180 Гц. На 119 нажатиях: p50 14.1, p95 18.2, p99 19.1, максимум 20.4 мс.

В число входит всё, что лежит между клавишей и пикселем: тулкит, композитор и ожидание следующего кадра. Это ожидание приходится куда угодно между нулём и интервалом обновления — на 180 Гц не более 5.6 мс, в среднем 2.8, — поэтому это число можно ставить рядом только с другим редактором, измеренным при той же частоте. Время отклика самого экрана не учтено; мы его не измеряли.

Холодный запуск

Утверждение: 387 мс от запуска до окна, с открытым файлом 100 КБ и пустым кэшем. Холодный старт — это новый процесс и сброшенный страничный кэш: бинарник, библиотеки и файл читаются с диска. С тёплым кэшем — в обычной жизни — тот же запуск занимает 259 мс. Часы стартуют на exec и останавливаются, когда окно появилось; первая отрисовка — те же часы, остановленные на первом рисовании документа.

Редакторexec → окноТёплый кэшПервая отрисовкаПроцессы
mori387 ms259 ms377 ms1
Typora814 ms511 ms—9
Obsidian2,975 ms2,862 ms—7
MarkText2,042 ms1,872 ms—6

Метод: tools/perf/run-index.sh, холодный = новый процесс со сброшенным страничным кэшем, файл 100 КБ открыт при запуске, пять прогонов. Память — это PSS из /proc после того, как документ свёрстан и приложение перешло в покой, минус то же измерение с пустым документом: столько стоит нам сам документ — 9,4 МБ из 70 МБ. Остальное — пол из тулкита и графического стека, который на этой машине платит любое GTK4-приложение; он двигается вместе с драйвером, поэтому мы публикуем свою долю. Бинарник весит 6.1 МБ. Первую отрисовку читаем из собственного счётчика кадров редактора, а он есть только в нашей dev-сборке — у остальных трёх стоит прочерк, а не догадка.

Тот же компьютер, тот же документ

Typora, Obsidian и MarkText — каждый открыт на том же документе 100 КБ в своём режиме редактирования на месте (WYSIWYG у Typora, Live Preview у Obsidian, MarkText), на машине выше и в том же прогоне, что и наши числа. Память — PSS всего дерева процессов после того, как документ свёрстан и приложение перешло в покой; CPU в покое — CPU дерева за тридцать секунд с окном в фокусе и без ввода; CPU набора — CPU дерева, пока около 700 символов набираются в человеческом темпе, по одному каждые 150 мс.

РедакторВерсияPSSCPU в простоеCPU при набореПроцессы
mori1.0.0, коммит 183cc2270 MB0.0%7.2%1
Typora1.14.9457 MB1.1%30.5%9
Obsidian1.12.7346 MB1.6%32.5%7
MarkText0.20.0-rc.1405 MB1.4%62.3%6

Первым движки расходятся в покое: окно открыто, ничего не происходит — mori не тратит измеримого процессора и просыпается ноль раз в секунду, а три редактора на Electron сидят на 1,1–1,6 % и 29–75 пробуждениях. Второе расхождение — набор: доля ядра против трети или двух третей. Третье — память: один процесс против шести-девяти, 70 МБ против 346–457.

MarkText запускался с --no-sandbox (его песочница не стартует на этом ядре); Obsidian запускался в отдельном каталоге пользовательских данных. Сырые данные: tools/perf/results/2026-09-09-linux-myasus-180hz.json.

Воспроизвести

Скрипты измерения и файл результата лежат в репозитории; публичный репозиторий с корпусом и сырыми данными готовится, даты пока нет. tools/perf/run-index.sh прогоняет все показатели, tools/perf/check.sh проверяет результат по бюджетам. Если ваши числа расходятся с нашими больше чем на 15 %, напишите нам; мы опубликуем расхождение.

Последний прогон: 2026-09-09, один запуск tools/perf/run-index.sh на коммите 183cc22 — все числа на этой странице, наши и других редакторов, взяты из этого прогона. Повторяем к каждому релизу.

Оставьте только текст
Русский
© 2026 mori