URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 128015
[ Назад ]

Исходное сообщение
"Эксперимент по повышению эффективности работы утилиты cat"

Отправлено opennews , 18-Июл-22 20:49 
Ариадна Конилл (Ariadne Conill), создатель музыкального проигрывателя Audacious, инициатор разработки протокола IRCv3 и лидер команды по обеспечению безопасности Alpine Linux, провела исследование насколько можно оптимизировать утилиту cat, осуществляющую вывод в стандартный выходной поток одного иди нескольких файлов. Для улучшения производительности cat в Linux предложено два варианта оптимизаций, основанных на использовании  системных вызовов sendfile и splice для прямого копирования данных между файловыми дескрипторами на уровне ядра без переключения контекста в пространство пользователя...

Подробнее: https://www.opennet.ru/opennews/art.shtml?num=57517


Содержание

Сообщения в этом обсуждении
"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено zram , 18-Июл-22 20:49 
Не мучайте кошку!!!

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Иисус , 18-Июл-22 20:50 
Тут история скорее про лоток

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 19-Июл-22 09:49 
Скорее, про то что кошку оказывается можно напоить пургеном.

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 18-Июл-22 20:54 
Ага, как будто нечем заняться. Был бы котом, наверное, слизал бы себе яйца до тазовых костей...

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено _kp , 20-Июл-22 02:18 
Сat в скриптах же активно используется, а не просмотра файлов, и её оптимизация способствует заметному ускорению работы в повседневных задачах.
Плюс, за положительныным опытом cat подтягут и остальные инструменты.

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено n00by , 20-Июл-22 05:54 
То есть выводит всего пару строк текста, но часто, и на каждый такой чих инициализируется рантайм Си. По-моему, это давно оптимизировал Ларри Уолл.

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено тигар.логиниться.лень , 20-Июл-22 12:56 
ага. "скриптописателей" много еще не умерло, которые проповедуют UUOC, а хипсторы вообще про него, возможно, и не знают.

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено all_glory_to_the_hypnotoad , 20-Июл-22 15:16 
В скриптах с cat-ом не перемывают гигабайты. Оптимизация для скриптов это снижение задержки прогрева при запуске, но она и так скорее всего мизерная. Даже если перемалывать гигабайты, то наверняка в типичных сценариях проблема будет с пайпами и с кешом (cat будет вымывать файловый кеш)

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено ммнюмнюмус , 28-Июл-22 15:40 
Странные тенденции.
Замечено, что некоторые из узкоспециальных coreutils работают медленнее, чем их эмуляции на awk / sed (пример - cut). А в bash например, вопроки тормознутости самого интерпретатора, намного выше скорость передачи через пайп, чем у dash.

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 18-Июл-22 23:46 
Ей же яйца лижут.

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Бывалый смузихлёб , 19-Июл-22 06:30 
Похоже что она

Ну вот, уже почти кошка. Осталось только начать свои лизать а не чужие


"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 19-Июл-22 09:47 
А у нее вроде таки нет яиц. Хоть я в биографию сильно и не лез. Это иркоп фриноды бывшая. И черт знает насчет дырок, но как кодер - покажет мастеркласс любому. Утверждает что у нее код видите ли на 2 планетах работает. А вам слабо?!

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Товарисч , 19-Июл-22 17:13 
Полезное дело человек делает, вам жалко чтоли? Иногда интересно поиграться, а если из этого что-то дельное выйдет, то почему нет? Именно потому что такие люди есть и постоянно что-то чистят и оптимизируют у нас и есть система которая летает, а не всё это убогое унылое жрущее гигабайты вроде мака и винды. Я понимаю, что *вам лично* эта оптимизация (будучи включена в апстрим) ничего не принесёт, но если сложить все затраты в мире, сколько энергии и времени это сэкономит? Так держать, *utils это самые используемые утилиты, больше оптимизаций, хороших и разных!

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 18-Июл-22 20:51 
Линуксу, с его реализацией переключения контекстов, ничего не поможет.

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено кубрик , 18-Июл-22 20:59 
Ты сделал ошибку в слове линукс.

> Виндовсу, с его реализацией переключения контекстов, ничего не поможет.

Поправил. Не благодари


"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 18-Июл-22 21:29 
Да, да, расскажи мне про то как ядра писать))

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Michael Shigorin , 18-Июл-22 23:53 
Вы забыли скромно вывалить свой срам, так что и рассказывать Вам может кто угодно что угодно. :]

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 19-Июл-22 00:24 
Я человек простой.

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 21-Июл-22 03:02 
AnonBSDnulOS ???

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено topin89 , 18-Июл-22 21:09 
Чем оно хуже в сравнении с FreeBSD, MacOS или Windows?

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 18-Июл-22 23:18 
Сразу видно человека не разбирающегося в теме

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 19-Июл-22 09:00 
Как и всем прочим. Иди возрождай Singularity, слёзно выпросив её у мелкомягких, если хочешь кардинально уменьшить кол-во переключений контекстов. Или в DOS'е сиди-работай.

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 19-Июл-22 09:54 
> Линуксу, с его реализацией переключения контекстов, ничего не поможет.

Ващет команда Linux была сильно иного мнения и поэтому они сделали дофейхоа очень крутых и эффективных механизмов на тему.

Во первых, если вам не нравится как работает переключение контекста, можно и не переключать! Во всяком случае, лишний раз. Они, вроде, умеют групировку сисколов при интенсивном потоке и переключение 1 раз на всю группу =)

Во вторых, у остальных переключение контекста будет врядли сильно лучше. С чего бы?

В третьих, они доперли до всяких zerocopy механизмов, когда кернел и юзер тупо шарят блок памяти на двоих, сплайсы тоже где-то недалеко по смыслу.


"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 19-Июл-22 21:39 
Боюсь, что нужно быть конкретнее...

Чудовищный оверхед от переключения контекстов с последующей деградацией производительности без полной утилизации я по опыту наблюдал в Linux сильно чаще, чем в других ОС, но нельзя же вот так сразу говорить, что виновато именно ядро.

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

Давайте еще вспомним, что Linux такие вещи сам в себе не настраивает, нужно учитывать аппаратные особенности сервера (SMP/NUMA), параметры premmption, tick frequency и всякие CONFIG_NO_HZ_IDLE / CONFIG_NO_HZ_FULL.
Все зависит от того как вам сконфигурировали ядро в дистрибутиве (обычно плохо, понавключав энергосберегательных режимов).
Начните читать тут: https://docs.kernel.org/timers/no_hz.html

И вообще каждый случай уникален, но есть еще одна общая черта... Не включайте HyperThreading или как там назвали ваше SMT в процессоре на серверах, где у вас ПО, которое приводит к паразитной нагрузке за счет переключения контекстов. Если планировщики процессов Windows еще умеют хитро шаманить так, чтобы оно не деградировало от наличия SMT, то в Linux эту дрянь лучше сразу выключить.


"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено L29Ah , 18-Июл-22 21:17 
Какое ещё исследование, почему нет патчей!?

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 18-Июл-22 21:24 
Почему это не сделано 10 лет назад?

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 18-Июл-22 21:29 
Потому что это линукс.

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 19-Июл-22 09:56 
Потому что кодеров уровня Ариадны на этом глобусе очень ограниченное количество и они имеют свойство быть озадачены хреновой кучей других проектов, как правило очень хорошо оплачиваемых.

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 19-Июл-22 11:27 
Что сложного вызвать определённую функцию вместо другой?

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 19-Июл-22 12:18 
Сложно до исследования или после?

Постфактум все "умные". Почти, кроме отрицающих реальность.


"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 19-Июл-22 13:41 
Сразу после написания соответствующих системных вызовов, очевидно, поскольку их писали именно для того. чем занимаются утилиты cat и cp.

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 20-Июл-22 12:10 
> системных вызовов, очевидно, поскольку их писали именно для того
> очевидно
> именно

Покажешь слепым какой из системных вызовов написан именно для cat и cp?


"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 19-Июл-22 14:19 
> Что сложного вызвать определённую функцию вместо другой?

Просто - быть умным задним числом. Сложно - быть первым, сделать исследования, понять что можно и лучше было, объективно померять. Еще сложнее - убедиться что после этого существуюшие юзкейсы не развалятся к хренам на каких-то экзотических ситуациях.


"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 19-Июл-22 14:31 
Почему эксперты с opennet и просто знающие люди это не сделали?
Это же так просто?

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено n00by , 19-Июл-22 10:44 
Потому что 10 лет назад никому в голову не пришло сделать cat для 4 гигабайт.

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено beck , 18-Июл-22 21:41 
> для прямого копирования данных между файловыми дескрипторами на уровне ядра

Здравствуй, новая уязвимость.


"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 18-Июл-22 21:49 
Где тут НОВАЯ уязвимость? Просто буфер будет гоняться сразу в ядре, но ядро туда заглядывать не будет и ничего испольнять не будет, тупое копирование.

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 18-Июл-22 23:48 
Ну да, на квоты же явно забили.

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Здрасьте , 19-Июл-22 07:49 
splice очень старый вызов, лет 20 ему, а sendfile и того древнее. В каком месте уязвимость тут может быть новой?

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 19-Июл-22 09:57 
> Здравствуй, новая уязвимость.

Я что-то не понимаю как эксплойтировать копирование данных между дескрипторами. Может вы и read() таким макаром эксплойтировать умеете? Ну тогда наверное и остальные сисколы тоже, да?


"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено anonymous , 19-Июл-22 18:16 
Сразу видно человека не разбирающегося в теме.

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 21-Июл-22 03:06 
Ты файлы/"файлы" УЖЕ открыл, вот они, дескрипторы то. В чём уязвимость?

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено InuYasha , 18-Июл-22 21:58 
"А что, так можно было?" )
Осталось остальные базовые утилиты дотянуть.

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено n00by , 19-Июл-22 10:57 
Начать можно с замеров времени инициализации libc. Но кому это надо? Там вон гигабайты экономятся, красиво смотрится.

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Онаним , 19-Июл-22 00:04 
Может кота ещё на ио-урину переписать?

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 19-Июл-22 01:19 
Надо на Zig переписать.

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Онаним , 19-Июл-22 00:08 
Забыли только рассказать, что и у sendfile() есть ряд проблем, которые легко вылезают в странных конфигурациях с нетипичными файловыми системами и нетипичными дескрипторами, не все из которых удастся отдетектить в cat'е. Со splice() то же самое.

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено pashev.ru , 19-Июл-22 12:41 
Приведи примеры.

Капча 66666


"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Онаним , 19-Июл-22 14:08 
Начнём с того, что оно требует sendpage на принимающей стороне, если это FS.
А так - гуглим
sendfile issues
sendfile sendpage

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Онаним , 19-Июл-22 00:11 
Во, точно, я знаю. Надо для cat отдельный модуль ядра, который read-write будет делать прямо в ядре. А если серьёзно - cat-подобная операция копирования из дескриптора в дескриптор в ядре бы не помешала. copy_file_range маловато, оно с не-файлами не работает.

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено funny.falcon , 19-Июл-22 01:51 
Так для этого и предназначен splice.
Правда, приходится делать два splice через pipe.

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Онаним , 19-Июл-22 09:16 
Ехал splice через pipe, и я о том же.
Копирование между дескрипторами в принципе частая операция, честно говоря, оно бы и sendfile заменило, и много чего ещё.

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 19-Июл-22 14:02 
Я бы для начала разобрался, почему sendfile() оказался медленнее splice+pipe.

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 19-Июл-22 14:21 
> Я бы для начала разобрался, почему sendfile() оказался медленнее splice+pipe.

Так разберись?


"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено ламерок , 20-Июл-22 14:17 
так.. я уже запутался, мне из stdio в unix socket нужно, чем воспользоваться sendfile vs splice?

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 19-Июл-22 00:23 
А io_uring сюда прикрутить можно?

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено аноним228 , 19-Июл-22 05:36 
Анон ты чем сейчас занят? Где комментарий: "Единственный способ ускорить сишное приложение - это если переписать его на RUST!"

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 19-Июл-22 07:33 
Учитывая открытия этого гендорного чуда, нас будет ждать очередное аут оф мемори как минимум. Сишка и тру сишники такие тру...

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 19-Июл-22 11:34 
что не так с открытием и почему тебе не фиолетово, что там за чудо за клавиатурой?

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено onanim , 19-Июл-22 09:06 
я как только увидел заголовок, сразу подумал, что cat на Rust переписали.

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 19-Июл-22 12:23 
Мозила переписывала-переписывала FF - недопереписала...

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 19-Июл-22 13:14 
У всех проблем одно начало...
Сидела женщина, скучала,
Качала ножкою своей,
И вдруг пришла мыслишка к ней...
.....

© Copyright: Александр Флинде, 2015


"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 19-Июл-22 08:21 
> Ариадна Конилл (Ariadne Conill), создатель музыкального проигрывателя Audacious

Автором Audacious ещё был нормальный мужик William Pitcock, а не г*мик Ariadne Conill, которым он стал только в августе 2019:

https://github.com/audacious-media-player/audacious/commit/f...


"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 19-Июл-22 08:27 
Сравни фото:

https://www.last.fm/ru/user/nenolod

https://blog.chainguard.dev/content/images/2022/05/me.jpg


"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 19-Июл-22 09:13 
Я об этом писал наверху, захейтили или не поверили, хз)

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 19-Июл-22 08:43 
Вау. Спустя столько лет лунуксоиды решили прекратить быдлокодить и вспомнили об оптимизациях.

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 19-Июл-22 09:23 
какое-то сильное преувеличение об авторстве audacious. это ж был просто форк xmms.

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 19-Июл-22 09:35 
Вроде уже переписали на Rust: https://github.com/sharkdp/bat

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 19-Июл-22 10:06 
Это вообще отдельная херь не имеющая отношения к сабжу.

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 19-Июл-22 10:15 
Вот бы кто cat на Project Verona написал…

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 19-Июл-22 11:35 
> Вот бы кто cat на Project Verona написал…

Я даже не знаю что такое "Project Verona". Поэтому на меня можете не смотреть, меня жизнь этого проекта интересует меньше чем жизнь личинок мухи на другом континенте.


"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 19-Июл-22 11:17 
Пожалуй да, bat больше похож на less.

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено онаним , 19-Июл-22 11:38 
должно быть "rat"

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 19-Июл-22 10:39 
Ctrl+C/kill теперь не будет работать?

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 19-Июл-22 11:35 
кстати, интересно. часто случайно делаю cat бинарника на медленном ssh

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 19-Июл-22 10:51 
sed не помешало бы оптимизировать.

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 19-Июл-22 13:37 
А практическая польза от cat с 4 Гб вообще есть? Вообще для копирования используют cp в нем как дела обстоят?

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 19-Июл-22 14:03 
> Вообще для копирования используют cp

Ведущие собаководы для копирования используют dd


"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 19-Июл-22 14:25 
> Ведущие собаководы для копирования используют dd

Ну сделай им cp --reflink. Хотя с таких собаководов станется и 2-терабайтный образ винча копировать целиком, когда reflinked "копия" менее чем за секунду готова. Правда, вроде, это все же эксперты по мойке (или стрижке?) собак были...


"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 19-Июл-22 18:36 
> cp --reflink.

Ведущие собаководы используют ln


"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 20-Июл-22 02:55 
Маленький нюансик в том что вон те 2 терабайтных образа ведут себя как независимые файлы. И если эксперимент с починкой на "копии" зафейлился, можно стереть "копию" и попробовать иной подход.

А с ln вы таки безвозвратно загадите единственную копию которая была. И что хотите потом то и делайте. Так что я останусь при мнении что это ведущим собаководам лучше заниматься стрижкой собак. Или мойкой, что там пох хотел делать, не помню, но ему подходило больше чем линухами рулить. А зачем позориться такой эффективностью, когда те кто освоил современные технологии делают вас в десятки раз? Чтобы показывать всем остальным что вы отсталые днища? Это единственное ваше применение в современном IT.


"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 20-Июл-22 12:25 
> Маленький нюансик

Маленький нюансик начался с твоего 'cp --reflink', который возможен в пределах одной файловой системы, который поддерживает reflink'и.

В отличии от в шутку предложенной dd, который практически аналог cp.

Мой нюансик был ответом на твой нюансик. Давай меряться, чей нюансик меньше, или больше.


"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено тигар.логиниться.лень , 20-Июл-22 13:02 
усёр294, как там бтрфс, уже продакшн-реди? и второй вопрос - почему ты перестал везде вообще писать про "кампуктер размером с кредитку"?:-)

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено _kp , 20-Июл-22 02:23 
Если просто копировать, то конечно, да, но если по пути пропустить в конвейерную обработку... то cat.

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Ламерок , 20-Июл-22 05:47 
просто в cp реализовано system("cat file1 > file2")

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено n00by , 20-Июл-22 05:52 
> А практическая польза от cat с 4 Гб вообще есть? Вообще для
> копирования используют cp в нем как дела обстоят?

cat - от concatenate, т.е. служит для склейки файлов. Что там можно склеивать из 4-х гигабайтных файлов - так и осталось без ответа.


"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 23-Июл-22 16:36 
А Ариадну эту пробовал спросить?

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено n00by , 24-Июл-22 07:09 
Так исходный вопрос не мой. Я так понял, что он риторический и обращён к местным экспертам, восторгающимся снижением карбонового следа.

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 19-Июл-22 17:05 
Вот сейчас перепишут cp и в нём появятся дыры когда простой юзер будет рута получать при копировании файлов. Или файлы будут битые при определённых условиях.
Работает - не трогай!

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 19-Июл-22 21:12 
https://mazzo.li/posts/fast-pipes.html (How fast are Linux pipes anyway?)

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Ламерок , 20-Июл-22 05:46 
а что делать если sendfile вернул меньше чем нужно отправить данных?!

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 20-Июл-22 12:29 
Посылать повторно, пока не вернется сколько надо или больше?

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено ламерок , 20-Июл-22 14:14 
вот хз в мане этот случай не описан, как например в read/write, поэтому испросил

"Эксперимент по повышению эффективности работы утилиты cat"
Отправлено Аноним , 21-Июл-22 03:14 
Вы всё врёти!
```
RETURN VALUE
       If  the  transfer was successful, the number of bytes written to out_fd is returned.  Note that a successful call to sendfile() may write fewer bytes than re‐
       quested; the caller should be prepared to retry the call if there were unsent bytes.  See also NOTES.
```