diff options
author | Vincent Breitmoser <valodim@mugenguild.com> | 2015-11-04 20:42:49 +0100 |
---|---|---|
committer | Vincent Breitmoser <valodim@mugenguild.com> | 2015-11-04 20:44:35 +0100 |
commit | 0a266cdb4a15b01ec692eb5d3b69b3a361011245 (patch) | |
tree | 713dbd739615ed2b2d4c638e2eabb965e2a33925 /OpenKeychain/src/main/java | |
parent | 3ca8af060b2f6452df794a8770714d1f02b36734 (diff) | |
download | open-keychain-0a266cdb4a15b01ec692eb5d3b69b3a361011245.tar.gz open-keychain-0a266cdb4a15b01ec692eb5d3b69b3a361011245.tar.bz2 open-keychain-0a266cdb4a15b01ec692eb5d3b69b3a361011245.zip |
bench: run ops multiple times and for an average time
Diffstat (limited to 'OpenKeychain/src/main/java')
2 files changed, 29 insertions, 16 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/BenchmarkOperation.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/BenchmarkOperation.java index 6f3077fd4..7d301d830 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/BenchmarkOperation.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/BenchmarkOperation.java @@ -32,8 +32,6 @@ import org.sufficientlysecure.keychain.operations.results.OperationResult.Operat import org.sufficientlysecure.keychain.operations.results.SignEncryptResult; import org.sufficientlysecure.keychain.pgp.PgpDecryptVerifyInputParcel; import org.sufficientlysecure.keychain.pgp.PgpDecryptVerifyOperation; -import org.sufficientlysecure.keychain.pgp.PgpSignEncryptInputParcel; -import org.sufficientlysecure.keychain.pgp.PgpSignEncryptOperation; import org.sufficientlysecure.keychain.pgp.Progressable; import org.sufficientlysecure.keychain.pgp.SignEncryptParcel; import org.sufficientlysecure.keychain.provider.ProviderHelper; @@ -63,33 +61,46 @@ public class BenchmarkOperation extends BaseOperation<BenchmarkInputParcel> { Passphrase passphrase = new Passphrase("a"); + int numRepeats = 5; + long totalTime = 0; + // encrypt SignEncryptResult encryptResult; - { + int i = 0; + do { SignEncryptOperation op = new SignEncryptOperation(mContext, mProviderHelper, - new ProgressScaler(mProgressable, 0, 50, 100), mCancelled); + new ProgressScaler(mProgressable, i*(50/numRepeats), (i+1)*(50/numRepeats), 100), mCancelled); SignEncryptParcel input = new SignEncryptParcel(); input.setSymmetricPassphrase(passphrase); input.setBytes(buf); encryptResult = op.execute(input, new CryptoInputParcel()); - } - log.add(encryptResult, 1); - log.add(LogType.MSG_BENCH_ENC_TIME, 1, - String.format("%.2f", encryptResult.getResults().get(0).mOperationTime / 1000.0)); + log.add(encryptResult, 1); + log.add(LogType.MSG_BENCH_ENC_TIME, 2, + String.format("%.2f", encryptResult.getResults().get(0).mOperationTime / 1000.0)); + totalTime += encryptResult.getResults().get(0).mOperationTime; + } while (++i < numRepeats); + + log.add(LogType.MSG_BENCH_ENC_TIME_AVG, 1, String.format("%.2f", totalTime / numRepeats /1000.0)); + + totalTime = 0; // decrypt - DecryptVerifyResult decryptResult; - { + i = 0; + do { + DecryptVerifyResult decryptResult; PgpDecryptVerifyOperation op = new PgpDecryptVerifyOperation(mContext, mProviderHelper, - new ProgressScaler(mProgressable, 50, 100, 100)); + new ProgressScaler(mProgressable, 50 +i*(50/numRepeats), 50 +(i+1)*(50/numRepeats), 100)); PgpDecryptVerifyInputParcel input = new PgpDecryptVerifyInputParcel(encryptResult.getResultBytes()); input.setAllowSymmetricDecryption(true); decryptResult = op.execute(input, new CryptoInputParcel(passphrase)); - } - log.add(decryptResult, 1); - log.add(LogType.MSG_BENCH_DEC_TIME, 1, String.format("%.2f", decryptResult.mOperationTime / 1000.0)); + log.add(decryptResult, 1); + log.add(LogType.MSG_BENCH_DEC_TIME, 2, String.format("%.2f", decryptResult.mOperationTime / 1000.0)); + totalTime += decryptResult.mOperationTime; + } while (++i < numRepeats); + + log.add(LogType.MSG_BENCH_DEC_TIME_AVG, 1, String.format("%.2f", totalTime / numRepeats / 1000.0)); log.add(LogType.MSG_BENCH_SUCCESS, 0); return new BenchmarkResult(BenchmarkResult.RESULT_OK, log); diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/OperationResult.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/OperationResult.java index 6df95683c..65c36d246 100644 --- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/OperationResult.java +++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/OperationResult.java @@ -876,8 +876,10 @@ public abstract class OperationResult implements Parcelable { MSG_LV_FETCH_ERROR_NOTHING (LogLevel.ERROR, R.string.msg_lv_fetch_error_nothing), MSG_BENCH (LogLevel.START, R.string.msg_bench), - MSG_BENCH_ENC_TIME (LogLevel.INFO, R.string.msg_bench_enc_time), - MSG_BENCH_DEC_TIME (LogLevel.INFO, R.string.msg_bench_dec_time), + MSG_BENCH_ENC_TIME (LogLevel.DEBUG, R.string.msg_bench_enc_time), + MSG_BENCH_ENC_TIME_AVG (LogLevel.INFO, R.string.msg_bench_enc_time_avg), + MSG_BENCH_DEC_TIME (LogLevel.DEBUG, R.string.msg_bench_dec_time), + MSG_BENCH_DEC_TIME_AVG (LogLevel.INFO, R.string.msg_bench_enc_time_avg), MSG_BENCH_SUCCESS (LogLevel.OK, R.string.msg_bench_success), ; |