Commit 780ee181 authored by Ian Hickson's avatar Ian Hickson

Merge pull request #1657 from Hixie/debugging

Reduce latency of low-volume debugPrint output
parents fb8fe97a aed45ba9
...@@ -47,11 +47,18 @@ void debugPrint(String message) { ...@@ -47,11 +47,18 @@ void debugPrint(String message) {
_debugPrintTask(); _debugPrintTask();
} }
int _debugPrintedCharacters = 0; int _debugPrintedCharacters = 0;
int _kDebugPrintCapacity = 32 * 1024; int _kDebugPrintCapacity = 16 * 1024;
Duration _kDebugPrintPauseTime = const Duration(seconds: 1);
Queue<String> _debugPrintBuffer = new Queue<String>(); Queue<String> _debugPrintBuffer = new Queue<String>();
Stopwatch _debugPrintStopwatch = new Stopwatch();
bool _debugPrintScheduled = false; bool _debugPrintScheduled = false;
void _debugPrintTask() { void _debugPrintTask() {
_debugPrintScheduled = false; _debugPrintScheduled = false;
if (_debugPrintStopwatch.elapsed > _kDebugPrintPauseTime) {
_debugPrintStopwatch.stop();
_debugPrintStopwatch.reset();
_debugPrintedCharacters = 0;
}
while (_debugPrintedCharacters < _kDebugPrintCapacity && _debugPrintBuffer.length > 0) { while (_debugPrintedCharacters < _kDebugPrintCapacity && _debugPrintBuffer.length > 0) {
String line = _debugPrintBuffer.removeFirst(); String line = _debugPrintBuffer.removeFirst();
_debugPrintedCharacters += line.length; // TODO(ianh): Use the UTF-8 byte length instead _debugPrintedCharacters += line.length; // TODO(ianh): Use the UTF-8 byte length instead
...@@ -60,6 +67,8 @@ void _debugPrintTask() { ...@@ -60,6 +67,8 @@ void _debugPrintTask() {
if (_debugPrintBuffer.length > 0) { if (_debugPrintBuffer.length > 0) {
_debugPrintScheduled = true; _debugPrintScheduled = true;
_debugPrintedCharacters = 0; _debugPrintedCharacters = 0;
new Timer(new Duration(seconds: 1), _debugPrintTask); new Timer(_kDebugPrintPauseTime, _debugPrintTask);
} else {
_debugPrintStopwatch.start();
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment