Proceedings of the 1st ACM/USENIX International Conference on Virtual Execution Environments 2005
DOI: 10.1145/1064979.1064997
|View full text |Cite
|
Sign up to set email alerts
|

Inlining java native calls at runtime

Abstract: We introduce a strategy for inlining native functions into Java TM applications using a JIT compiler. We perform further optimizations to transform inlined callbacks into semantically equivalent lightweight operations. We show that this strategy can substantially reduce the overhead of performing JNI calls, while preserving the key safety and portability properties of the JNI. Our work leverages the ability to store statically-generated IL alongside native binaries, to facilitate native inlining at Java callsi… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
17
0

Year Published

2007
2007
2023
2023

Publication Types

Select...
8

Relationship

0
8

Authors

Journals

citations
Cited by 31 publications
(17 citation statements)
references
References 20 publications
0
17
0
Order By: Relevance
“…As we can see, the performance gap is so wide that some optimizations are called for. A native call inlining mechanism was presented by Levon Stepanian et al [20] to eliminate the JNI call-out and call-back overheads. Here, without the necessity of modifying Android's DVM, we focus on optimizing the call-back overhead to improve the quality of generated native code.…”
Section: Optimizationsmentioning
confidence: 99%
See 1 more Smart Citation
“…As we can see, the performance gap is so wide that some optimizations are called for. A native call inlining mechanism was presented by Levon Stepanian et al [20] to eliminate the JNI call-out and call-back overheads. Here, without the necessity of modifying Android's DVM, we focus on optimizing the call-back overhead to improve the quality of generated native code.…”
Section: Optimizationsmentioning
confidence: 99%
“…Levon Stepanian et al [20] proposed a mechanism to reduce the JNI overhead, which is to inline the native calls with the help of JIT compiler's inlining optimization. Therefore, the native code will be executed in the JVM's context.…”
Section: Related Workmentioning
confidence: 99%
“…There is an performance bonus of 5%-10% achieved using our technique. As we have seen by inlining the JNI calls [7] there can be a gain in the performance but these are not applied to the android JNI as it is new to the market. The Janet [8] provides the programmer an easy way to integrate the JNI and Java with type safe and static error checking.…”
Section: Resultsmentioning
confidence: 99%
“…The callbacks to the JNI are transformed into their equivalent lightweight operations [7]. IBM TR JIT [7] compiler is used as it supports multiple JVMs and class library implementation. The control flow for the TR JIT consists of phases for intermediate language (IL) generation, optimization and code generation.…”
Section: Inlining Java Native Calls At Runtimementioning
confidence: 99%
“…In order to repel the attack, it is essential to have a join point at the beginning of the synchronized block that limits the CPU usage or the size of free memory. Java provides the Java Native Interface (JNI) library for talking to an operating system via a C layer and providing the resulting data to the Java application [16]. A before advice can use Java assertions to check the CPU usage, as shown in Figure 1.…”
Section: Re-entrant Checkingmentioning
confidence: 99%