I am trying to speed up my current implementation of a function that converts [UInt32] to a [UInt8] which in turn is split up into [[UInt8]] with 6 arrays at each index.extension Array {    func splitBy(subSize: Int) -> [[Element]] {        return 0.stride(to: self.count, by: subSize).map { startIndex in        let endIndex = startIndex.advancedBy(subSize, limit: self.count)        return Array(self[startIndex ..< endIndex])    }  }}func convertWordToBytes(fullW : [UInt32]) -> [[UInt8]] {    var combined8 = [UInt8]()    //Convert 17 [UInt32] to 68 [UInt8]    for i in 0...16{        _ = 24.stride(through: 0, by: -8).map {            combined8.append(UInt8(truncatingBitPattern: fullW[i] >> UInt32($0)))        }    }    //Split [UInt8] to [[UInt8]] with 6 values at each index.    let combined48 = combined8.splitBy(6)     return combined48}This function will be iterated millions of times in my program and its speed is a huge burden. Does anyone have any ideas?
Converting [UInt32] -> [UInt8] -> [[UInt8]]
performance;array;converting;swift;cryptography