diff options
Diffstat (limited to 'Source/WebCore/platform/graphics/android/PerformanceMonitor.cpp')
-rw-r--r-- | Source/WebCore/platform/graphics/android/PerformanceMonitor.cpp | 102 |
1 files changed, 0 insertions, 102 deletions
diff --git a/Source/WebCore/platform/graphics/android/PerformanceMonitor.cpp b/Source/WebCore/platform/graphics/android/PerformanceMonitor.cpp deleted file mode 100644 index ed6d046..0000000 --- a/Source/WebCore/platform/graphics/android/PerformanceMonitor.cpp +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Copyright 2011, The Android Open Source Project - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * * Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY - * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY - * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#define LOG_TAG "PerformanceMonitor" -#define LOG_NDEBUG 1 - -#include "PerformanceMonitor.h" - -#include "AndroidLog.h" -#include <wtf/text/CString.h> - -namespace WebCore { - -PerformanceMonitor::PerformanceMonitor() -{ -} - -PerformanceMonitor::~PerformanceMonitor() -{ -} - -void PerformanceMonitor::start(const String &tag) -{ - if (tag.isEmpty()) - return; - PerfItem *item; - if (m_tags.contains(tag)) - item = m_tags.get(tag); - else { - item = new PerfItem(); - m_tags.set(tag, item); - } - gettimeofday(&(item->start_time), NULL); -} - -void PerformanceMonitor::stop(const String &tag) -{ - if (!m_tags.contains(tag)) - return; - PerfItem *item = m_tags.get(tag); - struct timeval end; - gettimeofday(&end, NULL); - long seconds, useconds; - seconds = end.tv_sec - item->start_time.tv_sec; - useconds = end.tv_usec - item->start_time.tv_usec; - - float mtime = (seconds * 1000.0) + (useconds/1000.0); - - if (item->average_ms) { - item->average_ms = (item->average_ms + mtime) / 2; - } else - item->average_ms = mtime; -} - -float PerformanceMonitor::getAverageDuration(const String &tag) -{ - if (tag.isEmpty() || !m_tags.contains(tag)) - return 0; - return m_tags.get(tag)->average_ms; -} - -void PerformanceMonitor::display(int limit) -{ - bool shown = false; - HashMap<String, PerfItem*, StringHash>::iterator end = m_tags.end(); - for (HashMap<String, PerfItem*, StringHash>::iterator it = m_tags.begin(); it != end; ++it) { - PerfItem* item = it->second; - if (item->average_ms > limit) { - if (!shown) { - ALOGD("=== DISPLAY MONITOR ===="); - shown = true; - } - ALOGD("item %s took longer than %d ms: %.2f", it->first.latin1().data(), limit, item->average_ms); - } - } - if (shown) - ALOGD("=== END DISPLAY MONITOR ===="); -} - -} // namespace WebCore |