Как сохранить согласованность времени выполнения моего приложения для iOS? - PullRequest
0 голосов
/ 21 мая 2019

Я разработал простое приложение для iOS, которое выполняет шифрование и дешифрование случайно сгенерированного сообщения.При развертывании приложения на iPhone 8 время выполнения иногда меняется.В большинстве случаев это соответствует.Я пытаюсь понять, почему время выполнения может иногда меняться.Во время работы я проверяю, чтобы другие приложения не открывались, чтобы убедиться, что другие приложения не используют процессоры iPhone.

Это мои кнопки действий, которые вызывают функции шифрования и дешифрования, и вот как я измеряю прошедшее время:

@IBAction func enc(_ sender: Any) {
    let info = ProcessInfo.processInfo
    let begin = info.systemUptime

    enc0.text = "Enc-c0: \(e0)"
    enc1.text = "Enc-c1: \(e1)"

    let time = (info.systemUptime - begin)

    time1.text = "Enc Time: \(time)"
}

@IBAction func dec(_ sender: Any) {
    let info = ProcessInfo.processInfo
    let begin = info.systemUptime

    let decryption = dDec(encryption0:e0,encryption1:e1)

    dec.text = "Dec: \(decryption)"

    let time = (info.systemUptime - begin)

    time2.text = "Dec Time: \(time)"
}

Это две вызываемые функции:

func dEnc() -> (BigUInt,BigUInt){

    let r:BigUInt = BigUInt.randomInteger(lessThan: (p-2))

    let c0:BigUInt = x.power(_:r,modulus:p)

    let a:BigUInt = m.power(_:1, modulus: p)
    let b:BigUInt = (pub_m.multiplied(by: pub_r)).power(_:r, modulus: p)
    let c1:BigUInt = a.multiplied(by: b).power(1, modulus: p)

    return (c0, c1)
}


func dDec(encryption0:BigUInt, encryption1:BigUInt) -> BigUInt{

    let a = encryption1
    var b = encryption0.power(priv_m, modulus: p)
    var c = encryption0.power(priv_r, modulus: p)

    b = b.inverse(p)!
    c = c.inverse(p)!

    let d = ((a.multiplied(by: b)).multiplied(by: c)).power(1, modulus: p)
    return (d)
}

Приложения работают нормально, но время выполнения иногда меняется.Есть ли что-то, что мне нужно обработать, чтобы убедиться, что время выполнения согласованно?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...