Add csv log in benchmark page + new sizes
This commit is contained in:
parent
189d31cf02
commit
8a40df7543
@ -1,5 +1,6 @@
|
|||||||
// Copyright (c) 2020
|
// Copyright (c) 2021
|
||||||
// Author: Hugo Pointcheval
|
// Author: Hugo Pointcheval
|
||||||
|
import 'dart:developer';
|
||||||
import 'dart:typed_data';
|
import 'dart:typed_data';
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
@ -36,23 +37,50 @@ class _BenchmarkPageState extends State<BenchmarkPage> {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
benchmarkStatus.print("Benchmark 1/5/10/25/50MB\n");
|
benchmarkStatus.print("Benchmark 2/4/8/16/32/64/128/256MB\n");
|
||||||
List<int> testedSizes = [1, 5, 10, 25, 50];
|
List<int> testedSizes = [2, 4, 8, 16, 32, 64, 128, 256];
|
||||||
|
String csv =
|
||||||
|
"size;encryption time;encode time;decryption time;crypto time\n";
|
||||||
|
|
||||||
var beforeBench = DateTime.now();
|
var beforeBench = DateTime.now();
|
||||||
for (int size in testedSizes) {
|
for (int size in testedSizes) {
|
||||||
var bigFile = Uint8List(size * 1000000);
|
var bigFile = Uint8List(size * 1000000);
|
||||||
|
csv += "${size * 1000000};";
|
||||||
|
var cryptoTime = 0;
|
||||||
|
|
||||||
|
// Encryption
|
||||||
var before = DateTime.now();
|
var before = DateTime.now();
|
||||||
var encryptedBigFile = await Session.aesCipher.encrypt(bigFile);
|
var encryptedBigFile = await Session.aesCipher.encrypt(bigFile);
|
||||||
var after = DateTime.now();
|
var after = DateTime.now();
|
||||||
|
|
||||||
var benchmark =
|
var benchmark =
|
||||||
after.millisecondsSinceEpoch - before.millisecondsSinceEpoch;
|
after.millisecondsSinceEpoch - before.millisecondsSinceEpoch;
|
||||||
benchmarkStatus.append('[$size MB] Encryption took $benchmark ms\n');
|
benchmarkStatus.append('[$size MB] Encryption took $benchmark ms\n');
|
||||||
|
|
||||||
|
csv += "$benchmark;";
|
||||||
|
cryptoTime += benchmark;
|
||||||
|
|
||||||
|
// Encoding
|
||||||
|
before = DateTime.now();
|
||||||
|
encryptedBigFile.encode();
|
||||||
|
after = DateTime.now();
|
||||||
|
|
||||||
|
benchmark = after.millisecondsSinceEpoch - before.millisecondsSinceEpoch;
|
||||||
|
benchmarkStatus.append('[$size MB] Encoding took $benchmark ms\n');
|
||||||
|
|
||||||
|
csv += "$benchmark;";
|
||||||
|
|
||||||
|
// Decryption
|
||||||
before = DateTime.now();
|
before = DateTime.now();
|
||||||
await Session.aesCipher.decrypt(encryptedBigFile);
|
await Session.aesCipher.decrypt(encryptedBigFile);
|
||||||
after = DateTime.now();
|
after = DateTime.now();
|
||||||
|
|
||||||
benchmark = after.millisecondsSinceEpoch - before.millisecondsSinceEpoch;
|
benchmark = after.millisecondsSinceEpoch - before.millisecondsSinceEpoch;
|
||||||
benchmarkStatus.append('[$size MB] Decryption took $benchmark ms\n\n');
|
benchmarkStatus.append('[$size MB] Decryption took $benchmark ms\n');
|
||||||
|
|
||||||
|
csv += "$benchmark;";
|
||||||
|
cryptoTime += benchmark;
|
||||||
|
csv += "$cryptoTime\n";
|
||||||
}
|
}
|
||||||
var afterBench = DateTime.now();
|
var afterBench = DateTime.now();
|
||||||
var benchmark =
|
var benchmark =
|
||||||
@ -60,6 +88,7 @@ class _BenchmarkPageState extends State<BenchmarkPage> {
|
|||||||
var sum = testedSizes.reduce((a, b) => a + b);
|
var sum = testedSizes.reduce((a, b) => a + b);
|
||||||
benchmarkStatus.append(
|
benchmarkStatus.append(
|
||||||
'Benchmark finished.\nGenerated, encrypted and decrypted $sum MB in $benchmark ms');
|
'Benchmark finished.\nGenerated, encrypted and decrypted $sum MB in $benchmark ms');
|
||||||
|
log(csv, name: "Benchmark");
|
||||||
}
|
}
|
||||||
|
|
||||||
void _clear() {
|
void _clear() {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// Copyright (c) 2020
|
// Copyright (c) 2021
|
||||||
// Author: Hugo Pointcheval
|
// Author: Hugo Pointcheval
|
||||||
import 'dart:typed_data';
|
import 'dart:typed_data';
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user