Last active
January 1, 2016 09:09
-
-
Save Fuud/8122612 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Смотрю микробенчмарк: | |
https://github.com/kuksenko/quantum/blob/master/src/main/java/quantum/selfstudy4/LoopBack.java | |
----- | |
Запускаю на | |
$ java -version | |
java version "1.8.0-ea" | |
Java(TM) SE Runtime Environment (build 1.8.0-ea-b105) | |
Java HotSpot(TM) 64-Bit Server VM (build 25.0-b47, mixed mode) | |
Intel Core i7-2600 3.40GHz | |
----- | |
Результаты | |
Benchmark Mode Thr Cnt Sec Mean Mean error Units Mean/Mean_forward_1K | |
q.s.LoopBack.backward1K avgt 1 10 5 0.348 0.009 nsec/op 1.14 +- 0.030 | |
q.s.LoopBack.forward1K avgt 1 10 5 0.306 0.001 nsec/op 1 | |
q.s.LoopBack.backward32K avgt 1 10 5 0.338 0.007 nsec/op 1.13 +- 0.024 | |
q.s.LoopBack.forward32K avgt 1 10 5 0.298 0.002 nsec/op 1 | |
q.s.LoopBack.backward4M avgt 1 10 5 0.457 0.014 nsec/op 1.06 +- 0.053 | |
q.s.LoopBack.forward4M avgt 1 10 5 0.433 0.017 nsec/op 1 | |
Замечание: | |
Обратный цикл в среднем работает медленнее. | |
Смотрим ассемблер. | |
java -XX:-TieredCompilation -XX:+UnlockDiagnosticVMOptions -XX:+PrintCompilation -XX:+PrintInlining -XX:+PrintAssembly -jar target/microbenchmarks.jar "quantum.sel.*.Lo.*" -i 10 > out.txt | |
------------------------------------------------------------------------------------------------------------------ | |
ForwardSum: | |
0x0000000002ad4a00: add 0x10(%rbx,%r13,4),%r14d | |
0x0000000002ad4a05: movslq %r13d,%r8 | |
0x0000000002ad4a08: add 0x14(%rbx,%r8,4),%r14d | |
0x0000000002ad4a0d: add 0x18(%rbx,%r8,4),%r14d | |
0x0000000002ad4a12: add 0x1c(%rbx,%r8,4),%r14d | |
0x0000000002ad4a17: add 0x20(%rbx,%r8,4),%r14d | |
0x0000000002ad4a1c: add 0x24(%rbx,%r8,4),%r14d | |
0x0000000002ad4a21: add 0x28(%rbx,%r8,4),%r14d | |
0x0000000002ad4a26: add 0x2c(%rbx,%r8,4),%r14d | |
0x0000000002ad4a2b: add 0x30(%rbx,%r8,4),%r14d | |
0x0000000002ad4a30: add 0x34(%rbx,%r8,4),%r14d | |
0x0000000002ad4a35: add 0x38(%rbx,%r8,4),%r14d | |
0x0000000002ad4a3a: add 0x3c(%rbx,%r8,4),%r14d | |
0x0000000002ad4a3f: add 0x40(%rbx,%r8,4),%r14d | |
0x0000000002ad4a44: add 0x44(%rbx,%r8,4),%r14d | |
0x0000000002ad4a49: add 0x48(%rbx,%r8,4),%r14d | |
0x0000000002ad4a4e: add 0x4c(%rbx,%r8,4),%r14d ;*iadd | |
; - quantum.selfstudy4.LoopBack::forwardSum@14 (line 51) | |
0x0000000002ad4a53: add $0x10,%r13d ;*iinc | |
; - quantum.selfstudy4.LoopBack::forwardSum@16 (line 50) | |
0x0000000002ad4a57: cmp %r11d,%r13d | |
0x0000000002ad4a5a: jl 0x0000000002ad4a00 ;*if_icmpge | |
; - quantum.selfstudy4.LoopBack::forwardSum@7 (line 50) | |
------------------------------------------------------------------------------------------------------------------ | |
BackwardSum | |
0x000000000299e895: add 0x10(%rdx,%rcx,4),%eax ;*iadd | |
; - quantum.selfstudy4.LoopBack::backwardSum@15 (line 59) | |
0x000000000299e899: dec %ecx ;*iinc | |
; - quantum.selfstudy4.LoopBack::backwardSum@17 (line 58) | |
0x000000000299e89b: cmp %r11d,%ecx | |
0x000000000299e89e: jg 0x000000000299e895 ;*iflt | |
; - quantum.selfstudy4.LoopBack::backwardSum@8 (line 58) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment