GNU Coreutils 9.11: повышенная производительность и поддержка многобайтовых символов
Проект GNU объявил о выпуске стабильной версии Coreutils 9.11 — последнего обновления основного набора инструментов командной строки, используемых в большинстве Linux- и Unix-подобных систем.
Ключевая особенность Coreutils 9.11 — значительное увеличение пропускной способности для нескольких широко используемых утилит.
- Ввод-вывод с нулевым копированием: в Linux
catиyesтеперь используют методы ввода-вывода с нулевым копированием, что позволяет повысить производительность до 15 раз и эффективность передачи данных и генерации потоков. - Оптимизация для ARM NEON: на оборудовании на базе ARM команда
wc -lтеперь работает в 4,5 раза быстрее на системах, поддерживающих инструкции NEON. - Более быстрая перетасовка: утилита
shufтеперь работает в 2 раза быстрее за счет использования разблокированного stdio, что снижает накладные расходы при высокоскоростной рандомизации данных.
Ранее некоторые текстовые утилиты Core испытывали трудности с обработкой многобайтовых символов, таких как символы UTF-8 или эмодзи. Coreutils 9.11 решает эту проблему, делая cut, nl и un/expand полностью распознаваемыми многобайтовыми символами. Кроме того, wc -m, который подсчитывает символы, теперь работает в 2,6 раза быстрее при обработке многобайтовых потоков.
Помимо повышения производительности, мы обновили несколько инструментов, чтобы улучшить их совместимость с другими версиями Unix и современными рабочими процессами:
- cut: Добавлены новые параметры (
-w,-F,-O), повышающие совместимость с различными реализациями. - date: Утилита теперь поддерживает разбор дат в формате дд.мм.гг, разделенных точками, который широко используется во многих регионах.
- cksum: Флаг
--checkтеперь использует более надежную систему цитирования имен файлов, чтобы избежать ошибок и проблем с безопасностью при обработке файлов с необычными символами.
Более подробное описание всех изменений в GNU Coreutils 9.11 можно найти в объявлении.
Выводы
Релиз GNU Coreutils 9.11 стал одним из наиболее заметных обновлений набора базовых утилит GNU за последнее время. Разработчики сосредоточились не только на исправлении ошибок, но и на реальном повышении производительности инструментов, которые ежедневно используются в Linux и Unix-подобных системах.
Наиболее заметным улучшением стало ускорение команд cat и yes, которые теперь используют механизм zero-copy I/O в Linux. Это позволяет значительно снизить нагрузку на процессор при передаче данных между потоками и в некоторых сценариях увеличить скорость работы до 15 раз.
Дополнительно в версии 9.11 улучшена работа команды wc на ARM-процессорах с поддержкой NEON, благодаря чему подсчет строк и символов выполняется значительно быстрее. Команда shuf также получила внутренние оптимизации, сокращающие задержки при обработке больших объемов данных.
Отдельного внимания заслуживает расширенная поддержка многобайтовых символов. Утилиты cut, expand, unexpand и nl теперь корректнее работают с UTF-8 и другими современными кодировками, что особенно важно для серверов и рабочих станций с многоязычной средой.
GNU Coreutils 9.11 показывает, что даже фундаментальные системные инструменты могут получать существенные улучшения. Это обновление делает стандартные команды Linux быстрее, эффективнее и лучше подготовленными к современным сценариям использования.
Редактор: AndreyEx
Важно: Данная статья носит информационный характер. Автор не несёт ответственности за возможные сбои или ошибки, возникшие при использовании описанного программного обеспечения.