| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- import 'dart:io';
- import 'package:xterm/xterm.dart';
- void main() {
- // BenchmarkWrite().run();
- // BenchmarkWrite2().run();
- // BenchmarkWriteBuffer().run();
- BenchmarkWriteCMatrix().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 BenchmarkWrite2 extends Benchmark {
- static const cycle = 100000;
- static const data = '100000';
- 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 BenchmarkWriteCMatrix extends Benchmark {
- BenchmarkWriteCMatrix() {
- data = File('script/cmatrix.txt').readAsStringSync();
- }
- static const cycle = 1 << 0;
- late final String data;
- String explain() {
- return 'write ${data.length / 1024} kb CMatrix output to Terminal for $cycle time(s)';
- }
- 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);
- }
- }
- }
|