每当我第一次创建 CTFont 对象时,它会消耗大约10 MB的实内存。
CTFontRef font = CTFontCreateWithName(CFSTR("Helvetica"), fontSize, NULL);
CFRelease(font);
调用 CFRelease 后,内存消耗不会改变,因此我假设构建并存储了某种字体缓存。 如何让它消耗更少的内存?
我很担心,因为我的应用程序的其余部分只做了2 MB,产生文本输出的小部分占用了5倍。并且没有,我不能使用其他文本输出方法。
答案 0 :(得分:1)
我认为你不应该为这个问题烦恼。调用CFRelease
非常好,关于你能做什么。 10MB并不算太多。如果您遇到此问题,可能所有CoreText应用程序都有此问题。您可以为它提交错误并查看它们的响应。也许它会加载整个字体数据库,然后在某处缓存以获得更好的性能。我想你无能为力。如果您想了解更多详细信息,请提交错误。
答案 1 :(得分:-3)
如果您需要缓存字体,请将其放在以font-name作为键的字典中。