LINUX.ORG.RU

Не понимаю c++ new

 


0

2

Я всегда считал, что при нехватки памяти new возвращает NULL.

Но в среде Windows-wsl-linux-Clion-c++ вместо NULL я получаю огрызок памяти, что, естественно, приводит к сбою.

Я что-то не знаю? Может быть это что-то новое в стандартах?


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

Вот такой исходник и надо постить.

Бузь зделоно.

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

Запроси 22.000.000.000 и посмотри на результат.

Результат: память успешно выделена.

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

А чем сишки без крестов отличаются от крестов?

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

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

mlock’нуть от юзера можно только довольно небольшое количество памяти. Для mlock на бОльшее количество памяти нужно получить возможность (capability) CAP_IPC_LOCK через libcap или запуск от рута.

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

Ну для приложения использующего большое колво памяти ему в любом случае придётся познакомиться с таким вопросом, даже если ты решишь свою проблему и будешь выдавать ему «out of memory». А параметр можешь подобрать по умолчанию, для стандартного 95% использования. Это параметр можно будет использовать для кастомного менеждера памяти - чует моё сердце у тебя объекты растут/освобождаются по стековому принципу, а это даст кратное увеличение быстродействия при выделении и уменьшение накладухи, а там ... :D :D :D

В общем max_memory_size это достаточно стандартный подход для всяких приложений с завышенными запросами по памяти. Иначе в linux начинает котовасия с mm overkill.

vtVitus ★★★★★
()
Последнее исправление: vtVitus (всего исправлений: 3)
Ответ на: комментарий от ezus

Вопрос, мне кажется, абсолютно прозрачным: «Я получил память для использования или нет?»

Ты получил виртуальную память для использования. В ходе ее использования используемые страницы будут отображаться на физическую память; ранее использованные, но не используемые сейчас – вытесняться в swap. Не использованные ни разу так и останутся исключительно виртуальными. При невозможности отображения на физическую память страницы, к которой осуществляется обращение, будет сгенерирована ошибка.

Так, упрощенно, работают все мейнстримные ОС уже очень много лет – в том числе и Windows.

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

К сожалению, никакие жабы не проходят по производительности

Ты какую-то лютую хайлоад-либу пишешь?

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