The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

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

18.07.2022 20:42

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

Базовая реализация, использующая традиционные вызовы read и write, приводящие к переключению контекста, при копировании 4ГБ файла из tmpfs показала производительность 3.6 GB/s. Вариант на базе sendfile позволил повысить производительность до 6.4 GB/s, а вариант на базе splice - до 11.6 GB/s, т.е. оказался быстрее исходного варианта более чем в 3 раза.

  1. Главная ссылка к новости (https://ariadne.space/2022/07/...)
  2. OpenNews: Результаты оптимизации Chromium, реализованные проектом RenderingNG
  3. OpenNews: Оптимизация Linux для обработки 1.2 млн JSON-запросов в секунду
  4. OpenNews: Сравнение производительности сетевого драйвера в вариантах на 10 языках программирования
  5. OpenNews: Оптимизация кода компилятором может привести к появлению проблем безопасности в приложениях
  6. OpenNews: Эксперимент по настройке Linux для блокирования 10 млн пакетов в секунду
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/57517-cat
Ключевые слова: cat, splice, sendfile
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (94) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, zram (?), 20:49, 18/07/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +25 +/
    Не мучайте кошку!!!
     
     
  • 2.2, Иисус (?), 20:50, 18/07/2022 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Тут история скорее про лоток
     
     
  • 3.60, Аноним (60), 09:49, 19/07/2022 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Скорее, про то что кошку оказывается можно напоить пургеном.
     
  • 2.5, Аноним (5), 20:54, 18/07/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ага, как будто нечем заняться. Был бы котом, наверное, слизал бы себе яйца до тазовых костей...
     
     
  • 3.111, _kp (ok), 02:18, 20/07/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Сat в скриптах же активно используется, а не просмотра файлов, и её оптимизация способствует заметному ускорению работы в повседневных задачах.
    Плюс, за положительныным опытом cat подтягут и остальные инструменты.
     
     
  • 4.117, n00by (ok), 05:54, 20/07/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    То есть выводит всего пару строк текста, но часто, и на каждый такой чих инициализируется рантайм Си. По-моему, это давно оптимизировал Ларри Уолл.
     
  • 4.121, тигар.логиниться.лень (?), 12:56, 20/07/2022 [^] [^^] [^^^] [ответить]  
  • +/
    ага. "скриптописателей" много еще не умерло, которые проповедуют UUOC, а хипсторы вообще про него, возможно, и не знают.
     
  • 4.125, all_glory_to_the_hypnotoad (ok), 15:16, 20/07/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    В скриптах с cat-ом не перемывают гигабайты. Оптимизация для скриптов это снижение задержки прогрева при запуске, но она и так скорее всего мизерная. Даже если перемалывать гигабайты, то наверняка в типичных сценариях проблема будет с пайпами и с кешом (cat будет вымывать файловый кеш)
     
     
  • 5.137, ммнюмнюмус (?), 15:40, 28/07/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Странные тенденции.
    Замечено, что некоторые из узкоспециальных coreutils работают медленнее, чем их эмуляции на awk / sed (пример - cut). А в bash например, вопроки тормознутости самого интерпретатора, намного выше скорость передачи через пайп, чем у dash.
     
  • 2.24, Аноним (24), 23:46, 18/07/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Ей же яйца лижут.
     
     
  • 3.44, Бывалый смузихлёб (?), 06:30, 19/07/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Похоже что она

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

     
  • 3.59, Аноним (60), 09:47, 19/07/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    А у нее вроде таки нет яиц. Хоть я в биографию сильно и не лез. Это иркоп фриноды бывшая. И черт знает насчет дырок, но как кодер - покажет мастеркласс любому. Утверждает что у нее код видите ли на 2 планетах работает. А вам слабо?!
     
  • 2.100, Товарисч (?), 17:13, 19/07/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Полезное дело человек делает, вам жалко чтоли? Иногда интересно поиграться, а если из этого что-то дельное выйдет, то почему нет? Именно потому что такие люди есть и постоянно что-то чистят и оптимизируют у нас и есть система которая летает, а не всё это убогое унылое жрущее гигабайты вроде мака и винды. Я понимаю, что *вам лично* эта оптимизация (будучи включена в апстрим) ничего не принесёт, но если сложить все затраты в мире, сколько энергии и времени это сэкономит? Так держать, *utils это самые используемые утилиты, больше оптимизаций, хороших и разных!
     

  • 1.3, Аноним (3), 20:51, 18/07/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –18 +/
    Линуксу, с его реализацией переключения контекстов, ничего не поможет.
     
     
  • 2.6, кубрик (?), 20:59, 18/07/2022 [^] [^^] [^^^] [ответить]  
  • +13 +/
    Ты сделал ошибку в слове линукс.

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

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

     
     
  • 3.12, Аноним (3), 21:29, 18/07/2022 [^] [^^] [^^^] [ответить]  
  • –9 +/
    Да, да, расскажи мне про то как ядра писать))
     
     
  • 4.26, Michael Shigorin (ok), 23:53, 18/07/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вы забыли скромно вывалить свой срам, так что и рассказывать Вам может кто угодно что угодно. :]
     
     
  • 5.31, Аноним (-), 00:24, 19/07/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Я человек простой.
     
  • 4.126, Аноним (126), 03:02, 21/07/2022 [^] [^^] [^^^] [ответить]  
  • +/
    AnonBSDnulOS ???
     
  • 2.8, topin89 (ok), 21:09, 18/07/2022 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Чем оно хуже в сравнении с FreeBSD, MacOS или Windows?
     
  • 2.22, Аноним (22), 23:18, 18/07/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Сразу видно человека не разбирающегося в теме
     
  • 2.51, Аноним (51), 09:00, 19/07/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Как и всем прочим. Иди возрождай Singularity, слёзно выпросив её у мелкомягких, если хочешь кардинально уменьшить кол-во переключений контекстов. Или в DOS'е сиди-работай.
     
  • 2.61, Аноним (-), 09:54, 19/07/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Линуксу, с его реализацией переключения контекстов, ничего не поможет.

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

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

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

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

     
  • 2.109, Аноним (109), 21:39, 19/07/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Боюсь, что нужно быть конкретнее Чудовищный оверхед от переключения контексто... большой текст свёрнут, показать
     

  • 1.10, L29Ah (ok), 21:17, 18/07/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Какое ещё исследование, почему нет патчей!?
     
  • 1.11, Аноним (11), 21:24, 18/07/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Почему это не сделано 10 лет назад?
     
     
  • 2.14, Аноним (3), 21:29, 18/07/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Потому что это линукс.
     
  • 2.62, Аноним (-), 09:56, 19/07/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Потому что кодеров уровня Ариадны на этом глобусе очень ограниченное количество и они имеют свойство быть озадачены хреновой кучей других проектов, как правило очень хорошо оплачиваемых.
     
     
  • 3.72, Аноним (72), 11:27, 19/07/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Что сложного вызвать определённую функцию вместо другой?
     
     
  • 4.78, Аноним (-), 12:18, 19/07/2022 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Сложно до исследования или после?

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

     
     
  • 5.89, Аноним (11), 13:41, 19/07/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Сразу после написания соответствующих системных вызовов, очевидно, поскольку их писали именно для того. чем занимаются утилиты cat и cp.
     
     
  • 6.118, Аноним (118), 12:10, 20/07/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > системных вызовов, очевидно, поскольку их писали именно для того
    > очевидно
    > именно

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

     
  • 4.94, Аноним (94), 14:19, 19/07/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Что сложного вызвать определённую функцию вместо другой?

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

     
  • 4.98, Аноним (98), 14:31, 19/07/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Почему эксперты с opennet и просто знающие люди это не сделали?
    Это же так просто?
     
  • 2.68, n00by (ok), 10:44, 19/07/2022 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Потому что 10 лет назад никому в голову не пришло сделать cat для 4 гигабайт.
     

  • 1.15, beck (??), 21:41, 18/07/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > для прямого копирования данных между файловыми дескрипторами на уровне ядра

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

     
     
  • 2.16, Аноним (16), 21:49, 18/07/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Где тут НОВАЯ уязвимость? Просто буфер будет гоняться сразу в ядре, но ядро туда заглядывать не будет и ничего испольнять не будет, тупое копирование.
     
  • 2.25, Аноним (24), 23:48, 18/07/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Ну да, на квоты же явно забили.
     
  • 2.47, Здрасьте (?), 07:49, 19/07/2022 [^] [^^] [^^^] [ответить]  
  • +/
    splice очень старый вызов, лет 20 ему, а sendfile и того древнее. В каком месте уязвимость тут может быть новой?
     
  • 2.63, Аноним (-), 09:57, 19/07/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Здравствуй, новая уязвимость.

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

     
  • 2.101, anonymous (??), 18:16, 19/07/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Сразу видно человека не разбирающегося в теме.
     
  • 2.127, Аноним (126), 03:06, 21/07/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Ты файлы/"файлы" УЖЕ открыл, вот они, дескрипторы то. В чём уязвимость?
     

  • 1.17, InuYasha (??), 21:58, 18/07/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    "А что, так можно было?" )
    Осталось остальные базовые утилиты дотянуть.
     
     
  • 2.70, n00by (ok), 10:57, 19/07/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Начать можно с замеров времени инициализации libc. Но кому это надо? Там вон гигабайты экономятся, красиво смотрится.
     

  • 1.27, Онаним (?), 00:04, 19/07/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Может кота ещё на ио-урину переписать?
     
     
  • 2.34, Аноним (-), 01:19, 19/07/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Надо на Zig переписать.
     

  • 1.28, Онаним (?), 00:08, 19/07/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Забыли только рассказать, что и у sendfile() есть ряд проблем, которые легко вылезают в странных конфигурациях с нетипичными файловыми системами и нетипичными дескрипторами, не все из которых удастся отдетектить в cat'е. Со splice() то же самое.
     
     
  • 2.81, pashev.ru (?), 12:41, 19/07/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Приведи примеры.

    Капча 66666

     
     
  • 3.92, Онаним (?), 14:08, 19/07/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Начнём с того, что оно требует sendpage на принимающей стороне, если это FS.
    А так - гуглим
    sendfile issues
    sendfile sendpage
     

  • 1.29, Онаним (?), 00:11, 19/07/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Во, точно, я знаю. Надо для cat отдельный модуль ядра, который read-write будет делать прямо в ядре. А если серьёзно - cat-подобная операция копирования из дескриптора в дескриптор в ядре бы не помешала. copy_file_range маловато, оно с не-файлами не работает.
     
     
  • 2.36, funny.falcon (?), 01:51, 19/07/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Так для этого и предназначен splice.
    Правда, приходится делать два splice через pipe.
     
     
  • 3.54, Онаним (?), 09:16, 19/07/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Ехал splice через pipe, и я о том же.
    Копирование между дескрипторами в принципе частая операция, честно говоря, оно бы и sendfile заменило, и много чего ещё.
     
     
  • 4.90, Аноним (90), 14:02, 19/07/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Я бы для начала разобрался, почему sendfile() оказался медленнее splice+pipe.
     
     
  • 5.95, Аноним (-), 14:21, 19/07/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Я бы для начала разобрался, почему sendfile() оказался медленнее splice+pipe.

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

     
  • 3.124, ламерок (?), 14:17, 20/07/2022 [^] [^^] [^^^] [ответить]  
  • +/
    так.. я уже запутался, мне из stdio в unix socket нужно, чем воспользоваться sendfile vs splice?
     

  • 1.30, Аноним (30), 00:23, 19/07/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    А io_uring сюда прикрутить можно?
     
  • 1.42, аноним228 (?), 05:36, 19/07/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Анон ты чем сейчас занят? Где комментарий: "Единственный способ ускорить сишное приложение - это если переписать его на RUST!"
     
     
  • 2.46, Аноним (46), 07:33, 19/07/2022 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Учитывая открытия этого гендорного чуда, нас будет ждать очередное аут оф мемори как минимум. Сишка и тру сишники такие тру...
     
     
  • 3.74, Аноним (74), 11:34, 19/07/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    что не так с открытием и почему тебе не фиолетово, что там за чудо за клавиатурой?
     
  • 2.52, onanim (?), 09:06, 19/07/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    я как только увидел заголовок, сразу подумал, что cat на Rust переписали.
     
     
  • 3.79, Аноним (79), 12:23, 19/07/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Мозила переписывала-переписывала FF - недопереписала...
     
  • 3.87, Аноним (87), 13:14, 19/07/2022 [^] [^^] [^^^] [ответить]  
  • +/
    У всех проблем одно начало...
    Сидела женщина, скучала,
    Качала ножкою своей,
    И вдруг пришла мыслишка к ней...
    .....

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

     

  • 1.48, Аноним (48), 08:21, 19/07/2022 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –1 +/
     

     ....ответы скрыты (2)

  • 1.50, Аноним (50), 08:43, 19/07/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Вау. Спустя столько лет лунуксоиды решили прекратить быдлокодить и вспомнили об оптимизациях.
     
  • 1.55, Аноним (55), 09:23, 19/07/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    какое-то сильное преувеличение об авторстве audacious. это ж был просто форк xmms.
     
  • 1.56, Аноним (56), 09:35, 19/07/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вроде уже переписали на Rust: https://github.com/sharkdp/bat
     
     
  • 2.65, Аноним (-), 10:06, 19/07/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Это вообще отдельная херь не имеющая отношения к сабжу.
     
     
  • 3.66, Аноним (-), 10:15, 19/07/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вот бы кто cat на Project Verona написал…
     
     
  • 4.75, Аноним (75), 11:35, 19/07/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Вот бы кто cat на Project Verona написал…

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

     
  • 3.71, Аноним (56), 11:17, 19/07/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Пожалуй да, bat больше похож на less.
     
  • 2.77, онаним (?), 11:38, 19/07/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    должно быть "rat"
     

  • 1.67, Аноним (67), 10:39, 19/07/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Ctrl+C/kill теперь не будет работать?
     
     
  • 2.76, Аноним (74), 11:35, 19/07/2022 [^] [^^] [^^^] [ответить]  
  • +/
    кстати, интересно. часто случайно делаю cat бинарника на медленном ssh
     

  • 1.69, Аноним (69), 10:51, 19/07/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    sed не помешало бы оптимизировать.
     
  • 1.88, Аноним (88), 13:37, 19/07/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А практическая польза от cat с 4 Гб вообще есть? Вообще для копирования используют cp в нем как дела обстоят?
     
     
  • 2.91, Аноним (-), 14:03, 19/07/2022 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > Вообще для копирования используют cp

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

     
     
  • 3.97, Аноним (-), 14:25, 19/07/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Ведущие собаководы для копирования используют dd

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

     
     
  • 4.104, Аноним (104), 18:36, 19/07/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > cp --reflink.

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

     
     
  • 5.113, Аноним (-), 02:55, 20/07/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Маленький нюансик в том что вон те 2 терабайтных образа ведут себя как независимые файлы. И если эксперимент с починкой на "копии" зафейлился, можно стереть "копию" и попробовать иной подход.

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

     
     
  • 6.119, Аноним (-), 12:25, 20/07/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Маленький нюансик

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

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

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

     
  • 6.122, тигар.логиниться.лень (?), 13:02, 20/07/2022 [^] [^^] [^^^] [ответить]  
  • +/
    усёр294, как там бтрфс, уже продакшн-реди? и второй вопрос - почему ты перестал везде вообще писать про "кампуктер размером с кредитку"?:-)
     
  • 2.112, _kp (ok), 02:23, 20/07/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Если просто копировать, то конечно, да, но если по пути пропустить в конвейерную обработку... то cat.
     
  • 2.115, Ламерок (??), 05:47, 20/07/2022 [^] [^^] [^^^] [ответить]  
  • +/
    просто в cp реализовано system("cat file1 > file2")
     
  • 2.116, n00by (ok), 05:52, 20/07/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > А практическая польза от cat с 4 Гб вообще есть? Вообще для
    > копирования используют cp в нем как дела обстоят?

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

     
     
  • 3.134, Аноним (134), 16:36, 23/07/2022 [^] [^^] [^^^] [ответить]  
  • +/
    А Ариадну эту пробовал спросить?
     
     
  • 4.136, n00by (ok), 07:09, 24/07/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Так исходный вопрос не мой. Я так понял, что он риторический и обращён к местным экспертам, восторгающимся снижением карбонового следа.
     

  • 1.99, Аноним (99), 17:05, 19/07/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Вот сейчас перепишут cp и в нём появятся дыры когда простой юзер будет рута получать при копировании файлов. Или файлы будут битые при определённых условиях.
    Работает - не трогай!
     
  • 1.107, Аноним (107), 21:12, 19/07/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    https://mazzo.li/posts/fast-pipes.html (How fast are Linux pipes anyway?)
     
  • 1.114, Ламерок (??), 05:46, 20/07/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    а что делать если sendfile вернул меньше чем нужно отправить данных?!
     
     
  • 2.120, Аноним (-), 12:29, 20/07/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Посылать повторно, пока не вернется сколько надо или больше?
     
     
  • 3.123, ламерок (?), 14:14, 20/07/2022 [^] [^^] [^^^] [ответить]  
  • +/
    вот хз в мане этот случай не описан, как например в read/write, поэтому испросил
     
     
  • 4.128, Аноним (126), 03:14, 21/07/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Вы всё врёти!
    '''
    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.
    '''
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру