如何在Magick++中禁用任何内存限制?我不想有任何限制,我更喜欢内存超过的std::bad_alloc。
我试过了。
Magick::InitializeMagick( nullptr );
Magick::ResourceLimits::memory( 0 );
Magick::ResourceLimits::map( 0 );但Magick++忽略了这一点。
这些静态方法接收无符号值,我尝试了足够大的值,比如9999999999,但是Magick++忽略了它们。
发布于 2018-11-02 21:11:37
我不相信您能够禁用资源限制,因为它是MagickCore库的基础。
我尝试了足够大的值,比如9999999999,但是Magick++忽略了它们。
在创始例程期间,会确定系统的最大限制,然后根据安全策略(policy.xml)和environmental variables进一步降低限制。尝试将内存设置为大于在天才期间识别的值的任何值都将被忽略。理想情况下,Magick++的Magick::ResourceLimits::....设置器应该在成功时返回一个布尔值;因此,与MagickCore的行为相匹配。
我不想有任何限制,我喜欢std::bad_alloc on memory
。
尽管我同意你的观点,依赖C++标准会很好,但我怀疑std::bad_alloc是否会被正确发布。核心库很好地平衡了临时、缓存和内存资源之间的大量数据流/缓冲区。如果,以某种方式,您可以禁用核心库中的限制,那么这种平衡将被打破,我怀疑这将导致更多的假阴性异常。
https://stackoverflow.com/questions/53115699
复制相似问题