
この号では
-Javaの新機能:JDK9の不変コレクション 、JDK8のメモリ不足を処理するための新しいオプション
-x86で測定値を登録する方法は?
-オープンソースが来ています:IT業界の巨人は新しいフレームワークをレイアウトしています
-「私の死のうわさは非常に誇張されています」:Scala防衛に関するTwitter
-クラウド内のテラバイトのRAM: Amazonからの新しいオファー
-Google HRは面接にどのように招待しますか?
...など
1.ニュース
1.1。 Java 9の不変コレクション
不変のコレクションがJDK9に注がれました。 はい、シンプルではありませんが、コンパクトです! たとえば、Mapのキーと値のペアは通常の配列に格納され、その中にキーハッシュに従って配置されます。元のJIRAチケット: bugs.openjdk.java.net/browse/JDK-8139233
1.2。 Java 8のメモリ不足処理の新しいオプション
8u92 8の最後のリリース以降、2つの新しいフラグCrashOnOutOfMemoryErrorとExitOnOutOfMemoryErrorが JVMに表示されます。 両方のオプションは、最初のOutOfMemoryErrorが発生したときにJavaプロセスをクラッシュさせます。非常に便利な機能。 OOMの場合、サーバーアプリケーションは非常に長い時間、外部の影響に応答しないことがあります。 この場合に彼らとできる唯一のことは、あなたの手でそれを釘付けすることです。 これらのオプションを使用すると、Javaプロセスは自動的に終了し 、 CrashOnOutOfMemoryErrorの場合、クラッシュダンプも作成されます。
1.3。 LinkedInがAmbry分散ストレージのソースコードを開きます
LinkedIn規模の企業がソースコードを公開するとき、それは常に興味深いものです。 これにシステムのアーキテクチャの詳細な説明とその作成の歴史が付随する場合、それは二重に興味深いものです。一言で言えば、Ambryは次のように機能します。

ソース: engineering.linkedin.com
しかし、真剣に、記事を必ず読んでください。 技術的な意思決定の動機とプロセスのこのような詳細な説明は、GitHubのドライソースを読むよりも100万倍も有用です。
記事の公開後しばらくして、 LinkedInのハッキングとパスワード漏洩に関する情報が表示されたことに興味があります 。 あなたの多くは、おそらくパスワードの変更を勧める幸福の手紙を受け取りました。 偶然ですか? そうは思いません
1.4。 Twitterは分散ログシステムDistributedLogのソースコードを公開しました
企業が規模を拡大しているとき...まあ、あなたはポイントを得ます。リポジトリ: github.com/twitter/distributedlog
アーキテクチャの説明: blog.twitter.com/2015/building-distributedlog-twitter-s-high-performance-replicated-log-service
1.5。 TwitterでScalaはいくらですか?
死にかけているScalaのクロニクル。 TwitterエンジニアのStu Hoodは、Scalaで記述されたバックエンドシェアを50%と評価しました。 良くも悪くも、生きているScalaかどうか-自分で決めてください。このアクションのわずか1週間前に、Twitterが1株あたり13.90ドルまで絶対最小額をほぼ更新したのは興味深いことです。 偶然ですか? そうは思いません
1.6。 X1-新しいAmazon製品
Amazonは、新しいフラッグシップインスタンスX1のリリースを発表しました 。 何を理解しますか-128コア、2Tb RAM、10Gbpsネットワーク。 会社は、SAP、Spark、およびその他の巨大なデザインをこれらのインスタンスに転送することを親切に提案しています。
出典: www.businessinsider.com
これは鐘です。 そのような容量を積極的に使用するために、Amazonが非常に深刻な量をロールオフする必要があることは明らかです。 しかし、これはAmazon Web Servicesの営業利益が数十パーセントで測定されるときです。 それには数十年かかり、鉄はさらに安くなり、競争は増加し、マージンは低下し、サーバーハードウェアの購入は希少になります。
2.読む
2.1。 マーティントンプソンへのインタビュー
リンク : https : //www.infoq.com/interviews/thompson-high-performance-java/ネットワーク、プロファイラー、割り当て、パフォーマンスに関する興味深い会話。
2.2。 事後分析:有名なサービスとアプリケーションの崩壊の原因の分析
リンク : https : //github.com/danluu/post-mortemsAmazon、Google、Microsoftなどの一般的なサービスやアプリケーションのあらゆる種類のバグ、機能停止、その他の問題の原因の説明へのリンクを含む、非常に面白いリポジトリ
「データセンターBへのトラフィックが増加したため、データセンターAに落雷が発生しましたが、 負荷のかかった状態でしか再生されないソフトウェアの同時実行バグがあり、その結果、サービスの半分が停止しました」 分散システムの抑制における人間の能力の限界について考えるようになります。
2.3。 C2コンパイラの内部に関する記事
リンク : http : //marcelinorc.com/2016/05/11/phases-of-the-java-hostpot-c2s-compiler/ハードコアのファン向け。 この記事では、C2がコードを分析する方法と、使用する具体的な最適化について説明します。 これにはすべて、対応するOpenJDKソースへのリンクが提供されます。
2.4。 jcstressからのテストの例での「再レンダリング」のデモンストレーション
リンク : http : //stackoverflow.com/questions/37240208/reordering-of-reads/37241534#37241534Aleksey Shipilevは、 Javaメモリモデルを無視すると、x86のようなかなり落ち着いたアーキテクチャでも予測不可能な結果を招く可能性があることを示しています 。 合計ストア注文はあなたを節約しません。
3.知恵
3.1。 コードのライフサイクルについて
3.2。 ベンチマーク:GCの例の見事な数値または正確さ
3.3。 流通システムについて
3.4。 バグに対する態度について
3.5。 製品の最初のバージョンについて
4.ユーモア
4.1。 ハイリム右
Googleの人事は、雇用の問題を解決しました。 今、彼らは特定の人の位置を作成します。