Hackpads are smart collaborative documents. .

Jim Huang

371 days ago
Unfiled. Edited by Jim Huang 371 days ago
JCConf 2016 Day2 (R0)
Jim H JEP 275: Modular Java Application Packaging
目標: jlink helps to generate a JRE image with the required modules only
  • JVMCI 可協助建立特定的 AOT image!
374 days ago
Unfiled. Edited by Jim Huang 374 days ago
  • JDK8 JIT 行為和效能分析 <jserv>
1073 days ago
Seventysecond R1簡報檔資料夾
  • EventBus and Reactive Programming on Android
Ingram C
  • loader/async task are all trash!
  • use ExecutorService directly
Liwei C Thanks, great suggestion!
  • event bus 很好用,不過
  •    * 沒有回傳值
  •    * 太 decouple 的結果,反而看不出程式的因果
  •    * centralize communication 換句話說就是一種 global variable
  •    event bus 到底要在 ondestroy 還是 onstop 裡 unregister 困擾我很久。。。 有任何建議嗎?我們現在大多選 ondestroy
  •   stickyevent 就 queue 的觀念。。。 還以為是什麼神奇的。。。
hua c
  • Hazelcast
  • Memcached Api
  • Distributed system 細節待確認
Tsai M
  • Banking on OpenJDK to Goldman Sachs
Jim H Cutting edge Java in GS
  • We do push boundary of Java (高盛對Java的貢獻)
Jim H
  • very large heap
  • 190G heap (For some CMS)
Jim H
  • JVM stressed under high volume conditions or unusual usage pattern
  • Why Open JDK (In banking)?
  • Control to source code
  • Ease to debug
  • Patch workarounds
  • How Open JDK is used
  • GS Open JDK framwork
  • Have a private repo
  • Have extra performance tests
  • A case study: (GS 幫 抓bug案例)
  • Caused Deamon Thread
  • Researches Done (interesting)
Compressed Oops
  • Save the 8 bytes memory reference in 64-bit Java to 4 bytes by compressing(怎麼壓縮??)
Jim H
  • store object reference in 32-bit value instead of 64-bit
  • limited to 32G heap
游騰保 Sting Interning v.s String Dedup
  • share instances
Tsai M String Dedulication
Jim H
  • OpenJDK vs. Dalvik/ART
Speaker: Jim Huang (黃敬群) a.k.a. "jserv
  • How a dynamic compiler like Hotspot and Dalvik/ART works
  • The common optimization techniques in virtual machines
  • Performance specific issues
Heritage of Virtual Machines
Self VM -> Strongtalk VM -> HotSpot VM
  • Method inlining
  • Loop unrolling
  • Lock coarsening/eliding
  • Dead code elimination
  • Duplicate code elimination
  • Escape analysis
Performance Pitfall
  • Memory accesses
  • By far the biggest expense
  • Calls
  • Memory reference + branch kills pipeline
  • Call stack, register juggling costs
  • Locks
  • Caches
  • Each CPU maintains a memory cache
  • Caches may be out of sync
  • If it does matter, threads disagree!
  • Volatile forces synchronization of cache
  • Across cores and to main memory
  • client mode (C1)
  • server mode (C2)
  • Profile to find “hot spots”
  • Call sites
  • Branch statistics
  • Profile until 10k calls
游騰保 Summary:
  • OpenJDK是長期累計 Dalvik是想要static化
Jim H Dalvik

Contact Support

Please check out our How-to Guide and FAQ first to see if your question is already answered! :)

If you have a feature request, please add it to this pad. Thanks!

Log in