Continuous Bytecode Instruction Counting for CPU Consumption Estimation
As an execution platform, the Java Virtual Machine (JVM) provides many benefits in terms of portability and security. However, this advantage turns into an obstacle when it comes to determining the computing resources (CPU, memory) a program will require to run properly in a given environment. In this paper, we build on the Java Resource Accounting Framework, Second Edition (J-RAF2), to investigate the use of bytecode instruction counting (BIC) as an estimation of real CPU consumption. We show that for all of the tested platforms there is a stable, application-specific ratio of bytecodes per unit of CPU time – the bytecode rate (BR) – that can be used for translating a BIC value into the corresponding CPU consumption. Possible extensions and applications of this property are discussed.