Среда
Все цифры на этой странице получены на одном компьютере: обычном ноутбуке со встроенной графикой, на котором разрабатывается приложение. Версии для macOS и Windows находятся в разработке; их строки появятся здесь после выпуска.
| Компьютер | ОС | Дисплей | Примечания |
|---|---|---|---|
| Ноутбук, Intel i5-11300H, 23 GB, Iris Xe (Mesa 25.2) | Ubuntu 24.04, GNOME в X11 | 2560×1440 @ 60 Hz | Сборка выпуска, коммит 04cf7dc |
Тестовый документ: tools/perf/fixtures/doc100k.md (100 KB, 874 строки) · 3 запуска, медиана · указатель за пределами окна · настоящий сеансовый автобус.
Кадры в простое
Утверждение: когда ничего не происходит, mote ничего не отрисовывает. Документ открыт в режиме «Редактор», фокус снят с редактора, чтобы каретка не мигала, ввода нет 10 секунд (t = 5–15 с после запуска). Мы считаем снимки самого редактора — каждый случай, когда GTK просит его выполнить отрисовку.
| Платформа | Кадров за 10 с | CPU, среднее | Метод |
|---|---|---|---|
| Linux | 0 | 0.0% | Подсчёт снимков редактора через tools/perf/gate.sh |
Когда мигание каретки включено — по умолчанию, пока окно в фокусе, — редактор перерисовывается один раз на каждое мигание: меняется только каретка. Как только окно теряет фокус, перерисовка прекращается. Таймер мигания — единственный допустимый постоянный таймер приложения; других повторяющихся источников в простое нет.
Задержка ввода
Утверждение: 9.7 ms от нажатия клавиши до пикселя на 95-м процентиле. Нажатие → обработка: p95 0.29 ms. Нажатие → пиксель с учётом vsync: p95 9.7 ms. Измерено внутри процесса с помощью tools/perf/typing.sh, документ 100 KB, режим «Редактор».
«Обработано» означает, что событие ввода обновило документ и аннулировало затронутые макеты; «пиксель» — завершение следующего снимка, которое ожидает тактового сигнала кадра и потому имеет нижнюю границу, заданную vsync (16.7 ms при 60 Hz). Для 300 нажатий распределения составили p50 0.01 / p95 0.29 / max 0.48 ms и p50 2.6 / p95 9.7 / max 12.7 ms. Измерения выполнены 2026-09-02 на сборке M3, более раннем коммите, чем контрольный запуск ниже. Результаты набора текста ещё не добавлены в каталог результатов, поэтому перед использованием их следует воспроизвести. Время отклика самого дисплея не учитывается; мы его не измеряли.
Холодный запуск
Утверждение: 211 ms от запуска до появления окна при открытом файле 100 KB. Холодный запуск означает новый процесс с файлом, открываемым при старте; предварительного прогрева нет, кеш страниц не очищается. Отсчёт начинается в exec и заканчивается при отображении окна; время первой отрисовки измеряется теми же часами до первого снимка документа редактором.
| Платформа | exec → окно | Первая отрисовка | Размер исполняемого файла | RSS (PSS) после загрузки |
|---|---|---|---|---|
| Linux | 211 ms | 231 ms | 3.1 MB | 69 MB |
Метод: tools/perf/gate.sh, холодный запуск = новый процесс, при запуске открыт файл 100 KB. PSS считывается из /proc через пятнадцать секунд, когда документ уже скомпонован, а приложение перешло в простой.
Тот же компьютер, тот же документ
Typora, Obsidian и MarkText по очереди открывали один и тот же документ 100 KB в режиме встроенного редактирования (WYSIWYG в Typora, Live Preview в Obsidian, обычный режим MarkText) на указанном выше компьютере с помощью одного скрипта. Память — PSS всего дерева процессов через двенадцать секунд после запуска; CPU в простое — загрузка CPU деревом процессов с 5-й по 10-ю секунду при активном окне без ввода; CPU при наборе — загрузка дерева процессов во время ввода примерно 150 символов с интервалом 30 ms. По семь запусков каждого редактора, среднее значение после одного отброшенного прогревочного запуска.
| Редактор | Версия | PSS | CPU в простое | CPU при наборе | Процессы |
|---|---|---|---|---|---|
| mote | предварительная версия, коммит b17c3bf | 78 MB | 0.0% | 10.9% | 1 |
| Typora | 1.14.9 | 453 MB | 0.1% | 102.6% | 8 |
| Obsidian | 1.12.7 | 361 MB | 0.8% | 152.5% | 7 |
| MarkText | 0.19.1 | 416 MB | 0.6% | 135.8% | 6 |
Загрузка CPU у Typora в простое так же мала, как у нас, — мы это прямо указываем. При настоящем простое Chromium снижает активность, поэтому столбец простоя отличает mote от Obsidian и MarkText, но не от Typora. Разница движков видна по памяти и затратам при наборе: один процесс вместо шести–восьми и в десять раз меньше CPU на нажатие. Значение 78 MB здесь выше, чем 69 MB выше, поскольку это показатель всего дерева процессов из другого сеанса; базовое потребление GTK и Mesa между сеансами колеблется примерно на десяток мегабайт.
MarkText запускался с --no-sandbox, поскольку его песочница не запускается на этом ядре; Obsidian работал в новом хранилище только с тремя основными плагинами. Исходные данные: experiments/2026-09-03-apps-idle-startup/raw.csv.
Воспроизвести
Средства тестирования, корпус, исходные CSV и результаты JSON будут опубликованы вместе с бета-версией в открытом репозитории тестов на GitHub. tools/perf/gate.sh <binary> :1 3 запускает контрольный тест, tools/perf/bench-apps.sh — сравнение. Если ваши результаты отличаются от наших более чем на 15 %, сообщите нам; мы опубликуем расхождение.
Последний запуск: контрольный тест 2026-09-03 для коммита 04cf7dc, сравнение с b17c3bf; задержка ввода измерена 2026-09-02 на сборке M3. Повторять для каждого выпуска.