Citat:
dejanet:
Gledajuci testove za m1, naleteo sam i na testove gde su batice testirali iphone 12 vs pc(intel neki od) za neke ogranicene i upitne use-case-ove, pa samo sto srcku nisam dobio.
Resim danas, da malo "isprzim" ovaj moj iphone 11 pro (A13 bionic cpu ako se ne varam).
Elem mene licno vise zanimaju json serijalizacija i deserijalizacija i sklepam u Xcode-u kod, koji treba da uradi serijalizaciju objekta u json i deserijalizaciju nazad u objekat, i tako 50k puta.
Nalupam isti kod za macos i ios. Publish ios program na moj iphone, a za mac-a swiftc kompajliram.
Ako nesto nisam za*bo, strahota:
Macbook pro 13 i5/8GB : 0.6226 sec
IPhone 11 Pro : 0.3875 sec
[Ovu poruku je menjao dejanet dana 05.12.2020. u 16:13 GMT+1]
Gledajuci testove za m1, naleteo sam i na testove gde su batice testirali iphone 12 vs pc(intel neki od) za neke ogranicene i upitne use-case-ove, pa samo sto srcku nisam dobio.
Resim danas, da malo "isprzim" ovaj moj iphone 11 pro (A13 bionic cpu ako se ne varam).
Elem mene licno vise zanimaju json serijalizacija i deserijalizacija i sklepam u Xcode-u kod, koji treba da uradi serijalizaciju objekta u json i deserijalizaciju nazad u objekat, i tako 50k puta.
Nalupam isti kod za macos i ios. Publish ios program na moj iphone, a za mac-a swiftc kompajliram.
Ako nesto nisam za*bo, strahota:
Macbook pro 13 i5/8GB : 0.6226 sec
IPhone 11 Pro : 0.3875 sec
Code:
struct Test: Codable {
var name: String
var owner: String
}
let start = DispatchTime.now() // <<<<<<<<<< Start time
for _ in 1...50000 {
// Encode
let test = Test(name: "Pera", owner: "Mika")
let jsonEncoder = JSONEncoder()
let jsonData = try! jsonEncoder.encode(test)
let json = String(data: jsonData, encoding: String.Encoding.utf8)
//print(json);
// Decode
let jsonDecoder = JSONDecoder()
let secondTest = try! jsonDecoder.decode(Test.self, from: jsonData)
}
let end = DispatchTime.now() // <<<<<<<<<< end time
let nanoTime = end.uptimeNanoseconds - start.uptimeNanoseconds
let timeInterval = Double(nanoTime) / 1_000_000_000 // overflow for long running tests
label1.stringValue = "Time elapsed " + "\(timeInterval) seconds"
struct Test: Codable {
var name: String
var owner: String
}
let start = DispatchTime.now() // <<<<<<<<<< Start time
for _ in 1...50000 {
// Encode
let test = Test(name: "Pera", owner: "Mika")
let jsonEncoder = JSONEncoder()
let jsonData = try! jsonEncoder.encode(test)
let json = String(data: jsonData, encoding: String.Encoding.utf8)
//print(json);
// Decode
let jsonDecoder = JSONDecoder()
let secondTest = try! jsonDecoder.decode(Test.self, from: jsonData)
}
let end = DispatchTime.now() // <<<<<<<<<< end time
let nanoTime = end.uptimeNanoseconds - start.uptimeNanoseconds
let timeInterval = Double(nanoTime) / 1_000_000_000 // overflow for long running tests
label1.stringValue = "Time elapsed " + "\(timeInterval) seconds"
[Ovu poruku je menjao dejanet dana 05.12.2020. u 16:13 GMT+1]
Hm, pa ne bih bio siguran u ovo, zato sto evo kod mene na Linux-u, na 2700X.
Jedino ako ovo -O nista ne radi.
Code:
~/.../examples/swift >>> swiftc json.swift -O
~/.../examples/swift >>> ./json
Time elapsed 1.544466611 seconds
~/.../examples/swift >>> swiftc json.swift -O
~/.../examples/swift >>> ./json
Time elapsed 1.544466611 seconds
Dakle zavisi od kvaliteta implementacije i mozda jos kojecega.
Mrzi me sad da pravim bench nekog drugog jezika, ali ocigledno je swift za linux krsh ;)
