| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- import 'package:xterm/xterm.dart';
- void main() {
- BenchmarkWrite().run();
- BenchmarkWriteBuffer().run();
- }
- abstract class Benchmark {
- String explain();
- void benchmark();
- void run() {
- print('benchmark: ${explain()}');
- print('preheating...');
- benchmark();
- final sw = Stopwatch()..start();
- print('running...');
- benchmark();
- sw.stop();
- print('result: ${sw.elapsedMilliseconds} ms');
- }
- }
- class BenchmarkWrite extends Benchmark {
- static const cycle = 1 << 20;
- static const data = 'hello world';
- String explain() {
- return "write '$data' to Terminal for $cycle times";
- }
- void benchmark() {
- final terminal = Terminal();
- for (var i = 0; i < cycle; i++) {
- terminal.write(data);
- }
- }
- }
- class BenchmarkWriteBuffer extends Benchmark {
- static const cycle = 1 << 20;
- static const data = 'hello world';
- String explain() {
- return "write '$data' to StringBuffer for $cycle times";
- }
- void benchmark() {
- final buffer = StringBuffer();
- for (var i = 0; i < cycle; i++) {
- buffer.write(data);
- }
- }
- }
|