diff options
| author | Marc Jeanmougin <marc.jeanmougin@telecom-paristech.fr> | 2018-04-29 14:25:32 +0000 |
|---|---|---|
| committer | Marc Jeanmougin <marc.jeanmougin@telecom-paristech.fr> | 2018-04-29 14:25:32 +0000 |
| commit | ab5f8ff5869021958f4ae8b838c3d707a2e85eaa (patch) | |
| tree | 4907675828a5401d013b7587538cc8541edd2764 /src/libavoid/timer.cpp | |
| parent | moved libcroco, libuemf, libdepixelize to 3rdparty folder (diff) | |
| download | inkscape-ab5f8ff5869021958f4ae8b838c3d707a2e85eaa.tar.gz inkscape-ab5f8ff5869021958f4ae8b838c3d707a2e85eaa.zip | |
Put adaptagrams into its own folder
Diffstat (limited to 'src/libavoid/timer.cpp')
| -rw-r--r-- | src/libavoid/timer.cpp | 188 |
1 files changed, 0 insertions, 188 deletions
diff --git a/src/libavoid/timer.cpp b/src/libavoid/timer.cpp deleted file mode 100644 index 142c4ad9f..000000000 --- a/src/libavoid/timer.cpp +++ /dev/null @@ -1,188 +0,0 @@ -/* - * vim: ts=4 sw=4 et tw=0 wm=0 - * - * libavoid - Fast, Incremental, Object-avoiding Line Router - * - * Copyright (C) 2004-2013 Monash University - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * See the file LICENSE.LGPL distributed with the library. - * - * Licensees holding a valid commercial license may use this file in - * accordance with the commercial license agreement provided with the - * library. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - * - * Author(s): Michael Wybrow -*/ - - -#include <cstdio> -#include <cstdlib> -#include <climits> - -#include "libavoid/timer.h" -#include "libavoid/debug.h" -#include "libavoid/assertions.h" - -namespace Avoid { - -#ifdef AVOID_PROFILE - -Timer::Timer() -{ - reset(); -} - - -void Timer::reset(void) -{ - for (size_t i = 0; i < tmCount; ++i) - { - m_total_time[i] = 0; - m_tally[i] = 0; - m_max_time[i] = 0; - for (size_t j = 0; j < TIMER_VARIABLES_COUNT; ++j) - { - m_variables[i][j] = 0; - } - } - m_is_running = false; - m_type = m_last_type = tmCount; -} - - -void Timer::initialise(const TimerIndex t) -{ - COLA_ASSERT(t != tmCount); - COLA_ASSERT(m_type == tmCount); - - m_type = t; -} - -void Timer::start(void) -{ - COLA_ASSERT(!m_is_running); - m_start_time[m_type] = clock(); // CPU time - m_is_running = true; -} - - -void Timer::stop(void) -{ - COLA_ASSERT(m_is_running); - clock_t stopTime = clock(); // CPU time - m_is_running = false; - - bigclock_t timeDiff; - if (stopTime < m_start_time[m_type]) - { - // Uh-oh, the clock value has wrapped around. - // - bigclock_t realStopTime = ((bigclock_t) stopTime) + ULONG_MAX + 1; - timeDiff = realStopTime - m_start_time[m_type]; - } - else - { - timeDiff = stopTime - m_start_time[m_type]; - } - - COLA_ASSERT(timeDiff < LONG_MAX); - - m_total_time[m_type] += timeDiff; - m_tally[m_type]++; - if (((clock_t) timeDiff) > m_max_time[m_type]) - { - m_max_time[m_type] = (clock_t) timeDiff; - } - m_last_type = m_type; - - m_type = tmCount; -} - -static const char* timerNames[] = -{ - "Adds", - "Dels", - "Movs", - "Pths", - "OrthogGraph", - "OrthogRoute", - "OrthogCentre", - "OrthogNudge", - "HyperedgeForest", - "HyperedgeMTST", - "HyperedgeImprove", - "HyperedgeAlt" -}; - - -void Timer::printAll(FILE *fp) -{ - for (unsigned int i = 0; i < tmCount; i++) - { - fprintf(fp, "%s: ", timerNames[i]); - print((TimerIndex) i, fp); - } - fprintf(fp, "\n"); -} - -#define toMsec(tot) ((bigclock_t) ((tot) / (((double) CLOCKS_PER_SEC) / 1000))) -#define toAvg(tot, cnt) ((((cnt) > 0) ? ((long double) (tot)) / (cnt) : 0)) - -void Timer::printHyperedgePaper(FILE *fp) -{ - fprintf(fp, "%5lld & %5lld & %5lld & %5lld\n\n", - toMsec(m_total_time[tmOrthogGraph]), - toMsec(m_total_time[tmHyperedgeForest] + m_total_time[tmHyperedgeMTST]), - toMsec(m_total_time[tmHyperedgeAlt]), - toMsec(m_total_time[tmHyperedgeImprove])); -} - -void Timer::print(const TimerIndex t, FILE *fp) -{ - bigclock_t avg = toMsec(toAvg(m_total_time[t], m_tally[t])); - clock_t max = toMsec(m_max_time[t]); - fprintf(fp, "%lld %d %lld %ld", - toMsec(m_total_time[t]), m_tally[t], avg, max); - - for (size_t j = 0; j < TIMER_VARIABLES_COUNT; ++j) - { - if (m_variables[t][j] > 0) - { - fprintf(fp, ", %lu: %u", j, m_variables[t][j]); - } - } - fprintf(fp, "\n"); -} - -void Timer::varIncrement(size_t i, unsigned int val) -{ - COLA_ASSERT(i < TIMER_VARIABLES_COUNT); - - if (m_is_running) - { - m_variables[m_type][i] += val; - } -} - -void Timer::varMax(size_t i, unsigned int val) -{ - COLA_ASSERT(i < TIMER_VARIABLES_COUNT); - - if (m_is_running) - { - m_variables[m_type][i] = std::max(m_variables[m_type][i], val); - } -} - -#endif - -} - |
