1/* 2* Copyright (C) 2023 Huawei Device Co., Ltd. 3* Licensed under the Apache License, Version 2.0 (the "License"); 4* you may not use this file except in compliance with the License. 5* You may obtain a copy of the License at 6* 7* http://www.apache.org/licenses/LICENSE-2.0 8* 9* Unless required by applicable law or agreed to in writing, software 10* distributed under the License is distributed on an "AS IS" BASIS, 11* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12* See the License for the specific language governing permissions and 13* limitations under the License. 14*/ 15#include "memory_guard.h" 16 17#include "window_manager_hilog.h" 18#include "malloc.h" 19namespace OHOS { 20namespace Rosen { 21#ifdef CONFIG_USE_JEMALLOC_DFX_INTF 22namespace { 23constexpr HiviewDFX::HiLogLabel LABEL = {LOG_CORE, HILOG_DOMAIN_WINDOW, "MemoryGuard"}; 24} 25#endif 26MemoryGuard::MemoryGuard() 27{ 28#ifdef CONFIG_USE_JEMALLOC_DFX_INTF 29 int ret1 = mallopt(M_SET_THREAD_CACHE, M_THREAD_CACHE_DISABLE); // 0 indicates success 30 int ret2 = mallopt(M_DELAYED_FREE, M_DELAYED_FREE_DISABLE); 31 WLOGFD("disable tcache and delay free, result[%{public}d, %{public}d]", ret1, ret2); 32#endif 33} 34MemoryGuard::~MemoryGuard() 35{ 36#ifdef CONFIG_USE_JEMALLOC_DFX_INTF 37 int err = mallopt(M_FLUSH_THREAD_CACHE, 0); 38 WLOGFD("flush cache, result: %{public}d", err); 39#endif 40} 41} // namespace Rosen 42} // namespace OHOS