blob: 06bcc54a6e382b0bc2528b06c9440d67726cbe58 [file] [log] [blame] [edit]
#
# Copyright (C) 2022 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# A list of methods that are found to be latency sensitive. We have this manual
# due to current limitations of our boot image profiling, where knowing what
# methods are latency sensitive is difficult. For example, this method is executed
# in the system server, not on the UI thread of an app.
HSPLandroid/graphics/Color;->luminance()F
# TODO(shayba): remove the below once the generated profile is updated.
# See: b/419605355
HSPLandroid/os/MessageQueue$EnqueueOrder;->*
# Concurrent MessageQueue uses ConcurrentSkipListMap.
# See: b/415954362
# TODO(shayba): clean up redundant entries after ag/33686358 is merged.
HSPLjava/util/concurrent/ConcurrentSkipListMap;->*
HSPLjava/util/concurrent/ConcurrentSkipListMap$KeyIterator;->*
HSPLjava/util/concurrent/ConcurrentSkipListMap$KeySet;->*
HSPLjava/util/concurrent/ConcurrentSkipListSet;->*
# For now, also compile all method in the 'com.android.internal.dev.perfetto.sdk' Perfetto Trace API.
# Similar to the existing Trace APIs, these new APIs can impact the performance
# of many subsystems including MessageQueue. This also keeps benchmark
# comparisons between both APIs fair.
# The list is generated from the
# 'out/soong/.intermediates/external/perfetto/perfetto_trace_lib_framework_java/android_common/jarjar/perfetto_trace_lib_framework_java.jar'
# jar file, using the following command:
# ```
# jar tvf \
# out/soong/.intermediates/external/perfetto/perfetto_trace_lib_framework_java/android_common/jarjar/perfetto_trace_lib_framework_java.jar \
# | awk '$8 ~ /\.class$/ {sub(/\.class$/, "", $8); print "HSPL" $8 ";->*"}'
# ```
HSPLcom/android/internal/dev/perfetto/sdk/PerfettoTrackEventExtra;->*
HSPLcom/android/internal/dev/perfetto/sdk/PerfettoTrackEventExtra$Proto;->*
HSPLcom/android/internal/dev/perfetto/sdk/PerfettoTrackEventExtra$PerfettoPointer;->*
HSPLcom/android/internal/dev/perfetto/sdk/PerfettoTrackEventExtra$NamedTrack;->*
HSPLcom/android/internal/dev/perfetto/sdk/PerfettoTrackEventExtra$Flow;->*
HSPLcom/android/internal/dev/perfetto/sdk/PerfettoTrackEventExtra$FieldString;->*
HSPLcom/android/internal/dev/perfetto/sdk/PerfettoTrackEventExtra$FieldNested;->*
HSPLcom/android/internal/dev/perfetto/sdk/PerfettoTrackEventExtra$FieldInt64;->*
HSPLcom/android/internal/dev/perfetto/sdk/PerfettoTrackEventExtra$FieldDouble;->*
HSPLcom/android/internal/dev/perfetto/sdk/PerfettoTrackEventExtra$FieldContainer;->*
HSPLcom/android/internal/dev/perfetto/sdk/PerfettoTrackEventExtra$CounterTrack;->*
HSPLcom/android/internal/dev/perfetto/sdk/PerfettoTrackEventExtra$CounterInt64;->*
HSPLcom/android/internal/dev/perfetto/sdk/PerfettoTrackEventExtra$CounterDouble;->*
HSPLcom/android/internal/dev/perfetto/sdk/PerfettoTrackEventExtra$ArgString;->*
HSPLcom/android/internal/dev/perfetto/sdk/PerfettoTrackEventExtra$ArgInt64;->*
HSPLcom/android/internal/dev/perfetto/sdk/PerfettoTrackEventExtra$ArgDouble;->*
HSPLcom/android/internal/dev/perfetto/sdk/PerfettoTrackEventExtra$ArgBool;->*
HSPLcom/android/internal/dev/perfetto/sdk/PerfettoTrackEventBuilder;->*
HSPLcom/android/internal/dev/perfetto/sdk/PerfettoTrackEventBuilder$RingBuffer;->*
HSPLcom/android/internal/dev/perfetto/sdk/PerfettoTrackEventBuilder$Pool;->*
HSPLcom/android/internal/dev/perfetto/sdk/PerfettoTrackEventBuilder$ObjectsPool;->*
HSPLcom/android/internal/dev/perfetto/sdk/PerfettoTrackEventBuilder$ObjectsCache;->*
HSPLcom/android/internal/dev/perfetto/sdk/PerfettoTrackEventBuilder$LazyInitObjects;->*
HSPLcom/android/internal/dev/perfetto/sdk/PerfettoTrace;->*
HSPLcom/android/internal/dev/perfetto/sdk/PerfettoTrace$Session;->*
HSPLcom/android/internal/dev/perfetto/sdk/PerfettoTrace$Category;->*
HSPLcom/android/internal/dev/perfetto/sdk/PerfettoNativeMemoryCleaner;->*
HSPLcom/android/internal/dev/perfetto/sdk/PerfettoNativeMemoryCleaner$FreeNativeMemoryRunnable;->*
HSPLcom/android/internal/dev/perfetto/sdk/PerfettoNativeMemoryCleaner$AllocationStats;->*
# DeliQueue MessageQueue classes
# TODO(shayba): remove the below once they're in the generated boot-image-profile.txt
HSPLandroid/os/MessageHeap;->*
HSPLandroid/os/MessageStack;->*
HSPLandroid/os/WaitState;->*
HSPLandroid/os/Message;->compareMessages(Landroid/os/Message;Landroid/os/Message;)I
# While the SystemFeaturesMetadata static cache isn't heavyweight, ensure it's
# pre-initialized in the boot image to avoid redundant per-process overhead.
# TODO(b/326623529): Consider removing this after the feature has fully ramped
# and is captured with the boot image profiling pipeline.
HSPLcom/android/internal/pm/SystemFeaturesMetadata;->*
Lcom/android/internal/pm/SystemFeaturesMetadata;
# These methods were previously direct `native` JNI calls, but were made into
# Java wrappers with a recent change. Ensure they're compiled to avoid
# regressions on any hot paths.
# TOOD(b/417492941): Remove after inclusion in generated boot-image-profile.txt.
HSPLandroid/os/Process;->setThreadPriority(II)V
HSPLandroid/os/Process;->setThreadPriority(I)V
# TODO: remove after the generated profile is updated.
HSPLcom/android/internal/util/StringCache;->*