The OpenNET Project / Index page

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



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Google выпустил систему распределения памяти TCMalloc в форм..., opennews (??), 13-Фев-20, (0) [смотреть все]

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


62. "Google опубликовал новый вариант системы распределения памят..."  +/
Сообщение от Павел Отредиезemail (?), 14-Фев-20, 20:42 
А mmap это сискол.
Ответить | Правка | Наверх | Cообщить модератору

63. "Google опубликовал новый вариант системы распределения памят..."  +/
Сообщение от Павел Отредиезemail (?), 14-Фев-20, 20:43 
Поговорю пьяный сам с собой, ничего парни?
Ответить | Правка | Наверх | Cообщить модератору

64. "Google опубликовал новый вариант системы распределения памят..."  +/
Сообщение от Павел Отредиезemail (?), 14-Фев-20, 20:54 
Теперь господа классные программисты пусть переделают это в реализацию mmap, допустим для ядра Linux. А malloc это всего лишь частный случай mmap. Его усложнять пощадите наши мозги.
Ответить | Правка | Наверх | Cообщить модератору

67. "Google опубликовал новый вариант системы распределения памят..."  +/
Сообщение от Аноним (-), 14-Фев-20, 21:04 
> Теперь господа классные программисты пусть переделают это в реализацию mmap, допустим для
> ядра Linux. А malloc это всего лишь частный случай mmap. Его
> усложнять пощадите наши мозги.

Malloc не всегда mmap. Это раз. Два - могут быть какие-то специальные соображения, при которых mmap не катит. Ну вот конкретно в сабже оно пошло из профайлера. А в случае mmap это интересно как должно быть? В смысле, профайлинг? А, сразу системозависимыми тулзами, лезущими в кишки ядра? :)

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

68. "Google опубликовал новый вариант системы распределения памят..."  +/
Сообщение от Павел Отредиезemail (?), 14-Фев-20, 21:13 
Нет, malloc всегда mmap. Ты анон ошибаешься. Посмотри исходники.  newlib uClibc musl.
Ответить | Правка | Наверх | Cообщить модератору

69. "Google опубликовал новый вариант системы распределения памят..."  +/
Сообщение от Павел Отредиезemail (?), 14-Фев-20, 21:17 
И в BSD тоже malloc вызывает syscall mmap.
Ответить | Правка | Наверх | Cообщить модератору

70. "Google опубликовал новый вариант системы распределения памят..."  +/
Сообщение от Павел Отредиезemail (?), 14-Фев-20, 21:22 
В BSD вообще libc вызывает 5 syscall ов. Остальное ассемблер. Посмотришь на open - должен быть сискол, а там open.S. Хрен разберёшься. Мда, пьян.
Ответить | Правка | Наверх | Cообщить модератору

77. "Google опубликовал новый вариант системы распределения памят..."  +/
Сообщение от Аноним (-), 14-Фев-20, 23:57 
> В BSD вообще libc вызывает 5 syscall ов. Остальное ассемблер. Посмотришь на
> open - должен быть сискол, а там open.S. Хрен разберёшься. Мда, пьян.

Ну позырь сорц mirai, увидь как хацкеры делают подобные выходки вообще без асма и "кроссплатформенно" *.

* покуда это остается ядром Linux, но таки под ~дюжину архитектур CPU.

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

76. "Google опубликовал новый вариант системы распределения памят..."  +/
Сообщение от Аноним (-), 14-Фев-20, 23:54 
> Нет, malloc всегда mmap. Ты анон ошибаешься. Посмотри исходники.

А ежели я найду malloc который не mmap? :) А то malloc ВНЕЗАПНО бывает даже на штуках где mmap тупо нету, в бутлоадерах там всяких, допустим :). Си вообще забавная штука, да и рантайм окружения бывают разные.

> newlib uClibc musl.

Откуда следует что это единственный вариант реализации? Не понимаю.

Ответить | Правка | К родителю #68 | Наверх | Cообщить модератору

80. "Google опубликовал новый вариант системы распределения памят..."  –1 +/
Сообщение от Павел Отредиезemail (?), 15-Фев-20, 00:38 
Ну в бутлоадерах тупо передвигается указатель на свободную память. Там и free нету, он только располагает в памяти. Это просто.
Ответить | Правка | Наверх | Cообщить модератору

81. "Google опубликовал новый вариант системы распределения памят..."  +/
Сообщение от Павел Отредиезemail (?), 15-Фев-20, 00:46 
Нет системного вызова malloc. Есть mmap.
Ответить | Правка | К родителю #76 | Наверх | Cообщить модератору

82. "Google опубликовал новый вариант системы распределения памят..."  +/
Сообщение от Павел Отредиезemail (?), 15-Фев-20, 00:47 
Можно только урвать побольше, а потом выдавать.
Ответить | Правка | Наверх | Cообщить модератору

71. "Google опубликовал новый вариант системы распределения памят..."  +/
Сообщение от Павел Отредиезemail (?), 14-Фев-20, 21:44 
Или по твоему: libc один раз запрашивает mmap, а потом из него выделяет malloc'и? А... Может и так. С ldpreload.
Ответить | Правка | К родителю #67 | Наверх | Cообщить модератору

78. "Google опубликовал новый вариант системы распределения памят..."  +/
Сообщение от Аноним (-), 14-Фев-20, 23:59 
> Или по твоему: libc один раз запрашивает mmap, а потом из него
> выделяет malloc'и? А... Может и так. С ldpreload.

Еще можно man brk и sbrk, чтоли.

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

84. "Google опубликовал новый вариант системы распределения памят..."  +/
Сообщение от neAnonim (?), 15-Фев-20, 05:51 
deprecated и в linux, bsd... стек это тоже mmap () остался только один* сискол на все
Ответить | Правка | Наверх | Cообщить модератору

98. "Google опубликовал новый вариант системы распределения памят..."  +/
Сообщение от Аноним (-), 18-Фев-20, 02:19 
> deprecated и в linux, bsd...

Чего-то в Linux Programmer's manual вообще совсем ни звука про то что это - deprecated. Единственное что там указано - дескать, для _портабельного_ выделения памяти лучше юзайте в своих программах malloc(), дескать.

> стек это тоже mmap () остался только один* сискол на все

Ну вот brk/sbrk таки другие, согласно LPM sbrk реализован как дерг brk + код либы. Однако brk все-таки отдельный сискол как ни крути.

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

92. "Google опубликовал новый вариант системы распределения памят..."  –1 +/
Сообщение от Ordu (ok), 15-Фев-20, 20:05 
> А malloc это всего лишь частный случай mmap

Ровно наоборот. mmap -- это частный случай malloc. Иногда malloc безболезненно можно заменить на mmap, иногда даже с профитом -- если ты выделяешь помногу и редко, то офигенно должно зайти.

Но если ты выделяешь/освобождаешь довольно часто, то каждый раз платить тактами процессора за сисколл -- слишком жирно будет. Тут история та же самая что и с read/write и fread/fwrite. Буферизованный ввод/вывод резко быстрее, если тебе надо читать/писать маленькими кусками.

Ответить | Правка | К родителю #64 | Наверх | Cообщить модератору

99. "Google опубликовал новый вариант системы распределения памят..."  +/
Сообщение от Аноним (-), 18-Фев-20, 02:25 
> Ровно наоборот. mmap -- это частный случай malloc.

Да ну ладно?! А сможешь malloc()-ом по файлу шариться? В mmap так можно и это половина его предназначения :)

> что и с read/write и fread/fwrite. Буферизованный ввод/вывод резко быстрее, если
> тебе надо читать/писать маленькими кусками.

А прикинь, mmap()-ом еще можно файло в память отмаппить как "группу адресов" и дальше делать файловый IO как будто это у нас такой очень большой массив* и при этом ... ну, по сути, почти интерфейс к дисковому кэшу ядра, совершенно прозрачный и выглядящий как просто регион памяти.

* На 32-битных архитектурах массив "почему-то" не такой уж и большой, что накладывает ограничения на размеры файлов :)

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

104. "Google опубликовал новый вариант системы распределения памят..."  +/
Сообщение от Ordu (ok), 18-Фев-20, 11:10 
Мы говорим про выделение памяти, или про файловый ввод-вывод? Мне казалось про первое, не?
Ты беседу-то читай целиком, прежде чем влезать в неё.
Ответить | Правка | Наверх | Cообщить модератору

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

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




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

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