// Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file // for details. All rights reserved. Use of this source code is governed by a // BSD-style license that can be found in the LICENSE file. import 'package:kernel/kernel.dart'; import 'dart:io'; final String usage = ''' Usage: serialize_bench INPUT.dill OUTPUT.dill Deserialize INPUT and write it back to OUTPUT several times, measuring the time it takes, including I/O time. '''; void main(List args) async { if (args.length != 2) { print(usage); exit(1); } Component component = loadComponentFromBinary(args[0]); String destination = args[1]; var watch = new Stopwatch()..start(); await writeComponentToBinary(component, destination); int coldTime = watch.elapsedMilliseconds; watch.reset(); int numTrials = 10; for (int i = 0; i < numTrials; ++i) { await writeComponentToBinary(component, destination); } double hotTime = watch.elapsedMilliseconds / numTrials; print('Cold time: $coldTime ms'); print('Hot time: $hotTime ms'); }