タグ

javaに関するjyottiのブックマーク (11)

  • レイテンシーを計算する技術の話 - LINE ENGINEERING

    こんにちは、LINEメッセンジャーのサーバーサイドとモニタリングプラットフォームの開発を担当しているフィ(@dxhuy)です。この記事はLINE Advent Calendar 2017の20日目の記事です。 今日は、モニタリングシステムでよく使うレイテンシーやその計算方法などについて紹介したいと思います。LINEでは、日々ユーザが楽しくメッセージを送れるように、システムの安定性を第一に考えています。安定したシステムを保つためにたくさんの指標を見守る必要がありますが、その指標の1つが「レイテンシー」です。 ウィキペディアでは、レイテンシーは以下のように定義されています。 デバイスに対してデータ転送などを要求してから、その結果が返送されるまでの不顕性の高い遅延時間のこと インターネットサービスにおいては、レイテンシーは基的に「レスポンスタイム」のことです。つまり、リクエストを受けてからレス

    レイテンシーを計算する技術の話 - LINE ENGINEERING
    jyotti
    jyotti 2017/12/21
  • Java開発の性能改善! その2 GCログの解析とHeapの設定 - Qiita

    第2回です。 なかなか更新できる時間がないですが マイペースで書いていこうと思います。 ストックやフォローをして頂けると励みになります。 さて前回はGCの仕組みの概要説明とjstatでのモニタリングでした。 今回はCGログの分析をしてみようと思います。 JVMのGCログ設定 まずはGCログが取得できるように設定しないと始まりませんね。 以下のようなオプションをjavaの起動コマンドに付与すると GCの情報を取れるようになります。 -verbose:gc [GC 919089K->41941K(943744K), 0.2300771 secs] こんな感じのGCログが出ます。 -XX:+PrintGCDetails -XX:+PrintGCDateStamps [GC2015-12-10T07:06:41.209+0900: 308.418: [ParNew: 903392K->50610K

    Java開発の性能改善! その2 GCログの解析とHeapの設定 - Qiita
    jyotti
    jyotti 2016/10/01
  • Java開発の性能改善! その1 jstatによるヒープ/GCの確認 - Qiita

    JavaのWeb開発の開発後期になると性能試験や負荷試験を実施することになると思いますが、 そのフェーズになると色々な問題が起こることが多い。 今まで起きた問題と調査・解決方法をいくつかの回に分けて紹介しようと思います。 まずはメモリリーク。 長時間サーバを起動して運用していたり、負荷試験を実施するとメモリリークを起こすことがある。 ガベージコレクションのおさらい Javaのヒープは大きくnew領域(young領域)とold領域に分かれます。 new領域には生成されてすぐのオブジェクトが格納されてマイナーGCにて未使用になった際に開放されます。 マイナーGCを何度も繰り返されても開放されない(長く参照されている)オブジェクトは old領域へと移動され、こちらはメジャーGC(フルGC)で開放されます。(メジャーGCはnewとperm領域も開放。) もう少し細かく説明すると・・・ new領域は

    Java開発の性能改善! その1 jstatによるヒープ/GCの確認 - Qiita
    jyotti
    jyotti 2016/10/01
  • Web API サーバ負荷試験のすすめ方 – 観点を整理、負荷を試算、対象を選定 | DevelopersIO

    負荷試験対策ミーティング ここでは、チームメンバーを集めて、システム要件の再確認と、バックエンドのアーキテクチャを再確認をまず行います。すなわち、「求められているもの=要件」と、「提供できるもの=アーキテクチャ」の確認です。ここの認識が揃っていないと、的はずれな負荷試験を実施してしまうことになりかねません。立場や役割にかかわらず、サービス全体として考えるべきです。 負荷試験の目的 負荷試験を行うことによって、何を示したいのか決めます。今回は、以下の目的を定めます。 サービスリリース後、想定されるピーク時のリクエストを受けた場合でも、問題なく稼働を続けられることを確認する システムのスループット限界値を確認する 負荷試験の観点 たいていのWebシステムの場合、昼夜を問わず稼働し続けるものとなるでしょう。今回例にとったシステムも24時間365日、リクエストを受け付けるものとします。この場合、観

    Web API サーバ負荷試験のすすめ方 – 観点を整理、負荷を試算、対象を選定 | DevelopersIO
  • JJUG CCC 2016 Spring ( #jjug_ccc ) - セッション資料の一覧 - 地平線に行く

    JJUG CCC 2016 Spring に行ってきました! 今回は、改善系のネタを中心に聞いていました。 この手の話はやっぱり、勉強会っぽくて、そして自分の世界が広がる(そんなやり方があったのか!っておどろく)のでとても好きです。 最近、自分の仕事プロジェクトをよくしていこうぜ!というのでとても参考になりました。 ありがとうございました! 次回は Java 9 の話がもっと出てくるのかな…? あと、今回はスマートフォン用タイムテーブルを勝手に作ってみました。 懇親会や Twitter で聞いた限り、たくさんの方に使っていただけたみたいでうれしいです。 また、次も作ると思うのでそのときはまたご利用ください! JJUG CCC 2016 Spring - Timetable (非公式) さて、毎回のことですが*1、残念ながら時間がかぶってしまって参加できなかったセッションもあったので、あと

    JJUG CCC 2016 Spring ( #jjug_ccc ) - セッション資料の一覧 - 地平線に行く
  • Javaの謎のパフォーマンス劣化現象との戦い - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは。アプリケーション基盤チームの横田です。 Javaの謎のパフォーマンス劣化にまつわる調査をしていたのですが、1ヶ月の苦労の末に原因がわかりましたので、報告させていただきます! 公開後に頂いたはてなブックマークでのご指摘・社内でのタイポ・読みにくいなどの指摘を受けてたので、謹んで修正させいただきます。 修正した内容につきましては、記事の最後を参照してください。 忙しい人のためのまとめ jdk-7u4以降のjdk-7 *1 でJavaのパフォーマンスが劣化する謎の現象 CodeCacheの容量限界に近づくとJITコンパイラを停止してコンパイルしたコードを捨てる機能が原因だった 起動オプションで回避できるので、長期運用するときは -XX:-UseCodeCacheFlushing, -XX:ReservedCodeCacheSize=128m をつける 上のオプションを設定した時に、C

    Javaの謎のパフォーマンス劣化現象との戦い - Cybozu Inside Out | サイボウズエンジニアのブログ
    jyotti
    jyotti 2016/04/13
  • データクラスから始めるKotlin / JetBrainsに行ってきました #kotlin_kansai #jkug

    Elasticsearchプラグインの簡単な作り方を紹介します。また、Elasticsearchを便利に利用するためのプラグインも紹介します。

    データクラスから始めるKotlin / JetBrainsに行ってきました #kotlin_kansai #jkug
    jyotti
    jyotti 2016/04/03
    kotlin楽しそう
  • Java 8とScala ‐アプローチの違いと相互イノベーション | POSTD

    ScalaJava 8に関する プレゼンテーション が、他の似た内容のものよりも多くリツイートされ、大変うれしく思います。だから、こうして皆さんにブログでも書いてお伝えすることにしました。ScalaJavaとの違いと、それぞれの重要性についてお話しします。両者は相互にイノベーションしています。言語間でお互いに取り入れています。では、Javaが使える場合であっても、Scalaを学ぶ必要があるのでしょうか? もちろんです。より多くの言語を知れば知るほど、あなたはさらにプロフェッショナルになっていきます。 もし、ScalaエンジニアScalaJavaとの基的な違いについて尋ねたとしても、おそらくその人はラムダ関数とトレイトに関する違いを全て言うことはないでしょう。代わりに次のような例を出すはずです。 public class Person { private String firstN

    Java 8とScala ‐アプローチの違いと相互イノベーション | POSTD
  • Web Application Server を動かす時の Java8 起動オプションのメモ - その手の平は尻もつかめるさ

    一般的な Web Application Server *1 を Java8 で動かすにあたって,最近有効にしている起動オプションについてメモ. 何か間違っていたり,あるいは「こっちの方が良い」みたいなのがあれば教えて下さい. -server server mode で起動させる (指定しないと client mode になる可能性がある,マシンスペックによってスイッチする?). -Djava.net.preferIPv4Stack=true If IPv6 is available on the operating system the underlying native socket will be an IPv6 socket. This allows Java(tm) applications to connect too, and accept connections from,

    Web Application Server を動かす時の Java8 起動オプションのメモ - その手の平は尻もつかめるさ
    jyotti
    jyotti 2016/03/11
  • 続・今日から始めるJava8 - JSR-310 Date and Time API - Taste of Tech Topics

    こんにちは id:cero-t です。 前回話題にしたJava8 ですが、もう少し別の機能を試してみましょう。 今回は新しい日時API、Date and Time API(JSR-310) を紹介します。 JDK8 M6時点でのJavadocは、以下のURLで公開されています。 http://cr.openjdk.java.net/~rriggs/threeten/threeten-javadoc-b75/ 注意:このエントリーの内容は、JDK8 M6 (b75) の時点のAPIに従っています。 M7以降では一部のAPIが変わっているので注意してください。GA時点でまた記事を見直します。 From Joda Time to Three Ten Javaの日付クラス(java.util.Date)の扱いは、 皆さんもなかなか苦慮していることだと思います。 というのも、、、 ・年月日などを指定

    続・今日から始めるJava8 - JSR-310 Date and Time API - Taste of Tech Topics
    jyotti
    jyotti 2016/02/10
  • Java系 | mwSoft

    【コードリーディング系】 (2011/08/14) hello worldするだけのクラスファイル(バイナリ)を読む Integer.bitCountのコードを読んでみる -2147483648を Math.abs にかけると-2147483648がそのまま返ってくるという話 Integer.lowestOneBitのコードを読んでみる Integer.highestOneBitのコードを読んでみる 2進数を文字列にする処理というのは、それなりに面倒みたいです Integer.reverseのロジックは、良いビット演算の教材だと思います 【JDKサンプルコード系】 URLConnectionやHttpClientを用いた際のプロキシの設定いろいろ。 javax.imageio.ImageIOでJPEGファイルに変換する簡易コード 環境問わず使える簡易さがとても便利 リダイレクトを使いたい時

  • 1