From 407b45793f666a4d98f094bfb2bfe0810bb7562c Mon Sep 17 00:00:00 2001 From: gavin Date: Mon, 17 Jul 2023 11:44:21 +0800 Subject: [PATCH] gallery optimization with high cpu freq Signed-off-by: gavin --- adapter/ohos/osal/frame_trace_adapter_impl.cpp | 7 +++++++ adapter/ohos/osal/frame_trace_adapter_impl.h | 1 + frameworks/base/thread/frame_trace_adapter.h | 1 + .../gestures/recognizers/long_press_recognizer.cpp | 7 +++++-- 4 files changed, 14 insertions(+), 2 deletions(-) diff --git a/adapter/ohos/osal/frame_trace_adapter_impl.cpp b/adapter/ohos/osal/frame_trace_adapter_impl.cpp index 4333b66f1c1..5d52dca7e49 100644 --- a/adapter/ohos/osal/frame_trace_adapter_impl.cpp +++ b/adapter/ohos/osal/frame_trace_adapter_impl.cpp @@ -16,6 +16,7 @@ #include "frame_trace_adapter_impl.h" #include #include "frame_trace.h" +#include "parameters.h" namespace OHOS::Ace { #ifdef __aarch64__ @@ -26,6 +27,7 @@ const char* FRAME_TRACE_SO_PATH = "/system/lib/platformsdk/libframe_trace_intf.z static bool g_judgeFrameTrace = false; static bool g_accessFrameTrace = false; +constexpr char INTERVAL_LIMIT[] = "ffrt.interval.limit"; bool FrameTraceAdapterImpl::AccessFrameTrace() { @@ -71,4 +73,9 @@ bool FrameTraceAdapterImpl::IsEnabled() } return false; } + +void FrameTraceAdapterImpl::SetFrameTraceLimit() +{ + OHOS::system::SetParameter(INTERVAL_LIMIT, "true"); +} } diff --git a/adapter/ohos/osal/frame_trace_adapter_impl.h b/adapter/ohos/osal/frame_trace_adapter_impl.h index 6671f6c2ef6..053657a9dfa 100644 --- a/adapter/ohos/osal/frame_trace_adapter_impl.h +++ b/adapter/ohos/osal/frame_trace_adapter_impl.h @@ -28,6 +28,7 @@ public: void SlowExecute(std::function&& func) override; bool EnableFrameTrace(const std::string&traceTag) override; bool IsEnabled() override; + void SetFrameTraceLimit() override; private: bool AccessFrameTrace(); diff --git a/frameworks/base/thread/frame_trace_adapter.h b/frameworks/base/thread/frame_trace_adapter.h index af8af36cb9f..fdf2f8a0716 100644 --- a/frameworks/base/thread/frame_trace_adapter.h +++ b/frameworks/base/thread/frame_trace_adapter.h @@ -35,6 +35,7 @@ public: { return false; } + virtual void SetFrameTraceLimit() {} }; } #endif diff --git a/frameworks/core/components_ng/gestures/recognizers/long_press_recognizer.cpp b/frameworks/core/components_ng/gestures/recognizers/long_press_recognizer.cpp index 2ba30c29c07..77801d39408 100644 --- a/frameworks/core/components_ng/gestures/recognizers/long_press_recognizer.cpp +++ b/frameworks/core/components_ng/gestures/recognizers/long_press_recognizer.cpp @@ -16,6 +16,7 @@ #include "core/components_ng/gestures/recognizers/long_press_recognizer.h" #include "base/perf/socperf_client.h" +#include "base/thread/frame_trace_adapter.h" #include "base/utils/utils.h" #include "core/components_ng/gestures/gesture_referee.h" #include "core/components_ng/gestures/recognizers/gesture_recognizer.h" @@ -33,8 +34,10 @@ constexpr int32_t MAX_FINGERS = 10; void LongPressRecognizer::OnAccepted() { - constexpr int32_t ACTION_LONG_PRESS_BOOST_CMDID = 10051; - SocPerfClient::GetInstance().PerfRequest(ACTION_LONG_PRESS_BOOST_CMDID, ""); + FrameTraceAdapter* ft = FrameTraceAdapter::GetInstance(); + if (ft != nullptr) { + ft->SetFrameTraceLimit(); + } if (onAccessibilityEventFunc_) { onAccessibilityEventFunc_(AccessibilityEventType::LONG_PRESS); } -- Gitee