The OpenNET Project / Index page

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



"Эксперимент по повышению эффективности работы утилиты cat"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Эксперимент по повышению эффективности работы утилиты 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

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по ответам | RSS]

1. Сообщение от zramemail (?), 18-Июл-22, 20:49   +25 +/
Не мучайте кошку!!!
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #2, #5, #24, #100

2. Сообщение от Иисус (?), 18-Июл-22, 20:50   +5 +/
Тут история скорее про лоток
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #60

3. Сообщение от Аноним (3), 18-Июл-22, 20:51   –18 +/
Линуксу, с его реализацией переключения контекстов, ничего не поможет.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #6, #8, #22, #51, #61, #109

5. Сообщение от Аноним (5), 18-Июл-22, 20:54   +1 +/
Ага, как будто нечем заняться. Был бы котом, наверное, слизал бы себе яйца до тазовых костей...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #111

6. Сообщение от кубрик (?), 18-Июл-22, 20:59   +13 +/
Ты сделал ошибку в слове линукс.

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3 Ответы: #12

8. Сообщение от topin89 (ok), 18-Июл-22, 21:09   +4 +/
Чем оно хуже в сравнении с FreeBSD, MacOS или Windows?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3

10. Сообщение от L29Ah (ok), 18-Июл-22, 21:17   +3 +/
Какое ещё исследование, почему нет патчей!?
Ответить | Правка | Наверх | Cообщить модератору

11. Сообщение от Аноним (11), 18-Июл-22, 21:24   –1 +/
Почему это не сделано 10 лет назад?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #14, #62, #68

12. Сообщение от Аноним (3), 18-Июл-22, 21:29   –9 +/
Да, да, расскажи мне про то как ядра писать))
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #6 Ответы: #26, #126

14. Сообщение от Аноним (3), 18-Июл-22, 21:29   –1 +/
Потому что это линукс.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11

15. Сообщение от beck (??), 18-Июл-22, 21:41   –1 +/
> для прямого копирования данных между файловыми дескрипторами на уровне ядра

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #16, #25, #47, #63, #101, #127

16. Сообщение от Аноним (16), 18-Июл-22, 21:49   +2 +/
Где тут НОВАЯ уязвимость? Просто буфер будет гоняться сразу в ядре, но ядро туда заглядывать не будет и ничего испольнять не будет, тупое копирование.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15

17. Сообщение от InuYasha (??), 18-Июл-22, 21:58   +/
"А что, так можно было?" )
Осталось остальные базовые утилиты дотянуть.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #70

22. Сообщение от Аноним (22), 18-Июл-22, 23:18   +1 +/
Сразу видно человека не разбирающегося в теме
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3

24. Сообщение от Аноним (24), 18-Июл-22, 23:46   +/
Ей же яйца лижут.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1 Ответы: #44, #59

25. Сообщение от Аноним (24), 18-Июл-22, 23:48   +/
Ну да, на квоты же явно забили.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15

26. Сообщение от Michael Shigorinemail (ok), 18-Июл-22, 23:53   +1 +/
Вы забыли скромно вывалить свой срам, так что и рассказывать Вам может кто угодно что угодно. :]
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12 Ответы: #31

27. Сообщение от Онаним (?), 19-Июл-22, 00:04   +1 +/
Может кота ещё на ио-урину переписать?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #34

28. Сообщение от Онаним (?), 19-Июл-22, 00:08   +3 +/
Забыли только рассказать, что и у sendfile() есть ряд проблем, которые легко вылезают в странных конфигурациях с нетипичными файловыми системами и нетипичными дескрипторами, не все из которых удастся отдетектить в cat'е. Со splice() то же самое.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #81

29. Сообщение от Онаним (?), 19-Июл-22, 00:11   +/
Во, точно, я знаю. Надо для cat отдельный модуль ядра, который read-write будет делать прямо в ядре. А если серьёзно - cat-подобная операция копирования из дескриптора в дескриптор в ядре бы не помешала. copy_file_range маловато, оно с не-файлами не работает.
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #36

30. Сообщение от Аноним (30), 19-Июл-22, 00:23   +1 +/
А io_uring сюда прикрутить можно?
Ответить | Правка | Наверх | Cообщить модератору

31. Сообщение от Аноним (-), 19-Июл-22, 00:24   –2 +/
Я человек простой.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #26

34. Сообщение от Аноним (-), 19-Июл-22, 01:19   +/
Надо на Zig переписать.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #27

36. Сообщение от funny.falcon (?), 19-Июл-22, 01:51   –1 +/
Так для этого и предназначен splice.
Правда, приходится делать два splice через pipe.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #29 Ответы: #54, #124

42. Сообщение от аноним228 (?), 19-Июл-22, 05:36   +/
Анон ты чем сейчас занят? Где комментарий: "Единственный способ ускорить сишное приложение - это если переписать его на RUST!"
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #46, #52

44. Сообщение от Бывалый смузихлёб (?), 19-Июл-22, 06:30   +/
Похоже что она

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #24

46. Сообщение от Аноним (46), 19-Июл-22, 07:33   –3 +/
Учитывая открытия этого гендорного чуда, нас будет ждать очередное аут оф мемори как минимум. Сишка и тру сишники такие тру...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #42 Ответы: #74

47. Сообщение от Здрасьте (?), 19-Июл-22, 07:49   +/
splice очень старый вызов, лет 20 ему, а sendfile и того древнее. В каком месте уязвимость тут может быть новой?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15

48. Сообщение от Аноним (48), 19-Июл-22, 08:21   –1 +/
> Ариадна Конилл (Ariadne Conill), создатель музыкального проигрывателя Audacious

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

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

Ответить | Правка | Наверх | Cообщить модератору
Ответы: #49

49. Сообщение от Аноним (48), 19-Июл-22, 08:27   +2 +/
Сравни фото:

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #48 Ответы: #53

50. Сообщение от Аноним (50), 19-Июл-22, 08:43   –2 +/
Вау. Спустя столько лет лунуксоиды решили прекратить быдлокодить и вспомнили об оптимизациях.
Ответить | Правка | Наверх | Cообщить модератору

51. Сообщение от Аноним (51), 19-Июл-22, 09:00   +3 +/
Как и всем прочим. Иди возрождай Singularity, слёзно выпросив её у мелкомягких, если хочешь кардинально уменьшить кол-во переключений контекстов. Или в DOS'е сиди-работай.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3

52. Сообщение от onanim (?), 19-Июл-22, 09:06   +3 +/
я как только увидел заголовок, сразу подумал, что cat на Rust переписали.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #42 Ответы: #79, #87

53. Сообщение от Аноним (53), 19-Июл-22, 09:13   +1 +/
Я об этом писал наверху, захейтили или не поверили, хз)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #49

54. Сообщение от Онаним (?), 19-Июл-22, 09:16   +/
Ехал splice через pipe, и я о том же.
Копирование между дескрипторами в принципе частая операция, честно говоря, оно бы и sendfile заменило, и много чего ещё.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #36 Ответы: #90

55. Сообщение от Аноним (55), 19-Июл-22, 09:23   +/
какое-то сильное преувеличение об авторстве audacious. это ж был просто форк xmms.
Ответить | Правка | Наверх | Cообщить модератору

56. Сообщение от Аноним (56), 19-Июл-22, 09:35   +/
Вроде уже переписали на Rust: https://github.com/sharkdp/bat
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #65, #77

59. Сообщение от Аноним (60), 19-Июл-22, 09:47   +2 +/
А у нее вроде таки нет яиц. Хоть я в биографию сильно и не лез. Это иркоп фриноды бывшая. И черт знает насчет дырок, но как кодер - покажет мастеркласс любому. Утверждает что у нее код видите ли на 2 планетах работает. А вам слабо?!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #24

60. Сообщение от Аноним (60), 19-Июл-22, 09:49   +6 +/
Скорее, про то что кошку оказывается можно напоить пургеном.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #2

61. Сообщение от Аноним (-), 19-Июл-22, 09:54   +/
> Линуксу, с его реализацией переключения контекстов, ничего не поможет.

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

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3

62. Сообщение от Аноним (-), 19-Июл-22, 09:56   +1 +/
Потому что кодеров уровня Ариадны на этом глобусе очень ограниченное количество и они имеют свойство быть озадачены хреновой кучей других проектов, как правило очень хорошо оплачиваемых.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11 Ответы: #72

63. Сообщение от Аноним (-), 19-Июл-22, 09:57   +2 +/
> Здравствуй, новая уязвимость.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15

65. Сообщение от Аноним (-), 19-Июл-22, 10:06   +/
Это вообще отдельная херь не имеющая отношения к сабжу.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #56 Ответы: #66, #71

66. Сообщение от Аноним (-), 19-Июл-22, 10:15   –1 +/
Вот бы кто cat на Project Verona написал…
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #65 Ответы: #75

67. Сообщение от Аноним (67), 19-Июл-22, 10:39   +3 +/
Ctrl+C/kill теперь не будет работать?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #76

68. Сообщение от n00by (ok), 19-Июл-22, 10:44   +6 +/
Потому что 10 лет назад никому в голову не пришло сделать cat для 4 гигабайт.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #11

69. Сообщение от Аноним (69), 19-Июл-22, 10:51   +/
sed не помешало бы оптимизировать.
Ответить | Правка | Наверх | Cообщить модератору

70. Сообщение от n00by (ok), 19-Июл-22, 10:57   +/
Начать можно с замеров времени инициализации libc. Но кому это надо? Там вон гигабайты экономятся, красиво смотрится.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #17

71. Сообщение от Аноним (56), 19-Июл-22, 11:17   +/
Пожалуй да, bat больше похож на less.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #65

72. Сообщение от Аноним (72), 19-Июл-22, 11:27   +2 +/
Что сложного вызвать определённую функцию вместо другой?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #62 Ответы: #78, #94, #98

74. Сообщение от Аноним (74), 19-Июл-22, 11:34   +1 +/
что не так с открытием и почему тебе не фиолетово, что там за чудо за клавиатурой?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #46

75. Сообщение от Аноним (75), 19-Июл-22, 11:35   +/
> Вот бы кто cat на Project Verona написал…

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #66

76. Сообщение от Аноним (74), 19-Июл-22, 11:35   +/
кстати, интересно. часто случайно делаю cat бинарника на медленном ssh
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #67

77. Сообщение от онаним (?), 19-Июл-22, 11:38   +1 +/
должно быть "rat"
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #56

78. Сообщение от Аноним (-), 19-Июл-22, 12:18   +4 +/
Сложно до исследования или после?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #72 Ответы: #89

79. Сообщение от Аноним (79), 19-Июл-22, 12:23   +1 +/
Мозила переписывала-переписывала FF - недопереписала...
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #52

81. Сообщение от pashev.ru (?), 19-Июл-22, 12:41   +/
Приведи примеры.

Капча 66666

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #28 Ответы: #92

87. Сообщение от Аноним (87), 19-Июл-22, 13:14   +/
У всех проблем одно начало...
Сидела женщина, скучала,
Качала ножкою своей,
И вдруг пришла мыслишка к ней...
.....

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #52

88. Сообщение от Аноним (88), 19-Июл-22, 13:37   +/
А практическая польза от cat с 4 Гб вообще есть? Вообще для копирования используют cp в нем как дела обстоят?
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #91, #112, #115, #116

89. Сообщение от Аноним (11), 19-Июл-22, 13:41   +3 +/
Сразу после написания соответствующих системных вызовов, очевидно, поскольку их писали именно для того. чем занимаются утилиты cat и cp.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #78 Ответы: #118

90. Сообщение от Аноним (90), 19-Июл-22, 14:02   +/
Я бы для начала разобрался, почему sendfile() оказался медленнее splice+pipe.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #54 Ответы: #95

91. Сообщение от Аноним (-), 19-Июл-22, 14:03   +4 +/
> Вообще для копирования используют cp

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #88 Ответы: #97

92. Сообщение от Онаним (?), 19-Июл-22, 14:08   +/
Начнём с того, что оно требует sendpage на принимающей стороне, если это FS.
А так - гуглим
sendfile issues
sendfile sendpage
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #81

94. Сообщение от Аноним (94), 19-Июл-22, 14:19   +1 +/
> Что сложного вызвать определённую функцию вместо другой?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #72

95. Сообщение от Аноним (-), 19-Июл-22, 14:21   +/
> Я бы для начала разобрался, почему sendfile() оказался медленнее splice+pipe.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #90

97. Сообщение от Аноним (-), 19-Июл-22, 14:25   +1 +/
> Ведущие собаководы для копирования используют dd

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #91 Ответы: #104

98. Сообщение от Аноним (98), 19-Июл-22, 14:31   +/
Почему эксперты с opennet и просто знающие люди это не сделали?
Это же так просто?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #72

99. Сообщение от Аноним (99), 19-Июл-22, 17:05   –1 +/
Вот сейчас перепишут cp и в нём появятся дыры когда простой юзер будет рута получать при копировании файлов. Или файлы будут битые при определённых условиях.
Работает - не трогай!
Ответить | Правка | Наверх | Cообщить модератору

100. Сообщение от Товарисч (?), 19-Июл-22, 17:13   +3 +/
Полезное дело человек делает, вам жалко чтоли? Иногда интересно поиграться, а если из этого что-то дельное выйдет, то почему нет? Именно потому что такие люди есть и постоянно что-то чистят и оптимизируют у нас и есть система которая летает, а не всё это убогое унылое жрущее гигабайты вроде мака и винды. Я понимаю, что *вам лично* эта оптимизация (будучи включена в апстрим) ничего не принесёт, но если сложить все затраты в мире, сколько энергии и времени это сэкономит? Так держать, *utils это самые используемые утилиты, больше оптимизаций, хороших и разных!
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #1

101. Сообщение от anonymous (??), 19-Июл-22, 18:16   +/
Сразу видно человека не разбирающегося в теме.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15

104. Сообщение от Аноним (104), 19-Июл-22, 18:36   +/
> cp --reflink.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #97 Ответы: #113

107. Сообщение от Аноним (107), 19-Июл-22, 21:12   +1 +/
https://mazzo.li/posts/fast-pipes.html (How fast are Linux pipes anyway?)
Ответить | Правка | Наверх | Cообщить модератору

109. Сообщение от Аноним (109), 19-Июл-22, 21:39   +1 +/
Боюсь, что нужно быть конкретнее...

Чудовищный оверхед от переключения контекстов с последующей деградацией производительности без полной утилизации я по опыту наблюдал в 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 эту дрянь лучше сразу выключить.

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #3

111. Сообщение от _kp (ok), 20-Июл-22, 02:18   +/
Сat в скриптах же активно используется, а не просмотра файлов, и её оптимизация способствует заметному ускорению работы в повседневных задачах.
Плюс, за положительныным опытом cat подтягут и остальные инструменты.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #5 Ответы: #117, #121, #125

112. Сообщение от _kp (ok), 20-Июл-22, 02:23   +/
Если просто копировать, то конечно, да, но если по пути пропустить в конвейерную обработку... то cat.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #88

113. Сообщение от Аноним (-), 20-Июл-22, 02:55   +/
Маленький нюансик в том что вон те 2 терабайтных образа ведут себя как независимые файлы. И если эксперимент с починкой на "копии" зафейлился, можно стереть "копию" и попробовать иной подход.

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #104 Ответы: #119, #122

114. Сообщение от Ламерок (??), 20-Июл-22, 05:46   +/
а что делать если sendfile вернул меньше чем нужно отправить данных?!
Ответить | Правка | Наверх | Cообщить модератору
Ответы: #120

115. Сообщение от Ламерок (??), 20-Июл-22, 05:47   +/
просто в cp реализовано system("cat file1 > file2")
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #88

116. Сообщение от n00by (ok), 20-Июл-22, 05:52   –1 +/
> А практическая польза от cat с 4 Гб вообще есть? Вообще для
> копирования используют cp в нем как дела обстоят?

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #88 Ответы: #134

117. Сообщение от n00by (ok), 20-Июл-22, 05:54   –1 +/
То есть выводит всего пару строк текста, но часто, и на каждый такой чих инициализируется рантайм Си. По-моему, это давно оптимизировал Ларри Уолл.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #111

118. Сообщение от Аноним (118), 20-Июл-22, 12:10   +/
> системных вызовов, очевидно, поскольку их писали именно для того
> очевидно
> именно

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #89

119. Сообщение от Аноним (-), 20-Июл-22, 12:25   +/
> Маленький нюансик

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

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

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

Ответить | Правка | Наверх | Cообщить модератору
Родитель: #113

120. Сообщение от Аноним (-), 20-Июл-22, 12:29   +1 +/
Посылать повторно, пока не вернется сколько надо или больше?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #114 Ответы: #123

121. Сообщение от тигар.логиниться.лень (?), 20-Июл-22, 12:56   +/
ага. "скриптописателей" много еще не умерло, которые проповедуют UUOC, а хипсторы вообще про него, возможно, и не знают.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #111

122. Сообщение от тигар.логиниться.лень (?), 20-Июл-22, 13:02   +/
усёр294, как там бтрфс, уже продакшн-реди? и второй вопрос - почему ты перестал везде вообще писать про "кампуктер размером с кредитку"?:-)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #113

123. Сообщение от ламерок (?), 20-Июл-22, 14:14   +/
вот хз в мане этот случай не описан, как например в read/write, поэтому испросил
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #120 Ответы: #128

124. Сообщение от ламерок (?), 20-Июл-22, 14:17   +/
так.. я уже запутался, мне из stdio в unix socket нужно, чем воспользоваться sendfile vs splice?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #36

125. Сообщение от all_glory_to_the_hypnotoad (ok), 20-Июл-22, 15:16   +3 +/
В скриптах с cat-ом не перемывают гигабайты. Оптимизация для скриптов это снижение задержки прогрева при запуске, но она и так скорее всего мизерная. Даже если перемалывать гигабайты, то наверняка в типичных сценариях проблема будет с пайпами и с кешом (cat будет вымывать файловый кеш)
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #111 Ответы: #137

126. Сообщение от Аноним (126), 21-Июл-22, 03:02   +/
AnonBSDnulOS ???
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #12

127. Сообщение от Аноним (126), 21-Июл-22, 03:06   +/
Ты файлы/"файлы" УЖЕ открыл, вот они, дескрипторы то. В чём уязвимость?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #15

128. Сообщение от Аноним (126), 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.
```
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #123

134. Сообщение от Аноним (134), 23-Июл-22, 16:36   +/
А Ариадну эту пробовал спросить?
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #116 Ответы: #136

136. Сообщение от n00by (ok), 24-Июл-22, 07:09   +/
Так исходный вопрос не мой. Я так понял, что он риторический и обращён к местным экспертам, восторгающимся снижением карбонового следа.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #134

137. Сообщение от ммнюмнюмус (?), 28-Июл-22, 15:40   +/
Странные тенденции.
Замечено, что некоторые из узкоспециальных coreutils работают медленнее, чем их эмуляции на awk / sed (пример - cut). А в bash например, вопроки тормознутости самого интерпретатора, намного выше скорость передачи через пайп, чем у dash.
Ответить | Правка | Наверх | Cообщить модератору
Родитель: #125


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




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

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