Как отключить ограничения памяти в Magick ++ - PullRequest
0 голосов
/ 02 ноября 2018

Как отключить ограничения памяти в Magick ++? Я не хочу иметь никаких ограничений, я бы предпочел, чтобы std :: bad_alloc в памяти превышал.

Я пытался.

Magick::InitializeMagick( nullptr );
Magick::ResourceLimits::memory( 0 );
Magick::ResourceLimits::map( 0 );

Но Magick ++ игнорирует это.

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

1 Ответ

0 голосов
/ 02 ноября 2018

Я не верю, что вы сможете отключить ограничения ресурсов, так как это фундаментально для библиотеки MagickCore.

Я пробовал достаточно большие значения, например 9999999999, но Magick ++, как уже было сказано, игнорирует их.

Во время процедуры генезиса определяются максимальные пределы системы, которые затем снижаются на основе политик безопасности (policy.xml) и переменных среды . Попытка установить память на любое значение, большее, чем то, что идентифицируется у гениев, будет игнорироваться. В идеале Magick::ResourceLimits::.... установщики Magick ++ должны возвращать логическое значение в случае успеха; таким образом, соответствуя поведению MagickCore.

Я не хочу иметь никаких ограничений, я бы предпочел, чтобы std :: bad_alloc в памяти превышал.

Хотя я согласен с вами, что было бы неплохо полагаться на стандарты C ++, я сомневаюсь, что std::bad_alloc будет выдан правильно. Базовая библиотека хорошо справляется с балансировкой больших потоков / буферов данных между временными, кэш-памятью и ресурсами памяти. Если каким-то образом вы сможете отключить ограничения в основной библиотеке, то этот баланс будет сорван, и я подозреваю, что это вызовет гораздо больше ложноотрицательных исключений.

...