Движок формул Univer на Rust: миллионы формул на сервере

Движок формул Univer на Rust в десяти книгах: почти 2 млн узлов формул, сравнение с Excel и LibreOffice, графики и XLSX для скачивания.

Движок формул Univer на Rust обеспечивает серверные вычисления электронных таблиц в Univer Office SDK для пакетной обработки, отчётов и автоматизации с агентами. Когда бюджеты, прогнозы и бизнес-правила содержат сотни тысяч или миллионы формул, вычислительная мощность становится важной основой приложения.

Мы измерили десять книг с повторяющимися формулами, условной статистикой, межлистовыми бюджетами и прогнозами. Три результата показывают масштаб работы, с которым справляется движок:

  • Почти 2 миллиона узлов формул: 12.29 секунды, включая нативную загрузку и полный расчёт.
  • Бюджет проекта на 54 листах: 1.27 секунды.
  • Продажи с COUNTIFS: 3.54 секунды.

Результаты на десяти книгах

Rust включает загрузку нативного снимка и полный расчёт, без преобразования XLSX. Excel и LibreOffice включают открытие исходного XLSX и полный пересчёт.

Секунды; меньше — быстрее. Горизонтальная шкала логарифмическая.

Все результаты и скачивание книг

Нажмите название, чтобы скачать исходный XLSX и изучить бизнес-модель.

КнигаДвижок формул Univer на Rust
Нативная загрузка + расчёт (с)
Excel
Открытие + пересчёт (с)
LibreOffice
Открытие + пересчёт (с)
Полмиллиона формул3.542.3918.74
Смешанная нагрузка формул5.083.119.72
Прогноз · большая модель17.678.5512.86
Большой бизнес-анализ12.2910.808.99
Продажи COUNTIFS3.5419.47320.01
Межлистовой бюджет проекта1.270.732.96
Формулы агрегации0.271.033.10
Вложенные IF и рабочие дни1.653.482.21
Расчётная модель CBAM1.190.741.83
Прогноз · малая модель13.025.797.61

У каждой модели свои особенности

В этих нагрузках движок формул Univer на Rust показывает хорошие результаты на условном подсчёте, агрегациях и рабочих днях. Время определяется не только числом формул: важны диапазоны, функции и зависимости.

Excel и LibreOffice быстрее завершают прогнозные модели, задавая направление дальнейшей оптимизации. Все результаты открыты, чтобы разработчики могли оценить собственные нагрузки.

Добавьте вычисления в своё Office-приложение

Движок формул Univer на Rust участвует в серверных вычислениях Office SDK. Приложение может рассчитать конкретную ревизию и сохранить результаты в её Snapshot. Браузер повторно использует актуальные значения и продолжает отвечать на правки своим движком формул.

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

Изучите безголовое выполнение и серверные вычисления или создайте приложение по быстрому старту Office SDK.

Методика и сведения о книгах

Rust загружает заранее преобразованный нативный JSON; Excel и LibreOffice открывают XLSX, включая обработку документа и стилей. Измеряются эти входные форматы. Запуск, предварительное преобразование и последующая проверка исключены; базовое время открытия не вычитается.

Rust использует один прогрев и пять измерений на книгу, каждый раз в отдельном процессе с новым документом. Значения Rust — медианы.

Среда контрольных записей Excel и LibreOffice: Windows 11, Intel Core i7-13700H, около 32 ГБ ОЗУ. Excel 16.0 build 20527.0, 20 потоков расчёта; LibreOffice 26.8.1.1, многопоточные вычисления на CPU включены, ускорение OpenCL не используется. Новый замер Rust использует 20 потоков.

ДвижокИзмеряемая операцияПубликуемая статистика
Движок формул Univer на RustНепрерывный таймер: чтение нативного файла → десериализация JSON → load_snapshot → начальные зависимости → полный принудительный расчёт → применение. Предварительное преобразование XLSX исключено.1 прогрев и 5 измерений на книгу; медиана. Каждый запуск — отдельный процесс и новый документ; 20 потоков.
Excel COMОт нового Workbooks.Open до возврата CalculateFullRebuild(), с явным перестроением зависимостей и полным пересчётом.1 прогрев и 5 измерений на книгу; медиана.
LibreOffice без интерфейса / UNOОт открытия исходного XLSX до возврата calculateAll(), включая работу при открытии.медиана 5 измерений; продажи COUNTIFS — один успешный диагностический запуск.

Этапы загрузки и расчёта Rust

Медиана каждого столбца рассчитана отдельно, поэтому их сумма может отличаться от медианы непрерывного общего времени.

КнигаЧтение, десериализация
и загрузка (с)
Зависимости, полный расчёт
и применение (с)
Непрерывное общее время (с)
Полмиллиона формул1.272.253.54
Смешанная нагрузка формул0.604.505.08
Прогноз · большая модель3.6513.9417.67
Большой бизнес-анализ2.659.4612.29
Продажи COUNTIFS0.612.973.54
Межлистовой бюджет проекта0.390.881.27
Формулы агрегации0.090.180.27
Вложенные IF и рабочие дни0.271.401.65
Расчётная модель CBAM0.091.081.19
Прогноз · малая модель2.4010.2013.02

Содержимое каждой книги

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

КнигаУзлы формулЯчейки данных / листыОсобенности формул
Полмиллиона формул500,0011,000,047 / 2SUM, AVERAGE, IF, XLOOKUP; множество повторяющихся формул.
Смешанная нагрузка формул367,954432,055 / 7SUMIF, AVERAGEIFS; условная статистика, даты и текст.
Прогноз · большая модель1,463,7211,549,982 / 46 уровней вложенности; INDEX, LARGE, OFFSET, MATCH и массивы.
Большой бизнес-анализ1,992,537113,084 / 317 уровней; межлистовые ссылки, обработка текста и формулы совместимости.
Продажи COUNTIFS349,630299,573 / 2IF, AND, COUNTIFS; диапазоны подсчёта, растущие с каждой строкой.
Межлистовой бюджет проекта68,576101,378 / 5454 листа; межлистовые бюджеты с VLOOKUP и INDIRECT.
Формулы агрегации26,9516,841 / 2IFERROR, AVERAGE, SUM; агрегации с длинными списками аргументов.
Вложенные IF и рабочие дни118,821338 / 110 уровней IF; рабочие дни через NETWORKDAYS.
Расчётная модель CBAM52,73913,738 / 196 уровней; поиск, условная статистика, динамические ссылки и матрицы.
Прогноз · малая модель974,6251,040,507 / 4Та же семья формул, что у большой прогнозной модели, в меньшем масштабе.

Данные, проверка и воспроизведение

Отчёт проверяет число формул и выборку значений для контроля полноты расчёта тестируемого пути. Это не устанавливает равенства всех результатов между продуктами.

API пересчёта: Excel CalculateFullRebuild и LibreOffice calculateAll.

© 2026 DreamNum Co., Ltd.