Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(110)

Side by Side Diff: base/android/early_trace_event_binding.cc

Issue 2967023002: android: Add thread time to early TraceEvent, make timings more precise. (Closed)
Patch Set: Comment. Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | base/android/java/src/org/chromium/base/EarlyTraceEvent.java » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/android/early_trace_event_binding.h" 5 #include "base/android/early_trace_event_binding.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
9 #include "base/android/jni_string.h" 9 #include "base/android/jni_string.h"
10 #include "base/time/time.h" 10 #include "base/time/time.h"
11 #include "base/trace_event/trace_event.h" 11 #include "base/trace_event/trace_event.h"
12 #include "jni/EarlyTraceEvent_jni.h" 12 #include "jni/EarlyTraceEvent_jni.h"
13 13
14 namespace base { 14 namespace base {
15 namespace android { 15 namespace android {
16 16
17 const char kEarlyJavaCategory[] = "EarlyJava"; 17 const char kEarlyJavaCategory[] = "EarlyJava";
18 18
19 static void RecordEarlyEvent(JNIEnv* env, 19 static void RecordEarlyEvent(JNIEnv* env,
20 const JavaParamRef<jclass>& clazz, 20 const JavaParamRef<jclass>& clazz,
21 const JavaParamRef<jstring>& jname, 21 const JavaParamRef<jstring>& jname,
22 jlong begin_time_ms, 22 jlong begin_time_ns,
23 jlong end_time_ms, 23 jlong end_time_ns,
24 jint thread_id) { 24 jint thread_id,
25 jlong thread_duration_ms) {
25 std::string name = ConvertJavaStringToUTF8(env, jname); 26 std::string name = ConvertJavaStringToUTF8(env, jname);
26 int64_t begin_us = begin_time_ms * 1000; 27 int64_t begin_us = begin_time_ns / 1000;
27 int64_t end_us = end_time_ms * 1000; 28 int64_t end_us = end_time_ns / 1000;
29 int64_t thread_duration_us = thread_duration_ms * 1000;
28 30
29 INTERNAL_TRACE_EVENT_ADD_WITH_ID_TID_AND_TIMESTAMP( 31 INTERNAL_TRACE_EVENT_ADD_WITH_ID_TID_AND_TIMESTAMPS(
30 TRACE_EVENT_PHASE_BEGIN, kEarlyJavaCategory, name.c_str(), 32 kEarlyJavaCategory, name.c_str(), trace_event_internal::kNoId, thread_id,
31 trace_event_internal::kNoId, thread_id, 33 TimeTicks::FromInternalValue(begin_us),
32 TimeTicks::FromInternalValue(begin_us), TRACE_EVENT_FLAG_COPY); 34 TimeTicks::FromInternalValue(end_us),
33 INTERNAL_TRACE_EVENT_ADD_WITH_ID_TID_AND_TIMESTAMP( 35 ThreadTicks::Now() + TimeDelta::FromMicroseconds(thread_duration_us),
34 TRACE_EVENT_PHASE_END, kEarlyJavaCategory, name.c_str(), 36 TRACE_EVENT_FLAG_COPY);
35 trace_event_internal::kNoId, thread_id,
36 TimeTicks::FromInternalValue(end_us), TRACE_EVENT_FLAG_COPY);
37 } 37 }
38 38
39 bool RegisterEarlyTraceEvent(JNIEnv* env) { 39 bool RegisterEarlyTraceEvent(JNIEnv* env) {
40 return RegisterNativesImpl(env); 40 return RegisterNativesImpl(env);
41 } 41 }
42 42
43 } // namespace android 43 } // namespace android
44 } // namespace base 44 } // namespace base
OLDNEW
« no previous file with comments | « no previous file | base/android/java/src/org/chromium/base/EarlyTraceEvent.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698