Java Jitters -- The Effects of Java on Jitter in a Continuous Media Stream Mark Claypool and Jonathan Tanner Computer Science Department Worcester Polytechnic Institute
Motivation Java J a v Continuous Media Continuous Media Work Entertainment Java Cross platform Dynamic Security Java Media API J a v Continuous Media
Java Runtime Java Source Bytecode JIT Compiler Static Native Compiler JVM Java OS Native OS General CPU Java CPU
Java Run-Time Overhead Bytecode Execution Garbage Collection Thread Synch. Misc 15% 55% 15% 15%
Java Performance Traditional benchmarks CaffeineMark Spec95 jBYTEmark CaffeineMark JIT and Static Native speedup But … Continuous Media?
Continuous Media Quality time Server S0 S1 S2 S3 S4 t0 Client t0 C0 C1 C2 C3 Data Loss Delay Jitter
Garbage Collection GC frees memory Low Memory. Begin GC
Experiments Capture Format Send Interpreted - Sun’s JVM Static Native Compiled - Toba Baseline - C++ (with g++)
Experiments Frame Rate: 3 - 30 fps Capture Frame Size: 4 - 76k Format: min - max Send Frame Size: 4 - 76k 166 MHz Intel Pentium 32 MB RAM Linux 2.0.30 Ethernet
Jitter
Frame Rates
Conclusions Java 1/3 full-motion video could do up to 2/3 Static Native Compilation has same jitter and frame rate as Interpreted Java C++ vastly superior in framerate and jitter Contributions: Experimental continuous media performance Tunable continuous media server benchmark
Future Work Client Benchmark Just-In-Time (JIT) Compilers Adaptive Compilers Operating Systems Java OS Browsers Continuous Media Quality