aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations
diff options
context:
space:
mode:
authorVincent Breitmoser <valodim@mugenguild.com>2015-11-04 20:42:49 +0100
committerVincent Breitmoser <valodim@mugenguild.com>2015-11-04 20:44:35 +0100
commit0a266cdb4a15b01ec692eb5d3b69b3a361011245 (patch)
tree713dbd739615ed2b2d4c638e2eabb965e2a33925 /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations
parent3ca8af060b2f6452df794a8770714d1f02b36734 (diff)
downloadopen-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/org/sufficientlysecure/keychain/operations')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/BenchmarkOperation.java39
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/operations/results/OperationResult.java6
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),
;