From 5e16305af0624f2ff09bf79af5c469cf497c112c Mon Sep 17 00:00:00 2001 From: c30077388 Date: Thu, 7 Aug 2025 20:56:06 +0800 Subject: [PATCH] =?UTF-8?q?trace=E6=8A=93=E5=8F=96=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: c30077388 Change-Id: I758ed898f58b4b2f172d419768e6826b81f4c717 --- build/libace.map | 1 + frameworks/base/BUILD.gn | 1 + frameworks/base/log/ace_trace.cpp | 6 +++ frameworks/base/log/ace_trace.h | 82 ++++++++++++++++++++++--------- 4 files changed, 68 insertions(+), 22 deletions(-) diff --git a/build/libace.map b/build/libace.map index eeddefc89ea..46d8cedfc64 100644 --- a/build/libace.map +++ b/build/libace.map @@ -43,6 +43,7 @@ OHOS::Ace::AceApplicationInfo::*; OHOS::Ace::AceScopedTrace::*; + OHOS::Ace::IsACETagEnabled*; OHOS::Ace::ActionSheetModel::*; OHOS::Ace::Animator::*; "OHOS::Ace::Backend::Create()"; diff --git a/frameworks/base/BUILD.gn b/frameworks/base/BUILD.gn index 9c4d89f9a24..742b86098ef 100644 --- a/frameworks/base/BUILD.gn +++ b/frameworks/base/BUILD.gn @@ -36,6 +36,7 @@ template("ace_base_source_set") { ] external_deps = [] external_deps += [ "zlib:shared_libz" ] + external_deps += [ "hitrace:hitrace_meter" ] include_dirs = [ "$ace_root" ] if (ohos_indep_compiler_enable) { include_dirs += indep_compile_includes diff --git a/frameworks/base/log/ace_trace.cpp b/frameworks/base/log/ace_trace.cpp index c6f554cd6fe..b7fa907158c 100644 --- a/frameworks/base/log/ace_trace.cpp +++ b/frameworks/base/log/ace_trace.cpp @@ -14,6 +14,7 @@ */ #include "base/log/ace_trace.h" +#include "hitrace_meter.h" #ifndef WINDOWS_PLATFORM #include "securec.h" @@ -24,6 +25,11 @@ namespace { const size_t MAX_STRING_SIZE = 512; } +bool IsACETagEnabled() +{ + return IsTagEnabled(HITRACE_TAG_ACE); +} + bool AceTraceBeginWithArgv(const char* format, va_list args) { char name[MAX_STRING_SIZE] = { 0 }; diff --git a/frameworks/base/log/ace_trace.h b/frameworks/base/log/ace_trace.h index 65fb0fe7e75..72d634fc8c6 100644 --- a/frameworks/base/log/ace_trace.h +++ b/frameworks/base/log/ace_trace.h @@ -26,60 +26,94 @@ #include "base/utils/noncopyable.h" #include "base/utils/system_properties.h" -#define ACE_SCOPED_TRACE(fmt, ...) AceScopedTrace aceScopedTrace(fmt, ##__VA_ARGS__) -#define ACE_SCOPED_TRACE_COMMERCIAL(fmt, ...) AceScopedTraceCommercial aceScopedTrace(fmt, ##__VA_ARGS__) -#define ACE_SCOPED_TRACE_FLAG(flag, fmt, ...) AceScopedTraceFlag aceScopedTraceFlag(flag, fmt, ##__VA_ARGS__) +#define ACE_SCOPED_TRACE(fmt, ...) \ + if (IsACETagEnabled()) { \ + AceScopedTrace aceScopedTrace(fmt, ##__VA_ARGS__); \ + } +#define ACE_SCOPED_TRACE_COMMERCIAL(fmt, ...) \ + if (IsACETagEnabled()) { \ + AceScopedTraceCommercial aceScopedTrace(fmt, ##__VA_ARGS__); \ + } +#define ACE_SCOPED_TRACE_FLAG(flag, fmt, ...) \ + if (IsACETagEnabled()) { \ + AceScopedTraceFlag aceScopedTraceFlag(flag, fmt, ##__VA_ARGS__); \ + } #define ACE_SVG_SCOPED_TRACE(fmt, ...) \ - AceScopedTraceFlag aceScopedTraceFlag(SystemProperties::GetSvgTraceEnabled(), fmt, ##__VA_ARGS__) + if (IsACETagEnabled()) { \ + AceScopedTraceFlag aceScopedTraceFlag(SystemProperties::GetSvgTraceEnabled(), fmt, ##__VA_ARGS__); \ + } #define ACE_TEXT_SCOPED_TRACE(fmt, ...) \ - AceScopedTraceFlag aceScopedTraceFlag(SystemProperties::GetTextTraceEnabled(), fmt, ##__VA_ARGS__) + if (IsACETagEnabled()) { \ + AceScopedTraceFlag aceScopedTraceFlag(SystemProperties::GetTextTraceEnabled(), fmt, ##__VA_ARGS__); \ + } #define ACE_SYNTAX_SCOPED_TRACE(fmt, ...) \ - AceScopedTraceFlag aceScopedTraceFlag(SystemProperties::GetSyntaxTraceEnabled(), fmt, ##__VA_ARGS__) + if (IsACETagEnabled()) { \ + AceScopedTraceFlag aceScopedTraceFlag(SystemProperties::GetSyntaxTraceEnabled(), fmt, ##__VA_ARGS__); \ + } #define ACE_ACCESS_SCOPED_TRACE(fmt, ...) \ - AceScopedTraceFlag aceScopedTraceFlag(SystemProperties::GetAccessTraceEnabled(), fmt, ##__VA_ARGS__) + if (IsACETagEnabled()) { \ + AceScopedTraceFlag aceScopedTraceFlag(SystemProperties::GetAccessTraceEnabled(), fmt, ##__VA_ARGS__); \ + } #define ACE_LAYOUT_SCOPED_TRACE(fmt, ...) \ - AceScopedTraceFlag aceScopedTraceFlag(SystemProperties::GetLayoutTraceEnabled(), fmt, ##__VA_ARGS__) + if (IsACETagEnabled()) { \ + AceScopedTraceFlag aceScopedTraceFlag(SystemProperties::GetLayoutTraceEnabled(), fmt, ##__VA_ARGS__); \ + } #define ACE_IMAGE_SCOPED_TRACE(fmt, ...) \ - AceScopedTraceFlag aceScopedTraceFlag(SystemProperties::GetDebugEnabled(), fmt, ##__VA_ARGS__) + if (IsACETagEnabled()) { \ + AceScopedTraceFlag aceScopedTraceFlag(SystemProperties::GetDebugEnabled(), fmt, ##__VA_ARGS__); \ + } #define ACE_MEASURE_SCOPED_TRACE(fmt, ...) \ - AceScopedTraceFlag aceScopedTraceFlag(SystemProperties::GetMeasureDebugTraceEnabled(), fmt, ##__VA_ARGS__) + if (IsACETagEnabled()) { \ + AceScopedTraceFlag aceScopedTraceFlag(SystemProperties::GetMeasureDebugTraceEnabled(), fmt, ##__VA_ARGS__); \ + } #define ACE_SAFE_AREA_SCOPED_TRACE(fmt, ...) \ - AceScopedTraceFlag aceScopedTraceFlag(SystemProperties::GetSafeAreaDebugTraceEnabled(), fmt, ##__VA_ARGS__) + if (IsACETagEnabled()) { \ + AceScopedTraceFlag aceScopedTraceFlag(SystemProperties::GetSafeAreaDebugTraceEnabled(), fmt, ##__VA_ARGS__); \ + } #define ACE_VSYNC_MODE_SCOPED_TRACE(fmt, ...) \ - AceScopedTraceFlag aceScopedTraceFlag(SystemProperties::GetVsyncModeTraceEnabled(), fmt, ##__VA_ARGS__) + if (IsACETagEnabled()) { \ + AceScopedTraceFlag aceScopedTraceFlag(SystemProperties::GetVsyncModeTraceEnabled(), fmt, ##__VA_ARGS__); \ + } #define ACE_EVENT_SCOPED_TRACE(fmt, ...) \ - AceScopedTraceFlag aceScopedTraceFlag(SystemProperties::GetTraceInputEventEnabled(), fmt, ##__VA_ARGS__) + if (IsACETagEnabled()) { \ + AceScopedTraceFlag aceScopedTraceFlag(SystemProperties::GetTraceInputEventEnabled(), fmt, ##__VA_ARGS__); \ + } #define ACE_REUSE_DETECTION_SCOPED_TRACE(fmt, ...) \ - AceScopedTraceFlag aceScopedTraceFlag(SystemProperties::GetDynamicDetectionTraceEnabled(), fmt, ##__VA_ARGS__) + if (IsACETagEnabled()) { \ + AceScopedTraceFlag aceScopedTraceFlag(SystemProperties::GetDynamicDetectionTraceEnabled(), fmt, ##__VA_ARGS__); \ + } #ifdef ACE_DEBUG -#define ACE_DEBUG_SCOPED_TRACE(fmt, ...) AceScopedTrace aceScopedTrace(fmt, ##__VA_ARGS__) +#define ACE_DEBUG_SCOPED_TRACE(fmt, ...) \ + if (IsACETagEnabled()) { \ + AceScopedTrace aceScopedTrace(fmt, ##__VA_ARGS__); \ + } #else #define ACE_DEBUG_SCOPED_TRACE(fmt, ...) #endif #define ACE_LAYOUT_TRACE_BEGIN(fmt, ...) \ - if (SystemProperties::GetLayoutTraceEnabled()) { \ + if (IsACETagEnabled() && SystemProperties::GetLayoutTraceEnabled()) { \ AceTraceBeginWithArgs(fmt, ##__VA_ARGS__); \ } #define ACE_LAYOUT_TRACE_END() \ - if (SystemProperties::GetLayoutTraceEnabled()) { \ + if (IsACETagEnabled() && SystemProperties::GetLayoutTraceEnabled()) { \ AceTraceEnd(); \ } // Enable trace for component creation and attribute settings #define ACE_BUILD_TRACE_BEGIN(fmt, ...) \ - if (SystemProperties::GetBuildTraceEnabled()) { \ + if (IsACETagEnabled() && SystemProperties::GetBuildTraceEnabled()) { \ AceTraceBeginWithArgs(fmt, ##__VA_ARGS__); \ } #define ACE_BUILD_TRACE_END() \ - if (SystemProperties::GetBuildTraceEnabled()) { \ + if (IsACETagEnabled() && SystemProperties::GetBuildTraceEnabled()) { \ AceTraceEnd(); \ } #define CHECK_NULL_VOID_LAYOUT_TRACE_END(ptr) \ do { \ if (!(ptr)) { \ - if (SystemProperties::GetLayoutTraceEnabled()) { \ + if (IsACETagEnabled() && SystemProperties::GetLayoutTraceEnabled()) { \ AceTraceEnd(); \ } \ return; \ @@ -89,8 +123,10 @@ #define ACE_FUNCTION_TRACE() ACE_SCOPED_TRACE(__func__) #define ACE_FUNCTION_TRACE_COMMERCIAL() ACE_SCOPED_TRACE_COMMERCIAL(__func__) -#define ACE_COUNT_TRACE(count, fmt, ...) AceCountTraceWidthArgs(count, fmt, ##__VA_ARGS__) - +#define ACE_COUNT_TRACE(count, fmt, ...) \ + if (IsACETagEnabled()) { \ + AceCountTraceWidthArgs(count, fmt, ##__VA_ARGS__); \ + } namespace OHOS::Ace { bool ACE_EXPORT AceAsyncTraceEnable(); void ACE_EXPORT AceTraceBegin(const char* name); @@ -104,6 +140,8 @@ void ACE_EXPORT AceAsyncTraceEnd(int32_t taskId, const char* name, bool isAnimat void ACE_EXPORT AceCountTrace(const char *key, int32_t count); void ACE_EXPORT AceCountTraceWidthArgs(int32_t count, const char* format, ...); +bool ACE_FORCE_EXPORT IsACETagEnabled(); + // for commercial trace void ACE_EXPORT AceTraceBeginCommercial(const char* name); void ACE_EXPORT AceTraceEndCommercial(); -- Gitee