每当我第一次创建一个CTFont对象时,它就消耗了大约10 MB的实际内存。
CTFontRef font = CTFontCreateWithName(CFSTR("Helvetica"), fontSize, NULL);
CFRelease(font);调用CFRelease之后,内存消耗不会改变,因此我假设构建和存储了某种字体缓存。我怎样才能让它消耗更少的内存?
我很担心,因为我的应用程序的其余部分只重2MB,产生文本输出的一点点占用了5倍的时间。不,我不能使用其他文本输出方法。
发布于 2010-10-06 17:53:45
我觉得你不应该为这个问题操心。打电话给CFRelease是非常好的,也是关于你能做什么的。10 is不算太多。如果您有这个问题,可能所有的CoreText应用程序都有问题。您可以为其设置一个bug,并查看它们的响应。也许它会加载整个字体数据库,然后缓存到某个地方以获得更好的性能。我觉得你没什么办法。如果您想知道更多的细节,请提交一个bug。
发布于 2011-06-14 11:13:40
如果你需要缓存一个字体,把它放在字典中,以字号作为键。
https://stackoverflow.com/questions/3459906
复制相似问题