!分岐するプログラムの速度 {{category Java}} ちょっとした実験。 ある数値(その数値はほとんどかわらない)に従って 挙動を変えるJavaプログラムの動作速度の実験 ::switch文で分岐 java Test 0 10 1000000 > /dev/null 5.16s user 2.77s system 99% cpu 7.988 total ::Methodをつかってinvoke java Test 1 10 1000000 > /dev/null 5.46s user 2.87s system 99% cpu 8.388 total ::共通のインターフェースを実装したクラスで切り替える java Test 2 10 1000000 > /dev/null 5.09s user 2.73s system 99% cpu 7.875 total ::switch文で分岐(JNI版:参考まで...) java Test 3 10 1000000 > /dev/null 5.63s user 2.84s system 99% cpu 8.545 total 実験環境は、CPU 2.2GHz Intel Core2Duo、メモリ 2GB。 JNI使うなら当然もっと負荷高いことしないとだめ。 !MacでJNI gcc -PIC -dynamiclib -o libTestJNI.jnilib \ -I/System/Library/Frameworks/JavaVM.framework/Headers \ -lstdc++ \ TestJNI.cxx {{files}}