Xcode не хватает памяти - PullRequest
       72

Xcode не хватает памяти

0 голосов
/ 16 февраля 2020

Я использую Xcode 11.3.1 и пытаюсь прочитать файл (он состоит из 100_000 пар целых чисел) в Swift Playground. Файл выглядит следующим образом:

100000 154 746 0 147 4 9000 1876 ​​19 2345 467 5 6244 1 7532 .......

Первым элементом является N (общее количество пар), за которым следуют эти пары.

Следующий способ чтения файла:

import Foundation
import UIKit

var N = Int ()
var l = [UInt16] ()
var r = [UInt16] ()

let fileName = "request2"

guard let path = Bundle.main.path(forResource: fileName, ofType: "txt") else { fatalError("Can't get \(fileName).txt")
}

do {
    let contents = try String(contentsOfFile: path)
    let contentsInStringArray = contents.components(separatedBy: .whitespacesAndNewlines)
    var i = 0
    var isNRead = false

    for element in contentsInStringArray {
        guard !element.isEmpty else {
            continue
        }

        if !isNRead {
            N = Int(element) ?? 0
            isNRead = true
            continue
        }

        let temp = UInt16(element) ?? 0
        if i % 2 == 0 {
            l.append(temp)
        } else {
            r.append(temp)
        }
        i += 1
    }
} catch _ {
    fatalError("Can't get contents of \(fileName).txt")
}

Чтение файла происходит очень медленно! ? И в результате у меня закончилась память Xcode.

Как оптимизировать чтение?

Спасибо!

...