Сравнение библиотек создания документов формата docx для языка программирования Golang
Автор: Брянцев А.А., Завтур П.С.
Журнал: Международный журнал гуманитарных и естественных наук @intjournal
Рубрика: Технические науки
Статья в выпуске: 9-1 (96), 2024 года.
Бесплатный доступ
Существует множество библиотек для разных языков программирования позволяющих создавать и модифицировать файлы формата .docx. Отличие в скорости работы популярных библиотек для языка программирования Golang не было хорошо изучено. Мы рассмотрели три востребованные библиотеки: ooxml, docxlib, unioffice, чтобы лучше понять, какая из них лучше и определить преимущества каждой из библиотек. Возможны разные сценарии применения данных библиотек. Для лучшего выбора необходимо знать, насколько библиотеки различаются в затратах на их использование. Был проведен сравнительный анализ по критерию времени генерации документов и их веса.
Библиотека
Короткий адрес: https://sciup.org/170207095
IDR: 170207095 | DOI: 10.24412/2500-1000-2024-9-1-124-126
Comparison of libraries for creating docx documents for the Golang programming language
There are many libraries for different programming languages that allow you to create and modify .docx files. The difference in the speed of the popular libraries for the Golang programming language has not been well studied. We have reviewed three popular libraries in order to better understand which one is better and determine the advantages of each of the libraries. There are different scenarios for using these libraries. To make the best choice, you need to know how libraries differ in the cost of using them. A comparative analysis was carried out according to the criteria of document generation time and their weight.
Текст научной статьи Сравнение библиотек создания документов формата docx для языка программирования Golang
В мире программирования современных приложений эффективная работа с документами является неотъемлемой частью функциональности. Формат docx, пользующийся широкой популярностью в рабочих и образовательных средах, требует надежных инструментов для создания, редактирования и форматирования. Язык программирования Golang (или Go) привлекает внимание разработчиков своей производительностью и удобством, стимулируя поиск оптимальных библиотек для работы с данным форматом.
Данное исследование представляет собой сравнительный анализ библиотек, предназначенных для создания docx-документов в среде Golang. Акцент делается на анализе основных функциональных возможностей, производительности, удобства в использовании, гибкости кастомизации и поддержки актуальных стандартов формата docx.
Цель настоящего исследования – предоставить разработчикам убедительное сравнение различных библиотек, которые могут быть использованы для генерации docx-файлов в Golang, обеспечивая информацию, необходимую для выбора наиболее подходящего инструмента в зависимости от конкретных требований и целей проекта.
docx, ooxml, docxlib, unioffice.
Методы и организация исследования
Для проведения данного тестирования использовалась небольшая программа собственного написания на языке Golang, фиксирующая начало работы и окончание исполнение команд, относящихся к библиотекам ooxml, docxlib, unioffice.
Критериями сравнения были: скорость создания документов, простота использования библиотек. Данные критерии были выделены, как наиболее важные для сравнения. Скорость создания документов является важным критерием при выборе библиотеки для работы с docx в Golang. Однако, следует помнить, что скорость не должна быть единственным критерием, и ее следует сбалансировать с другими параметрами, например, простота использования библиотек. Простота использования библиотеки является важным критерием при выборе инструмента для работы с .docx в Golang. Однако, важно учитывать, что простота использования не должна жертвовать функциональностью или гибкостью библиотеки, поэтому баланс между удобством и предоставляемыми возможностями также играет важную роль при принятии решения о выборе конкретной библиотеки.
Каждая библиотека была протестирована в двух сценариях использования: файлы с простым текстом, файлы с форматированием, файлы с использованием графических материалов.
Тест «файлы с простым текстом» поможет оценить производительность и надежность библиотеки при многократном создании простых документов, что может быть важным фактором при выборе инструмента для создания и обработки документов в формате .docx в Golang.
Тест «файлы с форматированием» поможет разработчикам оценить возможно- сти библиотеки для работы с форматированием текста в .docx-документах. Использование различных параметров форматирования позволит убедиться в правильности применения стилей и атрибутов текста, что является важным аспектом при выборе библиотеки для работы с документами в Golang.
Результаты и их обсуждение.
По результатам тестирования были получены соответствующие результаты, приведенные ниже в таблицах 1-4.
Таблица 1. Сводная таблица затраченного времени для различного количества документов
|
Кол-во файлов |
ooxml, сек |
docxlib, сек |
unioffice, сек |
|
1 |
0,0021 |
0,0016 |
0,0021 |
|
10 |
0,0144 |
0,0160 |
0,0165 |
|
50 |
0,0642 |
0,0813 |
0,0700 |
|
100 |
0,1265 |
0,1646 |
0,1206 |
|
500 |
0,6849 |
0,9669 |
0,7027 |
|
1000 |
1,3110 |
1,7737 |
1,3896 |
Таблица 2. Сводная таблица затраченного времени на создание одного большого доку- мента
|
t, сек |
Библиотека |
|
0,0853351 |
ooxml |
|
0,0624579 |
docxlib |
|
0,0699724 |
unioffice |
Таблица 3. Сводная таблица затраченного времени на создание одного простого документа
|
t, сек |
Библиотека |
|
0,0020691 |
ooxml |
|
0,0010290 |
docxlib |
|
0,0015658 |
unioffice |
Таблица 4. Сводная таблица веса одного документа
|
Простой, Кб |
Большой, Кб |
Библиотека |
|
4,95 |
1375 |
ooxml |
|
8,34 |
1380 |
docxlib |
|
4,93 |
1375 |
unioffice |
Исходя из полученных результатов библиотека docxlib показала лучшие результаты при создании одного документа, однако при множественном создании документов результаты являются худшими относительно других библиотек. В сравнение весов библиотека docxlib показала себя значительно хуже остальных, разница результатов остальных библиотек составляет погрешность.
По интерфейсу используемые библиотеки являются очень похожими и в большинстве случаев отличаются в наименовании функций, но не их структура.
Вывод
По результатам всех тестов и их анализа мы пришли к выводу, что самой выгодной библиотекой является unioffice. Данная библиотека хоть и проигрывает docxlib в скорости генерации одного документа, однако вес получаемого файла значительно меньше. Все рассмотренные библиотеки требования к скорости создания или весу простые в использовании и для разных си- файла.
туаций можно подобрать подходящую под
Список литературы Сравнение библиотек создания документов формата docx для языка программирования Golang
- Донован, Алан А.А., Керниган, Брайан. Язык программирования Go.: Пер. с англ. - М.: ООО "И.Д. Вильямс", 2016. - 432 с.
- Индрасири Касун, Курупу Данеш, gRPC: запуск и эксплуатация облачных приложений. Go и Java для Docker и Kubernetes. - СПб.: Питер, 2021. - 224 с.
- Клеппман М., Высоконагруженные приложения. Программирование, масштабирование, поддержка. - СПб.: Питер, 2019. - 640 с.: - (Серия "Бестселлеры O'Reilly").
- Петров Алекс, Распределенные данные. Алгоритмы работы современных систем хранения информации. - СПб.: Питер, 2021. - (Серия "Бестселлеры O'Reilly").
- Адам Фриман, Pro Go: The Complete Guide to Programming Reliable and Efficient Software Using Golang 1st ed. Edition,. ISBN: 978-1-4842-7354-8