タグ

Javaに関するn314のブックマーク (80)

  • Javaメモリ、GCチューニングとそれにまつわるトラブル対応手順まとめ - 日記のような何か

    GC周りでトラブルシューティングした際の経験や、Web等で調べたことをまとめてみる。 前提 ・JVMは、Sun Javaを想定。(他は使ったことないです。。。) ・Sun Java 1.5-1.6を想定。 目標 マイナーGC、Full GCそれぞれが頻発することなく、かつそれぞれの実行時間を1秒未満に抑えること。 マイナーGCは1秒未満どころではなく、もっと短くなるべき。どれくらいが理想かは?(0.1秒未満ぐらいを目指したい?) 連続した負荷状態(想定されるピークアクセス)でもOutOfMemoryErrorが発生しないこと。 理想的な状態は、上記に加えて、Full GCの発生が低頻度であること。 具体的には、できるだけマイナーGCで短命オブジェクト(1回使ったらもう使わないようなオブジェクト。逆にセッションオブジェクト等は長命オブジェクトとなる)を破棄させて、短命オブジェクトが、Tenu

    Javaメモリ、GCチューニングとそれにまつわるトラブル対応手順まとめ - 日記のような何か
    n314
    n314 2015/05/26
  • 肥え続けるTomcatと胃を痛めるトラブルハッカー (1/3) - @IT

    肥え続けるTomcatと胃を痛めるトラブルハッカー:現場から学ぶWebアプリ開発のトラブルハック(8)(1/3 ページ) 連載は、現場でのエンジニアの経験から得られた、APサーバをベースとしたWebアプリ開発における注意点やノウハウについて解説するハック集である。現在起きているトラブルの解決や、今後の開発の参考として大いに活用していただきたい。(編集部) メモリリークと聞いて、良いイメージを思い浮かべる開発者は少ないだろう。経験したことのある人にとっては、思い出したくない過去の記憶がよみがえるかもしれない。もしかしたら、その単語を聞くだけで胃が痛くなる人もいるかもしれない。筆者もかつてはその1人であった。 前々回の記事では、WebサーバとTomcatの間の接続において、スレッド数の不整合により発生したトラブル事例を、前回はTomcatとDBサーバの間のトラブル事例を紹介した。今回もTom

    肥え続けるTomcatと胃を痛めるトラブルハッカー (1/3) - @IT
  • syboos.jp

    n314
    n314 2015/05/25
  • HashMapでOutOfMemoryErrorが発生するケース - wadahiroの日記

    HashMapの同期化をしていないと無限ループになるという話はこことかここで説明されているのでかなり有名かと思います。 今回不運にも遭遇したのは、同期化をしていなくてOutOfMemoryError(以下、OOM)が起きてしまうというケース。かなり特殊かもしれないですが、同じ問題で悩む人が今後いればと思い、記録しておきます。 再現方法 早速再現方法を。以下のようなコードを実行すると、たまにOOMが起きてしまいます。HashMapに異なるデータをputをし続けてデータが増加し続けるという単純なリークではありませんよ! ここで行っていることは、 HashMapにデータを追加(キーは0-3000までのランダムな数字)するスレッド×2 追加されたデータを全て削除するスレッド×1 を同時に実行しているだけです。キーは0-3000で固定なので、どんどんHashMapの中身が増加し続けるということはあり

    HashMapでOutOfMemoryErrorが発生するケース - wadahiroの日記
    n314
    n314 2015/05/25
  • 米Typesafe、Java 8に対応した「Play Framework 2.3」をリリース | OSDN Magazine

    米Typesafeは6月2日、Java/Scala向けアプリケーション開発フレームワーク最新版「Play Framework 2.3」をリリースした。Java 8のサポートなど多数の新機能が導入されている。 Play FrameworkはJavaおよびScalaに対応するWebアプリケーション開発フレームワーク。生産性向上にフォーカスし、CPU、メモリなどのリソースを最小限に抑えた、高性能で拡張性に優れたモダンなアプリケーションを開発できるという。 Play Framework 2.3ではクライアント側のツールを強化、ビルドツール「sbt」のWeb向けプラグインである「sbt-web」が導入された。クライアントサイドのアセット処理ではエンジンとしてRhinoもしくはNodeを選択できるようになり、LESS、CoffeeScript、RequireJSといったツールの性能を改善するという。s

    米Typesafe、Java 8に対応した「Play Framework 2.3」をリリース | OSDN Magazine
  • 2015年のJavaによるWeb開発 - Qiita

    最近Javaしてますか? 昔はServletとJSPでやったな・・・Seasar2には感動したっけ、そんな思い出が浮かんだとしたらあなたのJavaはJ2EE、JavaEE的には5.0ぐらいで止まっているといわなければなりません。 ※Seasar2は2016/9/26にサポートが停止になります。OSSであるためforkされメンテナンスが続く可能性はありますが、一つの時代の区切りになると思います。 あれからJavaも進化を重ね、最新版のJavaEE7.0では他言語のフレームワークの生産性にも引けを取りません。 まだJavaやってるの(苦笑)の時代が長すぎたのか、2013年のリリースにもかかわらずJavaEE7.0についての記事は充実しているとは言えない状況です。ただ、その仕組みは素晴らしいものがあるのでこれを機に久々にJavaでもやってみるかなと思ってもらえれば幸いです。 ※2017/9/21

    2015年のJavaによるWeb開発 - Qiita
    n314
    n314 2015/05/07
  • Java SEバージョンアップでのトラブルの話が面白かった - きしだのHatena

    Java Day Tokyo 2015で、NECJava SEバージョンアップでのトラブルの話が面白かった。 Java EEアプリケーションサーバの開発現場で見たJava SEの実際 資料はこちらで公開されてるので、資料に書かれてることはそちら参照という感じで、どんな話だったか書いてみます。 Java Day Tokyo 2015 アプリケーションサーバーを提供する中でJava SEをバージョンアップしたときに出て来たさまざまなトラブルの話と、Java SE 8から導入されたMetaspaceの話が主でした。 Java EEは機能が標準化されているので、アプリケーションサーバーはカスタマーサポートで差別化をはかるしかない、顧客から見ると、Java SEやOSまで全て含めてアプリケーションサーバーなので、全部対応していく、という話をされていました。 Javaにもそれなりにバグはあって、アプ

    Java SEバージョンアップでのトラブルの話が面白かった - きしだのHatena
  • ThreadとHashMapに潜む無限回廊は実に面白い? (1/3) - @IT

    ThreadとHashMapに潜む無限回廊は実に面白い?:現場から学ぶWebアプリ開発のトラブルハック(10)(1/3 ページ) 連載は、現場でのエンジニアの経験から得られた、APサーバをベースとしたWebアプリ開発における注意点やノウハウについて解説するハック集である。現在起きているトラブルの解決や、今後の開発の参考として大いに活用していただきたい。(編集部) マルチスレッドのトラブルハックはさっぱり分からない… 対処が難しいトラブルといえば、GC(ガベージ・コレクション)とマルチスレッド処理に起因することが多い。 前々回(「肥え続けるTomcatと胃を痛めるトラブルハッカー 」)と前回(「JavaのGC頻度に惑わされた年末年始の苦いメモリ」)の2回にわたってGC、特にメモリ周りのトラブルを取り上げた。そこで今回は、マルチスレッド処理のトラブルの1つ、「レースコンディション(競合状態)

    ThreadとHashMapに潜む無限回廊は実に面白い? (1/3) - @IT
    n314
    n314 2015/04/02
  • (o1, o2) -> o1 - o2 なんて呪文はもうやめて! - Java8でのComparatorの使い方 - Qiita

    (o1, o2) -> o1 - o2 なんて呪文はもうやめて! - Java8でのComparatorの使い方Javajava8

    (o1, o2) -> o1 - o2 なんて呪文はもうやめて! - Java8でのComparatorの使い方 - Qiita
  • Javaを使うなら知っておきたい技術、フレームワーク、ライブラリ、ツールまとめ

    Javaの開発と言っても、各種ミドルウェアやフレームワーク、ライブラリ、ツールなどが豊富にあり選択に悩むことは少なくないと思います。 そこで関連技術のインデックスになればと作成しました。 あくまで知っている範囲で記述しているので、コメントしてもらえれば随時追加します! すべてを書くと膨大な量になるため、現状採用が減ってきているものや、そもそもあまり採用されていないもの、後継があったり、類似のものと比較した場合に明らかに劣っているものは省いています。 ちなみにライブラリには高機能なものも多いので、分類は参考程度にご覧下さい。 サーバ系 Apache HTTP Server 世界中でもっとも多く使われているWebサーバ。 nginx フリーかつオープンソースのWebサーバで、処理性能・高い並行性・メモリ使用量の小ささに焦点を当てて開発されている。 Tomcat Java ServletやJSP

    Javaを使うなら知っておきたい技術、フレームワーク、ライブラリ、ツールまとめ
    n314
    n314 2015/01/27
  • Java: 本番環境でのデバッグスキルを磨く - ワザノバ | wazanova

    https://www.youtube.com/watch?v=7KS4L-mA_-c 1 comment | 0 points | by WazanovaNews ■ comment by Jshiike | 約1時間前 Takipi のFounderであるTalWeissのSan Francisco Java User Groupミートアップでの講演。番環境で役に立つデバッグテクニックの紹介です。 1. スレッド名の活用 スレッド名はmutable(EJB除く)である。コードのコンテキストにあわせて、Thread.currentThread().setName(Context, TID, Params, Time,...);のようにすれば、トランザクションID、Serveletパラメータ、キューメッセージID、起動時間など、スタックトレースに役に立つ情報を表示できるようになる。 J

  • 再考: GoF デザインパターン - Qiita

    投稿は私の主観によって書かれています。コメントは大歓迎です。もし長くなるようでしたら別途記事に投稿し、リンクを張っていただけると嬉しいです。 概要 GoFのデザインパターンは適当すぎるから、いい加減、修正されるべき。 参考までに各パターンに対するコメントを書く。 GoFのデザインパターン GoFのデザインパターンは適当であり、教科書通りに学ぶべきものではないように思う。 以下がGoFのデザインパターンの良くない原因だろう。 が出版されたのは1994年であり、Java(1995)が出てくるよりも前だった オブジェクト指向が未成熟な時代にカタログ化された 現代のプログラミングと合致しないものが多い 「オブジェクト指向における~」と断っている以上、OOPに絡める必要があった パターンのいくつかに「多態性を用いると便利」という蛇足がついている 挙げたパターンに根拠がない 「とりあえず、23個ほ

    再考: GoF デザインパターン - Qiita
  • Cacti/JavaのVMを監視 - ピノキヲ IT Wiki

    ピノキヲ IT WikiJVMのSNMP出力設定 † 簡単にSNMP参照するにはJavaのオプションとして下記3つを付け加えます。 -Dcom.sun.management.snmp.port=1161 -Dcom.sun.management.snmp.acl=false -Dcom.sun.management.snmp.interface=0.0.0.0 ポート番号1161でACLファイルは参照せず、community名がpublic、任意のIPからSNMPで参照できる設定となります。 セキュアな社内ネットワークでのみ設定できるオプションなので注意してください。 この設定でJVMを起動したのち、snmpwalkで参照すると下記のようになります。 [root@pinoki ~]# snmpwalk -c public -v2c 192.168.1.1:1161 .1.3 SNMPv2

  • 今どきのJavaのPDFライブラリ まとめ (2014年版) |

    稿は2014年版の記事です。 新しい2017年版の記事がありますのでそちらをご覧ください。 稿では JavaPDF を作成/操作するライブラリについて調査した結果をご紹介します。 2014年06月現在、Googleで「Java PDF」などのキーワードで検索をすると古い記事ばかりがヒットするので、今どきのライブラリはどれなのかを調査しました。 まずは OSS のものを調査した後に製品プロダクトについても調査しました。 Apache PDFBox 最初に紹介するのは Apache PDFBox です。 比較的新しいライブラリで、Version 1.0.0 は2010年にリリースされ、現時点で最新の 1.8.6 は2014年06月にリリースされたばかりです。 プロジェクトが停止していないのは心強いですね。名前の通り、The Apache Software Foundation のもと

    今どきのJavaのPDFライブラリ まとめ (2014年版) |
    n314
    n314 2014/07/04
    まとめって言うほど数がなかった。本当にBDFBoxかiTextしかないのか…。
  • JavaPackage - Debian Wiki

    Translation(s): English - español NOTE: Debian recommends the use of OpenJDK packages (openjdk-7-jdk / openjdk-7-jre) instead of non-free packages created by this utility. java-package provides the ability to build a Debian package from a Java binary distribution by running make-jpkg <java binary archive file> (with archive files downloaded from providers listed below). Should your interest be mor

  • パッケージ名は、単数形?複数形? - Qiita

    Should package names be singular or plural? をざっと翻訳 (as of 2013.8.31) 訳注:意外と見逃しがちなネームスペースの単数形と複数形の問題。比較的シンプルにまとまったQAを見つけたので訳してみました(コメントは訳していません。java.beans は例外であったり、リレーションについては異論があったりするようです)。 Question (42 votes) by NickC しばしば、ライブラリにおいてパッケージはひとつの概念で構成されるクラス群を含みます。たとえば、 xml 、 sql 、 user 、 config 、 dbです。皆さん、至って自然にこれらのパッケージ名は単数であることが正しいと感じるのではないかと思います。 com.myproject. xml .Element com.myproject. sql .Con

    パッケージ名は、単数形?複数形? - Qiita
    n314
    n314 2013/11/28
  • 今どきのJava Webフレームワークってどうなってるの? - きしだのHatena

    昨日のSeasar2のエントリについたコメントなどで、「とはいえ代わりに何つかうの?」みたいな話が出てたので、とりあえずJava EEのWebフレームワークについて簡単にまとめてみます。 Java SE 8+Java EE 7+lombokで書いていますが、基的なところはJava SE 7+Java EE 6でも大丈夫です。 なので、今どきとは書いてますが、基的には2009年12月のJava EE 6ということで、実はすでに4年近くたってます。 何も考えてない なんも難しいこと考えないなら、やっぱJSPが楽ですよね。 なんでも書けちゃう。 <%@page contentType="text/html" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content=

    今どきのJava Webフレームワークってどうなってるの? - きしだのHatena
  • メールに関連した開発のお供に。Java製ダミーメールサーバ·FakeSMTP MOONGIFT

    FakeSMTPはJava製、マルチプラットフォームで使えるダミーのSMTPサーバです。 テスト用にダミーのSMTPサーバが必要になったらFakeSMTPを使ってみましょう。Java製なのでマルチプラットフォームで使えて便利です。 メイン画面です。サービスを開始します。 開始しました。この状態でプログラムからメールを送ってみます。 リストに送信したメールがあがってきます。 ダブルクリックで文が読めます。 ログです。 最後のメッセージは細かく見られます。 実際のメールアドレスを使って開発していて、間違って一括メール送信してしまったなどといったら目も当てられません。FakeSMTPを立てて決してメール送信されないようにしておけば安全に開発、運用ができるでしょう。 FakeSMTPはJava製のオープンソース・ソフトウェア(BSD License)です。 MOONGIFTはこう見る メール周り

    メールに関連した開発のお供に。Java製ダミーメールサーバ·FakeSMTP MOONGIFT
  • Flex から Servlet にファイルアップロード - kagamihogeの日記

    むかし Flex 勉強に S2BlazeDS でファイルアップロード・ダウンロード を書いた。けど、Flex というか Flash からは基的に*1ローカルファイル見れないんで、このテでアップロードは使えない。じゃどうするかってハナシですが、タブン今までのようにフツーに HTTP の POST でファイルアップロードしてやればええんだろうなー、と思ったのでやってみた。 サーバの Java 側 今回は何かしらのフレームワーク使わずに素の Servlet を使ってやってみます。 パッケージ構成はこんな感じ。 BlazeDS のテストに使ったプロジェクトと同居させたんで、色んなディレクトリがあるんだけど……まぁ気にせず。WEB-INF の下にソース置く男の人って……とか思うのもスルーで…… 次に、ライブラリに Apache Commons を使うんで、必要なパッケージを WEB-INF/lib

    Flex から Servlet にファイルアップロード - kagamihogeの日記
    n314
    n314 2012/04/07
  • 新しい Java SE API リファレンスの入手先について

    新しい Java SE API リファレンスの入手先について 2012年3月25日 at 10:30 午後 3件のコメント 2012 年 03 月 25 日、sun.com のドメインが利用不可になりました。これに併せ、java.sun.com で提供されていた Java SE API語ドキュメントもオンライン経由で参照する事ができなくなりました。今後、日語の Java SE API レファレンスはオンライン経由では参照できなくなりますので、アーカイブを御入手の上、ローカル環境でご参照ください。お手数をお掛けし申し訳ございませんが、どうぞ宜しくお願いします。 Java API の日語ドキュメントはコチラから入手が可能です。 ドキュメントの再配布ポリシーはコチラをご参照ください。 新しい日API ドキュメントのオンライン参照先URL (2012/4/11 訂正、追記) htt

    新しい Java SE API リファレンスの入手先について
    n314
    n314 2012/03/26