У меня есть многопоточное приложение, в котором я распределяю буферы с данными, которые затем ожидают в очередях для отправки через сокеты. Все буферы воспроизводимы, потому что я использую только буферы фиксированного размера во всей программе (1024, 2048, 2080 и 5248 байт). Я заметил, что моя программа обычно использует до 10 буферов каждого типа длины одновременно.
Пока я всегда вручную выделяю новый буфер, а затем освобождаю его (используя malloc () и free ()) там, где он больше не нужен. Я начал задаваться вопросом, достаточно ли Linux умен для того, чтобы кэшировать эту память для меня, поэтому в следующий раз я выделяю новую буферную систему, только быстро получаю буфер, который я уже использовал ранее, и не выполняю тяжелую операцию выделения нового блока памяти?