static void drawPicture(JNIEnv* env, jobject, SkCanvas* canvas, SkPicture* picture) { SkASSERT(canvas); SkASSERT(picture); #ifdef TIME_DRAW SkMSec now = get_thread_msec(); //SkTime::GetMSecs(); #endif canvas->drawPicture(*picture); #ifdef TIME_DRAW LOGD("---- picture playback %d ms\n", get_thread_msec() - now); #endif }
void TimeCounter::reportNow() { double current = currentTime(); uint32_t currentThread = get_thread_msec(); int elapsedTime = static_cast<int>((current - sLastTotalTime) * 1000); int elapsedThreadTime = currentThread - sLastThreadTime; LOGD("*-* Elapsed time: %d ms, ui thread time: %d ms, webcore thread time:" " %d ms\n", elapsedTime, elapsedThreadTime, sEndWebCoreThreadTime - sStartWebCoreThreadTime); for (Type type = (Type) 0; type < TotalTimeCounterCount; type = (Type) (type + 1)) { if (sTotalTimeUsed[type] == sLastTimeUsed[type]) continue; char scratch[256]; int index = sprintf(scratch, "*-* Diff %s time: %d ms", timeCounterNames[type], sTotalTimeUsed[type] - sLastTimeUsed[type]); if (sCounter[type] > sLastCounter[type]) sprintf(&scratch[index], " called %d times", sCounter[type] - sLastCounter[type]); LOGD("%s", scratch); } memcpy(sLastTimeUsed, sTotalTimeUsed, sizeof(sTotalTimeUsed)); memcpy(sLastCounter, sCounter, sizeof(sCounter)); sLastTotalTime = current; sLastThreadTime = currentThread; sRecordWebCoreTime = true; }
void TimeCounter::reset() { bzero(sTotalTimeUsed, sizeof(sTotalTimeUsed)); bzero(sCounter, sizeof(sCounter)); LOGD("*-* Start browser instrument\n"); sStartTotalTime = currentTime(); sStartThreadTime = get_thread_msec(); }
void TimeCounter::report(const KURL& url, int live, int dead, size_t arenaSize) { String urlString = url; int totalTime = static_cast<int>((currentTime() - sStartTotalTime) * 1000); int threadTime = get_thread_msec() - sStartThreadTime; LOGD("*-* Total load time: %d ms, thread time: %d ms for %s\n", totalTime, threadTime, urlString.utf8().data()); for (Type type = (Type) 0; type < TotalTimeCounterCount; type = (Type) (type + 1)) { char scratch[256]; int index = sprintf(scratch, "*-* Total %s time: %d ms", timeCounterNames[type], sTotalTimeUsed[type]); if (sCounter[type] > 0) sprintf(&scratch[index], " called %d times", sCounter[type]); LOGD("%s", scratch); } LOGD("Current cache has %d bytes live and %d bytes dead", live, dead); LOGD("Current render arena takes %d bytes", arenaSize); #if USE(JSC) JSLock lock(false); Heap::Statistics jsHeapStatistics = JSDOMWindow::commonJSGlobalData()->heap.statistics(); LOGD("Current JavaScript heap size is %d and has %d bytes free", jsHeapStatistics.size, jsHeapStatistics.free); #endif LOGD("Current CSS styles use %d bytes", StyleBase::reportStyleSize()); LOGD("Current DOM nodes use %d bytes", WebCore::Node::reportDOMNodesSize()); }
void TimeCounter::recordNoCounter(enum Type type, const char* functionName) { uint32_t elapsed = get_thread_msec() - sStartTime[type]; sTotalTimeUsed[type] += elapsed; if (elapsed > 1000) LOGW("***** %s() used %d ms\n", functionName, elapsed); }
void TimeCounter::start(enum Type type) { uint32_t time = get_thread_msec(); if (sRecordWebCoreTime) { sStartWebCoreThreadTime = time; sRecordWebCoreTime = false; } sStartTime[type] = time; }
void TimeCounter::reset() { // FIXME: JSGlobalObject no longer records time // JSC::JSGlobalObject::resetTimeCounter(); bzero(sTotalTimeUsed, sizeof(sTotalTimeUsed)); bzero(sCounter, sizeof(sCounter)); LOGD("*-* Start browser instrument\n"); sStartTotalTime = currentTime(); sStartThreadTime = get_thread_msec(); }
void TimeCounter::report(const KURL& url, int live, int dead) { String urlString = url; int totalTime = static_cast<int>((currentTime() - sStartTotalTime) * 1000); int threadTime = get_thread_msec() - sStartThreadTime; LOGD("*-* Total load time: %d ms, thread time: %d ms for %s\n", totalTime, threadTime, urlString.utf8().data()); // FIXME: JSGlobalObject no longer records time // JSC::JSGlobalObject::reportTimeCounter(); for (Type type = (Type) 0; type < TotalTimeCounterCount; type = (Type) (type + 1)) { char scratch[256]; int index = sprintf(scratch, "*-* Total %s time: %d ms", timeCounterNames[type], sTotalTimeUsed[type]); if (sCounter[type] > 0) sprintf(&scratch[index], " called %d times", sCounter[type]); LOGD("%s", scratch); } LOGD("Current cache has %d bytes live and %d bytes dead", live, dead); }
void TimeCounter::start(enum Type type) { sStartTime[type] = get_thread_msec(); }