{'fraction_non_alphanumeric': 0.018973998594518624, 'fraction_numerical': 0.004216444132115249, 'mean_word_length': 5.008438818565401, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Stack-based Method Invocation and Return Monitoring in ART for CPU Clock Rate Adjustment

Smartphones have become important devices. In particular, Android is an important platform with around 70% of the mobile operating share in Feb. 2022. Both improving performance and reducing battery consumption in Android are desirable. However, there is a trade-off between these two things. Increasing CPU clock rate causes better performance and worse power consumption. Hence, it is desired to increase the CPU clock rate only when a large CPU resource is required. Android uses the Linux kernel and the kernel adjusts the CPU clock rate based on a follow-up method. Namely, the kernel increases and decreases the rate after detection of increase and decrease in the CPU usage, respectively. Unlike usual Linux computers, a foreground application dominantly consumes CPU resources in a smartphone. Thus, we expect that CPU usage can be predicted by analyzing the application. In this paper, we focus on CPU clock frequency control based on previously monitored application behavior with an assumption that CPU usage trend depends on the executed method. We propose a new method for observing CPU usage of every method execution of applications by monitoring in the application runtime, which is called Android Runtime. We then present the monitoring results and show that the proposed method can investigate application behavior.