2015-04-08 Java Day Tokyo 2015 のメモ

とりあえず、メモ

間違っているところあれば、ごめんなさい

 

ゴールドマン・サックスのJavaへの取り組み 

  • 資料
  • hash
    • #jdt62
  • Javaに取り組んでる
    • 社員の25%がエンジニア
    • scalaを早期(2003?)から利用
    • GS Colllectionsを早期から着手
      • lambdaを見据えて設計
      • 2012 に上記をOSS
    • OpenJDKで開発してます
      • 190GBのheapとかあるので、JVMの仕様をしらないと、開発、運用できないの
      • ソースを観れるので、以下を実施できるよ
        • 本番での障害対応
        • 機能改善
        • セキュリティの対応
        • bug fixのfeed back
      • 主な活用
        • トラブルシュート、チューニングのため
        • リサーチして、事前にアプリに活用できるか検討
      • トラブルシュート
        • クラッシュダンプ解析
        • ソースから、デバッグ用のbuild作成する
        • 緊急時は、patchをあてたbuildを作成するが、基本はOpenJDK本家にパッチを投げてる
        • JVM TI Agentのトラブル
          • JVMがクラッシュした
          • デーモンスレッド上に、スレッド終了時のクラスロードで発生する?(ちと、聞き取れなかった)
          • コードを確認したら、以前のopenjdkのbug fixで終了時のcondition checkが追加されたが
            周辺のユーティリティでは、追加されてないみたいなので、追加するpatchを本家に送った
      • 研究事例
        • 圧縮OOP
          • 参照Objectを64bitじゃなくて圧縮32bitで参照できる
          • 64bitだと、メモリを食うので
            以前のOpenJDKでは32bitを3bit shiftでmem 32GBで使える
          • GSが改良して4bit shiftでmem 64GB使えるようにしたpatchを本家に投げた
            あと、このJVMのオプションを使うよう、社内にうながした
    • GS Collections