【问题标题】:Memory issue with sips (scriptable image processing system)sips 的内存问题(可编写脚本的图像处理系统)
【发布时间】:2011-11-30 07:18:01
【问题描述】:

sips -- scriptable image processing system 在重新采样图像后没有释放内存。

find /Users/parag/Desktop/image -iname "*.jp*g" -or -iname "*.gif" -or -iname "*.ti*f" -or -iname "*.png" -print0| xargs -0 sips -Z 800 -p 800 800

每当我的系统可用内存下降而非活动内存迅速增加时,即使命令已完成执行,它仍会保持不变。我的图像文件夹包含 300 张图像。 为什么内存没有被释放??

运行命令之前

之后

【问题讨论】:

    标签: objective-c macos image unix sips


    【解决方案1】:

    您应该关注“Active”和“Wired”内存大小,而不是“Free”。

    【讨论】:

    • 好的,但是每次我运行 sips 命令时我的系统可用内存下降,为什么?
    • 因为您的内存实际上可能是空闲的(如果需要,可供其他应用程序使用)但在活动监视器中列为“非活动”,而不是“免费”。此外,当您运行命令时系统可能会缓存某些内容,该内存也不会被列为“免费”。
    • 好的,我知道了,但是为什么没有为其他应用程序释放内存?它不断增加的非活动内存。
    • 这就是 osx 管理内存的方式——它尽可能多地缓存。我目前只有 16mb 可用内存和 1gb 非活动内存 :)
    • 是时间局部性的概念吗?
    【解决方案2】:

    是的,这确实是 mac os 考虑到引用局部性原则来管理其内存的方式。这个想法是,如果您打开一个应用程序,您很有可能再次这样做,并且如果内存仍然被标记,则应用程序可以非常快速地启动,即完成某种缓存。从这两个快照中,你会发现你的非活动内存上升了,而你的空闲内存下降了。那就是你的内存空间去了!!!

    在没有足够的空闲内存的情况下,不活动的内存将被另一个正在运行的需要内存的应用程序回收。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-31
    • 1970-01-01
    • 2010-11-23
    • 2011-05-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多