3 ms·
The function call is not being optimized out, it's being hoisted outside the loop. I.e., it is as if the code was written as: let result = flatuseStruct(ou
by toth 10y ago
The function call is not being optimized out, it's being hoisted outside the loop. I.e., it is as if the code was written as:
let result = flatuseStruct(outputData)
for _ in 0..<iterations {
assert(result == 8644311667)
total = total + UInt64(result)
}
The counter will still be correct, but you are not measuring what you think you are measuring.
- mzaks 10y agoThis makes sense! Changed the iteration to: for i in 0..<iterations { let result = flatuseStruct(outputData, start:i) assert(result == 8644311666 + Int(i)) total2 = total2 + UInt64(result) } now result is around 43ms Thanks for pointing it out. Have to check if there are so other things involved, but that might be it.