我有一個Cocoa程序正在編輯數百(有時是數千)第三方文件,我想爲最終用戶創建一個日誌類型的輸出(儘管我不需要像時間戳這樣的東西) 。目前,我只是將字符串附加到插座上:在內存中保留長字符串的最佳方式是什麼? (Cocoa)
@property (unsafe_unretained) IBOutlet NSTextView *finalText;
...
self.finalText.string = [self.finalText.string stringByAppendingFormat:@"Final results:\n"];
但這是非常低效的。當我在上面的代碼(所有註釋)關閉的700個文件上運行代碼時,需要4秒鐘執行,打開上面的代碼需要40秒來創建必要的8000行輸出。噢,我提到Xcode說在處理過程中我的內存使用量超過了2GB?哎呀!
據我所知,我所做的是效率低下,但我不知道最有效的方法。創建最終用戶最終可以看到的8000行文本的最佳方式是什麼?會像Lumberjack是最好的解決方案?
需要查看更多代碼才能評論效率。如果你在主線程上做所有事情,你可能會阻止。 – uchuugaka
如何創建一個字符串,當它達到一定的大小,你把它寫入一個文件,然後提供給用戶一個文件名來看待? – 7stud
我看到有人建議在另一個問題上使用textStorage,但我需要使用格式(向輸出添加變量),我沒有看到使用textStorage項目的格式。 –