【发布时间】:2015-07-31 12:51:36
【问题描述】:
我有一个大文件 (25 MB) 的文本。我将它读入一个 NSString 变量。我想使用“大写字符串”将每个字符转换为大写。但是这个功能非常慢,需要几分钟。 有什么技巧可以让它更快地工作吗?
添加代码:
if let path = NSBundle.mainBundle().pathForResource("GERMANU", ofType: "txt") {
var error: NSError?
if let data = NSData(contentsOfFile: path, options: NSDataReadingOptions(), error: &error) {
if let datastring = NSString(data: data, encoding: NSMacOSRomanStringEncoding) {
var upper = datastring.uppercaseString
...
这是有效的代码,但速度很慢。只有最后一行需要一直。
【问题讨论】:
-
哪个需要更长的时间 - 从文件中读取字符串或将其转换为大写?如果转换为大写是瞬时的,那么性能可能仍然“非常慢”。
-
读取字符串是在一个刻度内完成的。这就是奇怪的事情!更改内存中的字符串需要很多时间。即使将数据拆分为单独的字符串并将它们插入数组中也快得多。所以一定有一种行为需要避免。
-
它做到了。往上看。 :-)
标签: string performance swift nsstring