2010-08-11 77 views
1

每当我第一次创建一个CTFont对象时,它会消耗大约10 MB的实内存。完全释放CTFont对象吗?

CTFontRef font = CTFontCreateWithName(CFSTR("Helvetica"), fontSize, NULL); 
CFRelease(font); 

调用CFRelease后,内存消耗不会改变,所以我假设某种字体缓存是建立和存储。 如何让它消耗更少的内存?

我很担心,因为我的应用程序中执行很多操作的其余部分仅重2 MB,生成文本输出的小部分占用了5倍。和没有,我不能使用其他文本输出方法。

+0

是10mb还是10kb。我使用相同的功能,但它只使用10kb。 – 2011-06-14 11:12:05

回答

1

我不认为你应该打扰这个问题。拨打CFRelease非常好,并且您可以做些什么。 10MB不是太多。如果你有这个问题,可能所有的CoreText应用都有它。你可以为它提交一个错误并查看他们的反应。也许它加载了整个字体数据库,然后缓存在某处以获得更好的性能。我认为你无能为力。如果您想知道更多详细信息,请提交bug。

-3

如果您需要缓存字体,请将其放入字体名为字典的字典中。