タグ

javaに関するikd9684のブックマーク (177)

  • Javaの謎のパフォーマンス劣化現象との戦い - Cybozu Inside Out | サイボウズエンジニアのブログ

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

    Javaの謎のパフォーマンス劣化現象との戦い - Cybozu Inside Out | サイボウズエンジニアのブログ
  • OutOfMemoryError の調べ方 - Qiita

    OutOfMemoryError (以下 OOME)が起こったときにお手上げ状態にならないためにも、 Java のメモリ管理の仕組みとか、 OOME が起こったときの調査方法とかを調べる。 環境 OS Windows 7 > java -version java version "1.8.0_74" Java(TM) SE Runtime Environment (build 1.8.0_74-b02) Java HotSpot(TM) 64-Bit Server VM (build 25.74-b02, mixed mode) Java 8 で、 Oracle の JVM を前提とした話です。 Java のメモリ管理 これを知っておかないと、 OOME が起こっても、メモリ内で何が起こっていて、どこを調査すべきで、どのように対処したらいいのかが判断できない。 なので、まずは、そもそも J

    OutOfMemoryError の調べ方 - Qiita
    ikd9684
    ikd9684 2016/03/14
  • PlayFrameworkをただの静的型付けMVCだと思って本番稼動させると死ぬ - サナギわさわさ.json

    (3/15 : タイトル修正しました。wは小文字ですね、すみません・・・) PlayFrameworkが流行り始めてから割と経ちますので、そろそろ正式採用しようと考える方も多いのではないかと思います。 強力な静的型付けで守られたPlayは、ミッションクリティカルなシステムや数万行を超える大規模システムの構築に特に向いているような気がします。 また、Servletを使っていないのに加えてMVC構造がベースなので、今までRailsなどで開発をしていた人でもシームレスに移行できると思います。 しかし、忘れてはならないのがPlayのアーキテクチャが全ての処理が非同期で行われることを前提としているという事です。 ここを忘れてPlayをただの強力な静的型付けで守られたMVCフレームワークとだけ考えて開発を進めてしまうと、番環境で稼動させた時にパフォーマンスが上がらずに困ることになるかもしれません。今

    PlayFrameworkをただの静的型付けMVCだと思って本番稼動させると死ぬ - サナギわさわさ.json
    ikd9684
    ikd9684 2016/03/10
    固有名詞の大文字・小文字はもっと大切に扱おうぜ。
  • TomcatをMacにインストール - Qiita

    ちょっと所用でTomcatをインストールしてみた。 環境はMac OS X 10.9.2 1. ひとまずMacJavaのバージョンも上げておく Java SE Development Kit 8 Downloadsから下図の Mac OS X x64 の項にあるjdk-8u5-macosx-x64.dmgをダウンロードしてインストール 2. Tomcatの導入 2-1. ダウンロード Apache Tomcat - Apache Tomcat 7 Downloadsからtar.gzをダウンロードして解凍しておく 2-2. /usr/localへ配置 解答したapache-tomcat-フォルダを/usr/localへ移動

    TomcatをMacにインストール - Qiita
    ikd9684
    ikd9684 2016/03/02
  • Java 9ではWebブラウザ用のJavaプラグインを廃止。オラクルが発表(追記あり)

    米オラクルは、2017年3月にリリース予定のJava 9では、Webブラウザ用のJavaプラグインが廃止非推奨になる予定であることを明らかにしました。 Moving to a Plugin-Free Web (Java Platform Group, Product Management blog) Java Platform Group, Product Management blogのブログにポストされた記事「Moving to a Plugin-Free Web」で、次のように記されています。 Oracle plans to deprecate the Java browser plugin in JDK 9. This technology will be removed from the Oracle JDK and JRE in a future Java SE release

    Java 9ではWebブラウザ用のJavaプラグインを廃止。オラクルが発表(追記あり)
    ikd9684
    ikd9684 2016/01/28
    え、使ってる人いるの?……。
  • Java8時代のフレームワーク Spark Framework - Qiita

    Spark Frameworkとは RubyのSinatoraというフレームワークにインスパイアされて作られた、シンプルなウェブ・アプリケーション・フレームワークです。 Java8のLambdaをサポートしていて、シンプルに記述することが可能です。 組み込みのWebサーバが内蔵されているため、APサーバを別途建てること無くアプリケーションを実行することが出来る点もイマドキな感じがします。 ScalaでもScalatraというSinatra Likeなフレームワークが有り、それを使っていた身としてはしっくりくるフレームワークでした。 依存関係を追加 では、Saprk Frameworkを使ってみましょう。 今回は、Gradleを使ってプロジェクトを作成します。 group 'sample' version '1.0.0-SNAPSHOT' apply plugin: 'java' sourc

    Java8時代のフレームワーク Spark Framework - Qiita
  • 新人教育と(Javaと)Python

    グリー社内勉強会「Mini Tech Talk」発表資料 20141031 Python & PyConJP 2014 Report / 亀井 利光 & 中野 和貴 ※「Mini Tech Talk」とは、グリー社内で毎週金曜のランチタイムを利用して開催されている技術勉強会です

    新人教育と(Javaと)Python
  • Javaの7大禁じ手 - Kengo's blog

    Javaの7大禁じ手」というブログタイトルを思いついたので、なんとかして7つダメコードをでっちあげたいless than a minute ago via Twitter for iPhone Favorite Retweet ReplyKengo TODA eller86 などと書き込んだところいくつかネタ提供を頂きましたので、自分のネタと合わせてまとめてみました。Thanks to @flyaway ! Stringインスタンス同士を==で比較 Javaプログラムを始めた人がまず引っかかるのがこれでしょう。厄介なのは System.out.println("abc" == "abc"); // => true System.out.println("a" + "bc" == "abc"); // => true といったコードが期待通りに動作してしまうということです。 System.

    ikd9684
    ikd9684 2015/11/15
  • Google Java Style Guide (非公式和訳)

    Tip: ただ何かのプログラムが非ASCII文字を正しく処理しないという危惧だけでコードを読みにくくしてはならない。もしそのような事が起こる場合はそのプログラムが 壊れている のであってそちらが 修正 されるべきである。 3 ソースファイル構造 ソースファイルの内容は 以下の順序 であること。 1. ライセンスあるいはコピーライトの情報(もしあるならば) 2. package文 3. import文 4. ただ1個のトップレベルクラス。 ソースに書かれている内容それぞれの分離には ただ1行の空行 を使うこと。 3.1 ライセンスあるいはコピーライトの情報(もしあるならば) もしファイルにライセンスあるいはコピーライトの情報があるならばここに入る。 3.2 パッケージ文 パッケージ文は 改行してはならない。 文字数制限(4.4節 文字数制限は100文字 )はパッケージ文には適用されない。 3

  • Strutsを使い続けることの問題点&現在有力なJava EE、Spring、Play Frameworkの基礎知識とアーキテクチャ

    エンタープライズJava開発に従事している方であれば、一度はStruts 1を扱ったことがあるでしょう。Struts 1はJavaのWebアプリケーションフレームワークとして2001年ごろに誕生しました。 MVCモデルに基づいたアーキテクチャと高い生産性から、数年後にはデファクトスタンダードとなるほどの人気を獲得。当時、多くの企業がこぞってStruts 1を使った企業システムを構築しました。筆者自身が業界に入ったのは2004年のこと。最初に参加したプロジェクトがStruts 1を使った企業システムの構築だったことをよく覚えています。 当時に作られたシステムの多くは、今でも現役で稼働しています。最近でもStruts 1ベースの企業システムを改修する話はよく聞きます。しかし、2013年にサポート終了を迎えたため、今後Struts 1を使い続けることは大きなリスクになりました(参考)。つまり、新

    Strutsを使い続けることの問題点&現在有力なJava EE、Spring、Play Frameworkの基礎知識とアーキテクチャ
  • Javaプログラミング超入門講座 - Java 8 対応(1) Javaのキホンを抑えよう

    はじめに みなさん、こんにちは。八重桜雅子(やえざくら・まさこ)です。今回からJava8.0を用いたプログラミング手法について、基的な内容からJava 8.0の新機能まで詳細に解説していきます。 連載の対象は、これからJavaでプログラミングを学ぶ初心者の方です。プログラミングやJavaについての知識がなくても、読み終わったときにプログラミングについての基的なことが理解できているような超入門の連載を目指して、Javaの機能や特徴、Java8.0で追加された新機能について解説し、ソフトウェアのインストール・開発環境構築から動作確認までを実践しながら、プログラミングの基礎を学んでいきます。誰にでもわかりやすい記事を書くように心がけていくので、よろしくおねがいします。 なお、連載におけるサンプルコードはWindowsおよびMacOS Xでの動作を想定しています(※著者の環境はOSにWin

    Javaプログラミング超入門講座 - Java 8 対応(1) Javaのキホンを抑えよう
  • Javaで1行ずつテキストデータを読み込むイディオムの変遷 - argius note

    テキストデータを読み込む場合、言語にかかわらず1行ずつ読み込んで処理します。ここではこのイディオムを"read-lines"と呼ぶことにします。 スクリプト言語なんかだと大抵、最初からforeachで済んでしまっていたりしますが、初期のJavaではちょっと面倒な手順が必要でした。 新しいバージョンではだいぶ簡単簡潔に書けるようになりましたが、今度はたくさんありすぎて、どれがなんなのかが良くわからなくなっています(大袈裟)。 そこで今回は、"read-lines"の変遷についてまとめてみました。 最近Javaを始めた方がバージョンが古い時に書かれたソースコードを読むときに役に立つ...かも知れません。 目次 基 BufferedReader (Java1.1~) Scannerと拡張for文 (Java5~) java.nio.file.Filesとtry-with-resources(J

    Javaで1行ずつテキストデータを読み込むイディオムの変遷 - argius note
    ikd9684
    ikd9684 2015/06/18
  • 遅いッ!遅すぎるッ!Java の正規表現のお話。 - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは、ミドルウェア開発チームの青木です。 先日、アプリケーションサーバーが応答を返さなくなるトラブルに遭遇しました。 今回はその時のトラブルの原因と対策の顛末についてお話しようと思います。 現象 アプリケーションサーバーが突如応答を返さなくなりました。 現象が発生したアプリケーションサーバーのスタックトレースを見ると、あるスレッドの先頭が上記のようになっていました。 "qtp258153142-514386" prio=10 tid=0x00007f40b8dbf000 nid=0x7b4e runnable [0x00007f415ccb0000] java.lang.Thread.State: RUNNABLE at java.util.regex.Pattern$Loop.match(Pattern.java:4692) at java.util.regex.Pattern$G

    遅いッ!遅すぎるッ!Java の正規表現のお話。 - Cybozu Inside Out | サイボウズエンジニアのブログ
  • JavaのString生成方法がボトルネックになっていた話 - WAF Tech Blog | クラウド型 WAFサービス Scutum

    はじめに 先日、私たちが開発しているクラウド型WAFサービス、Scutum(スキュータム)において、予想していなかった箇所の修正によってサーバの負荷が大幅に減るということがありました。原因はこのエントリのタイトルにもあるように、Stringクラスのインスタンスを生成する際の方法にありました。 Stringクラスのコンストラクタとcharset Stringクラスにはいくつかのコンストラクタが用意されています。我々が使っていたのはString(byte[] bytes, String charsetName)です。2つめの引数で、"MS932"や"UTF-8"のような文字集合(以下charset)を明示的に指定するものです。 ScutumのようなWAF(Web Application Firewall)は通常のウェブアプリケーションとは異なり、起動している間にさまざまなcharsetを扱うこ

    JavaのString生成方法がボトルネックになっていた話 - WAF Tech Blog | クラウド型 WAFサービス Scutum
  • SpringのCache Abstractionについて

    ╭━━┳╮╭━╮╭━━━┳━╮╭━╮ ╰┫┣┫┃┃╭╯┃╭━╮┃┃╰╯┃┃ ╱┃┃┃╰╯╯╱┃┃╱┃┃╭╮╭╮┃ ╱┃┃┃╭╮┃╱┃╰━╯┃┃┃┃┃┃ ╭┫┣┫┃┃╰┳┫╭━╮┃┃┃┃┃┃ ╰━━┻╯╰━┻┻╯╱╰┻╯╰╯╰╯ @making's tech note HomeEntriesCategoriesTagsNoteAbout HomeLatest EntriesTanzu Application Platform 1.9 (Full Profile) をEKSにインストールするメモ 🗓 Updated at 2024-04-19T04:20:37Zllama-cpp-pythonを使ってGemmaモデルを使ったOpenAI互換サーバーを起動しSpring AIからアクセスする 🗓 Updated at 2024-02-25T09:05:48ZKubernetesクラスタ内から

    SpringのCache Abstractionについて
  • Java Advent Calendar 2014 - Qiita

    今年も Advent Calendar の季節がやってきました。 Java をネタにしたブログを公開してしまいましょう。 Java といえば、サーバーからクライアント、クラウドに組み込みと、さまざな分野で使われており、そこで使われている技術もたくさん。 Java の Tips でもいいし、ライブラリの使い方でもいい、自作のツールの紹介など、Java に関していれば何でもかまいません。ぜひこの機会に、Java のブログを書いてみましょう!! qiitaのアドベントカレンダーを使用していますが、もちろんqiita以外からの投稿もできます! 普段お使いのブログがあるかたはそちらでご参加ください! Supported by JJUG.

    Java Advent Calendar 2014 - Qiita
    ikd9684
    ikd9684 2015/01/12
  • Javaを使うなら知っておきたい技術、フレームワーク、ライブラリ、ツールまとめ

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

    Javaを使うなら知っておきたい技術、フレームワーク、ライブラリ、ツールまとめ
  • JAWS-UG三都物語で「そろそろJavaみなおしてもええんやで」というプレゼンしました - きしだのHatena

    夏のJAWS-UG 三都物語 2014というイベントで「そろそろJavaみなおしてもええんやで」というプレゼンしてきました。 Javaのイベントではなかったので、Javaを使ってない人を想定したプレゼンでしたが、実際会場のほとんどがJavaメインではなかったようです。 for(int num : nums){ if(num > 10) continue; sum += num * 2; } というコードが、NetBeansの「関数操作を使用」というリファクタリングで sum = nums.stream().filter((num) -> !(num > 10)).map((num) -> num * 2).reduce(sum, Integer::sum); になったところがハイライト。 ここまでできるとは思ってなかった。 そろそろJavaみなおしてもええんやで from なおき きしだ

    JAWS-UG三都物語で「そろそろJavaみなおしてもええんやで」というプレゼンしました - きしだのHatena
  • 見せてやろうJVMが持つ真のチカラを! JVMのオプションを一覧する方法について。 - Qiita

    java -XX:+PrintFlagsFinal -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions 尚、詳細が知りたい方は、この辺りを眺めるとより具体的に分かります。 src/share/vm/runtime/globals.hpp#l481 コマンドの説明 -XX:+PrintFlagsFinal -XXオプションの一覧を標準出力するオプションです。 -XX:+UnlockDiagnosticVMOptions 仮想マシンをチューニングする為のオプションを使えるようにするオプションです。 以下に示すリストでは {diagnostic}となっているものがこのフラグによって変更できるようになります。 -XX:+UnlockExperimentalVMOptions 将来サポート予定であるものの機能性が不安定なオプ

    見せてやろうJVMが持つ真のチカラを! JVMのオプションを一覧する方法について。 - Qiita
  • Ninja 2.0.0 released!

    ikd9684
    ikd9684 2014/05/27
    みんな優しいね…。