LINUX.ORG.RU

Вопрос про malloc, когда оперативы доступной нет, и нет swap

 ,


0

0

Скажите пожалуйста, что будет, если ядро не имеет своппинга, но есть MMU, и процесс пытается выделить память(не одним большим куском, а маленькими кусками в цикле), больше, чем есть физ. страниц?

Ответ на: комментарий от MKuznetsov

Это почему?

образно: malloc(smallpie) может повлечь за собой mmap(largeblock) и так для всех запущенных процессов.

Странно слышать это от человека, оторый знает о mallopt. И нет, на практике впаивать новую память не нужно.

tailgunner ★★★★★
()
Ответ на: комментарий от kabanchik

За malloc не при инициализации в embedded принято паяльником в жопу наказывать в приличном обществе.

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

anonymous
()
Ответ на: комментарий от Eddy_Em

Эдичка, все и так уже знают, что программировать ты не умеешь. Можешь прекратить позориться. Тебе должно быть стыдно иметь мнение.

anonymous
()

У тега Embedded 27 подписчиков.

greenman ★★★★★
()

Через malloc можно выделить сколь угодно памяти, в том числе и превышаюшее объём озу. calloc такого не позволит так как он её ещё и инициализирует.

itn ★★★
()
Ответ на: комментарий от Eddy_Em

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

Я не вникал в то как оно устроено.

rezedent12 ☆☆☆
()
Ответ на: комментарий от deep-purple

А как ты память выделяешь? Сразу побольше и хрен с ним?

Например так.

Dim MyArray As Integer []
...
MyArray.add(MyConst)

if MyArray.Count>0 then
   For a = 0 To MyArray.Max
      LabelList.Text=LabelList.Text & Chr(13) & Str(a) & " = " & MyArray(a)
   Next
End If

Это на Gambas.

rezedent12 ☆☆☆
()
Последнее исправление: rezedent12 (всего исправлений: 1)
Ответ на: комментарий от rezedent12

А причем тут бейсик с гамбасами? Ты еще на пыхе пример привел бы.

deep-purple ★★★★★
()
Последнее исправление: deep-purple (всего исправлений: 1)
Ответ на: комментарий от MKuznetsov

придётся впаивать в два раза больше памяти

только если говнокодеры запрашивают памяти больше чем нужно

anonymous
()
Ответ на: комментарий от itn

Если malloc получил от ОС ошибку и вернул не 0 - это ошибка в libc.

anonymous
()
Ответ на: комментарий от anonymous

запрашивают памяти больше чем нужно

при отладке приклада повесили hook на malloc, посчитали что максимум аллоцировалось 12 Mib - вопрос в студию - сколько памяти под это резервировать(впаивать)?

MKuznetsov ★★★★★
()
Ответ на: комментарий от MKuznetsov

А потом все грешат на индусов что Тойоты ускоряются, а на самом деле вот кто виноват.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.