代码之家  ›  专栏  ›  技术社区  ›  Kristina

coretext会导致巨大的内存消耗?

  •  1
  • Kristina  · 技术社区  · 15 年前

    我的应用程序通常只占用大约40米的内存,但当使用核心文本时,vsize会跳到大约300米。如何才能让核心文本使用更少的内存?

    附笔。 :我使用许多核心文本对象。

    P.S. 2 :我使用“top”获取内存信息。

    2 回复  |  直到 13 年前
        1
  •  1
  •   Jason Foreman    15 年前

    首先,vsize并不能很好地指示你的应用程序使用了多少“内存”。它更能反映虚拟地址空间的使用情况,包括内存(RAM)、mmap-ed文件等。对于64位应用程序,vsize将 总是 大一点(>1 GB)。

    如果你想知道你使用了多少物理内存,请检查rsize。

    你注意到你的程序有什么异常吗?使用coretext时,内存使用量是否会随着时间的推移而增长?如果是这样,那么您可能会有一个漏洞,在这种情况下,最好的方法是使用工具来分析您的应用程序,看看您的代码是否泄漏。

        2
  •  1
  •   cdemiris99    13 年前

    关于coretext我发现的一个注意事项是,如果您创建的字体没有确切的字体名称,coretext将加载 每一个 将字体映射到映射内存中,作为搜索字体的一部分(它似乎从未释放过该内存)。使用带有虚拟内存跟踪的工具,在“mapped_file”部分查看是否加载了所有字体。在任何情况下,coretext都会使用相当大的内存。

    推荐文章