2010-08-11 35 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

如果您需要緩存字體,請將其放入字體名爲字典的字典中。