Exemple #1
0
            public void Run()
            {
                while (!_benchmark._stop)
                {
                    Thread.Sleep(1000);

                    if (_benchmark._start && !_benchmark._warmup)
                    {
                        var results = _benchmark.GetCurrentThroughput();

                        if (_benchmark._finishedThreads > 0)
                        {
                            return; // Threads are stopping, do not collect any more.
                        }
                        foreach (var pair in results)
                        {
                            Tuple <long, long> old;

                            if (_lastResults != null && _lastResults.TryGetValue(pair.Key, out old))
                            {
                                _benchmark._writer.WriteThroughput(pair.Key, pair.Value.Item1 - old.Item1,
                                                                   pair.Value.Item2 - old.Item2);
                            }
                            else
                            {
                                _benchmark._writer.WriteThroughput(pair.Key, pair.Value.Item1,
                                                                   pair.Value.Item2);
                            }
                        }

                        _lastResults = results;
                    }
                }
            }