タグ

あとで読むと*Javaに関するspodophyllumのブックマーク (29)

  • JDK8(Linux 64bit)のデフォルトヒープサイズ - n-agetsumaの日記

    Oracleの公式ドキュメントには、-Xmxが未指定であった場合のエルゴノミクスによる最大ヒープサイズは『32GBを上限として、物理メモリの4分の1』書かれている。32GBは-XX:-UseCompressedOopsにより圧縮Oopを明示的に無効にした場合の最大デフォルトヒープサイズで、何もオプションを付けずに起動した場合は29GBが上限。 ヒープサイズの決定はarguments.cppのArguments::set_heap_size()で計算されている。デフォルトの最大および初期ヒープサイズは、物理メモリ量により異なる。 デフォルト最大ヒープサイズ(-Xmx) 物理メモリが248MB以下の場合 物理メモリの2分の1。 248MBは-XX:MaxHeapSize(デフォルト124MB) x -XX:MinRAMFraction(デフォルト2)の値。 物理メモリが248MBより大きい場合

    JDK8(Linux 64bit)のデフォルトヒープサイズ - n-agetsumaの日記
  • https://cero-t.hatenadiary.jp/entry/20151212/1449929908

  • ギコ猫とデザインパターン

    /‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾ ワーイ スレッドヘン 1ゲト ズザー! \ ‾‾‾‾‾‾|/‾‾‾‾‾‾‾‾‾‾‾ (   Λ_Λ ⊂ ´⌒つ゜ー゜)つ ‾‾‾‾‾‾‾ .___________ |               ..| | ギコ暗号入門はこちら .| |___________| ∧,,∧ || ⊂ミ.,,゜Д゜彡つ https://www.hyuki.com/cr/cat_index.html 目次 はじめに 登場するたち ギコGoFのパターンたち ギコとマルチスレッドのパターンたち アニメGIF みなさんからのフィードバック ぜひ、感想をお送りください このページにリンクしてくださっている方々 リンク集 更新履歴 はじめに このページでは2ch.netのキャラクタ「ギコ」にナビゲートしてもらい、 デザインパターンをいくつか紹介(?)します。 といっても

  • Java SE 8 lambdaで変わるプログラミングスタイル - きしだのHatena

    JavaOne2013報告会福岡第二段で話したlambdaの資料に加筆して公開しました。 lambdaの詳細な構文は適当に調べてもらうとして、lambdaでどのようにプログラミングスタイルが変わるかということに重点おきました。 追記「用意されたFuncationalInterface」のリンクはここです。 Java8 Lambdaの文法拡張まとめ - きしだのはてな

    Java SE 8 lambdaで変わるプログラミングスタイル - きしだのHatena
  • Java 8のすべて

    カリフォルニア州エルセガンドに拠をおくカスタムアプリケーション開発会社のTechEmpowerが,"Java 8のすべて(Everything about Java 8)" と題するブログ記事を公開している。まもなく来るJava 8において,開発者が直面する変更点を包括的にとりまとめたものだ。ここではその記事の概要を紹介する。詳細な内容についてはTechEmpowerのブログ記事を参照してほしい。 インターフェースの改善 インターフェースでstaticメソッドが定義できるようになった。例えばjava.util.Comparatorには,次のようにstaticなneutralOrderメソッドが追加されている。 public static <T extends Comparable<? super T>> Comparator<T> naturalOrder() { return (Com

    Java 8のすべて
  • マルチコア時代のプログラマは関数脳になろう〜Java8のススメ〜 - Tech-Sketch

    CPUのクロックアップに限界が訪れ、マルチコア化することで処理性能向上を目指す時代になりました。これからのプログラマには、マルチコアで処理性能が向上するプログラム=マルチスレッドで並列処理が可能なプログラムを書く能力が必要になります。今回は「関数型」でプログラムを書くことによって、いとも簡単に並列化ができることを実例を元に解説します。 関数型プログラミングと並列処理 「関数型でプログラムを書くことで簡単に並列化できる」と書きましたが、そもそもここで言う「関数」とは何なのでしょうか? 関数型プログラミングの特徴 関数型プログラミングの「関数」を理解するためには、数学における「関数」を想像するとわかりやすいでしょう。 例えば三角関数を用いた y=cos(x) という式を考えてみます。この式に入力値 x=0 を与えた場合、いつでも必ず結果は y=1 になります。x= π/3 の場合は y =

  • Javaのスレッドとメモリリーク

    Javaにはgarbage collectorが組み込まれていますので、CやC++の場合と違って、自分でメモリを解放する必要はありません。使われなくなったオブジェクトは、そのうち自動的に削除されます。 ところが、プログラマが意識していないところで、オブジェクトが参照されたままとなってしまい、いつまでたってもgarbage collectorでメモリが解放されない、という状況になることがあります。これが、Javaのメモリリークです。 スレッドにおいても、メモリリークが発生しやすいケースがあります。 例として、次のソースコードを見てください。 public class ThreadTest { public static void main ( String[] args ) throws Exception { for (int i = 0 ; i < 100 ; i++) { Thread

  • Javaガベージコレクションのエッセンス

    あるアプリケーションの作業にとって、スループットは最も重要なターゲットです。1つ例を挙げると、長時間実行されるバッチ処理のジョブです。ガベージコレクションが実行されている間、バッチジョブが時々1、2秒止まっても、ジョブ全体がすぐに完了すれば問題ありません。 人間が直接対話するアプリケーションから金融取引システムまで、実質的な他のすべての作業では、システムが1、2秒か、数ミリ秒以上反応しない場合、大変なことになり得ます。金融取引では、しばしば一貫した停止時間と引き換えに、スループットを犠牲にするだけの価値はあります。物理的に利用可能なメモリ量によって制限されるアプリケーションを持ったり、footprintを維持しなければならなかったりすることもあります。そのような場合、停止時間とスループットの面の両方で、パフォーマンスをあきらめなければなりません。 以下のトレードオフは度々起こります。 大部

    Javaガベージコレクションのエッセンス
  • Webアプリの問題点を「見える化」する7つ道具 (1/3) - @IT

    今回の概要 システムが応答しない、パフォーマンスが劣化したなどのトラブルが発生したときに、原因がなかなか掴めず、あたふたすることはないだろうか? 稿では、Java EEトラブルシューティングの現場で役立つ7つ道具を紹介する ある日、突然電話が鳴る 用件は、「システムが不定期に停止する。よく分からないけど、どうやらJava EE部分がおかしい」とのこと。このような事態が発生したとき、やみくもに原因を調べ、いつまでたっても問題が解決できず、原因の一片も発見できないことが多々ある。 トラブルが発生した場合、ツールが充実していない昔は、開発者の経験と勘に頼るところが非常に大きかった。Webシステムが普及するいま、昔とは比べ物にならないほど、システムの数が増え、開発者数が増える一方、システム障害を切り分けられる職人的なエンジニアの人数はシステム数に比例して増えているわけではない。そのため、すべての

    Webアプリの問題点を「見える化」する7つ道具 (1/3) - @IT
  • 「本当の基礎からのWebアプリケーション入門――Webサーバを作ってみよう」始めました - K.Maebashi's はてなブログ

    以前から「誰か書いてくれませんかね」とか言っていた「当の基礎からのWebアプリケーション入門――Webサーバを作ってみよう」ですが、誰も書いてくれないので自分で書きました。 当の基礎からのWebアプリケーション入門――Webサーバを作ってみよう http://kmaebashi.com/programmer/webserver/index.html 現状、合計で140行くらいのJavaプログラムで、普通に画像やCSSを含むWebページが表示できています。こちらのページの下のほうにも画像を貼っていますが、こんな感じで、ローカルのファイルシステムに置いてある私のWebサイトのトップページが表示できていますし、もちろんリンクをクリックして遷移することもできます。 「えっ? Webサーバってこんなに簡単に書けるの?」と思う人も多いのではないでしょうか。 もちろんこんなのは「わかっている人」から

    「本当の基礎からのWebアプリケーション入門――Webサーバを作ってみよう」始めました - K.Maebashi's はてなブログ
  • Java EE 7で並列処理がケタ違いに速くなる! 使いこなしのポイントは?──Java Day Tokyo 2013レポート - builder by ZDNet Japan

    このように、Javaにおける非同期処理の仕組みは着々と進化を続けているが、残念ながら開発の現場では、まだこれらの機能が十分に活用されていないと寺田氏は嘆く。氏はサンプル・コードを示しながら、「スレッド処理に関して、いまだにJavaの登場当初からのnew Thread(r).start(); などと書いているプログラムを多く見かけるが、もうこのような実装はやめたほうがよい」とアドバイスした。スレッドを無限に生成するこのコードでは、スレッドを生成する度にスタック領域が確保されてメモリを消費するほか、コンテキスト・スイッチも発生するため、パフォーマンスは決して良くならない。スレッド生成は処理コストが高く、こうした方法ではマルチコア・プロセッサ環境でその性能を十分に発揮できないのだという。 そこで現在、スレッドを直接生成する方法に代わって推奨されているのが、Java SE 5 から導入されたCon

  • Java 8は関数型なのか

    ITproの読者には既にご存じの方も多いと思うが、2014年3月に「Java SE」の次期版「Java SE 8」(以下、Java 8)がリリース予定である。国内のエンタープライズ分野では「レガシーJava」が多いとされ、現行版の「Java SE 7」に移行しているユーザーすら少数派と聞く。Java 8といっても遠い話のように感じる方も多いかもしれない。 しかし、Java 8はJavaにとって一つの大きなマイルストーンとなる。関数型プログラミングに由来する「ラムダ(lambda)式」なる構文が導入されるのだ。 Javaをよく知る技術者の方の中には、「いや、Java 8のラムダ式は関数型プログラミングのために導入されたのではない」と主張される方がいるだろう。この点については後ほど触れたいと思うが、「ラムダ式が何のために導入されたか」はさておき、ラムダ式という記法そのものが「関数型に由来する」

    Java 8は関数型なのか
  • Javaの内部動作を可視化する「ENdoSnipe」、Acroquest TechnologyがOSSとして公開

    Acroquest Technologyは2013年7月11日、Javaシステムの内部動作を可視化・診断するソフトウエア「ENdoSnipe Ver.5.0」をオープンソースとして公開したと発表した。Ver.4まではプロプライエタリな製品だった。ダウンロード・サイトおよびGitHubのページからダウンロードできる。 新版の診断機能には、同社が提供するJavaシステムのトラブルシューティング・サービス「JaTS」での障害解析のノウハウを組み込んだという。アプリケーションの性能を監視する機能も追加した。従来版はEclipseプラグインとしてユーザーインタフェース(UI)を実現していたが、新版はWebベースのUIに変更されている。 診断機能では、メモリリークやハングアップリスク、非効率なデータベース・アクセスなどを検出する。プロファイラやデバッガとは異なり、問題が発生する具体的な理由まで指摘でき

    Javaの内部動作を可視化する「ENdoSnipe」、Acroquest TechnologyがOSSとして公開
  • Javaはどのように動くのか~図解でわかるJVMの仕組み 記事一覧 | gihyo.jp

    運営元のロゴ Copyright © 2007-2024 All Rights Reserved by Gijutsu-Hyoron Co., Ltd. ページ内容の全部あるいは一部を無断で利用することを禁止します⁠。個別にライセンスが設定されている記事等はそのライセンスに従います。

    Javaはどのように動くのか~図解でわかるJVMの仕組み 記事一覧 | gihyo.jp
  • Java技術最前線 櫻庭祐一 連載目次 :ITpro

    今日のソフトウエア開発において,Javaは最も重要なプログラミング言語あるいは開発環境といってもいいでしょう。そこで,ITproではJavaの最新技術についての連載を掲載しています。著者はJavaプログラマ向け情報ページ「Java in the Box」で有名な櫻庭祐一氏です。

    Java技術最前線 櫻庭祐一 連載目次 :ITpro
  • Javaメモ目次(Hishidama's Java Memo)

    Javaの基礎(というか入門的な内容)から ちょっとした応用までをメモしています。 単純にJavaと言っても、場合によってソースを書く際の文法・ライブラリ(クラス)の使用方法・GC(ガベージコレクション)等のJavaVMの機構/動作など様々な事柄を含みます。 コンパイル・実行関連 [/2024-03-22] 文法関連 [/2024-03-23] ライブラリー関連 [/2024-03-11] サードパーティー関連 [/2022-11-11] 定石 [/2021-03-21] 新機能 [/2024-03-23] キーワード(抜粋)一覧 参考書

  • パフォーマンスを意識した Java コーディング #渋谷java

    渋谷Java #shibuyajava での発表資料です http://atnd.org/events/40140

    パフォーマンスを意識した Java コーディング #渋谷java
  • Java セキュアコーディングセミナー資料

    これまでにJavaセキュアコーディングセミナーで使用した講義資料を公開しています。 Javaアプリケーションの脆弱性事例の解説資料については解説資料のページをご参照ください。 オブジェクトの生成とセキュリティ 数値データの取扱いと入力値検査 入出力(File,Stream)と例外時の動作 メソッドとセキュリティ オブジェクトの生成とセキュリティ クラスの設計とオブジェクトの取扱いをセキュアに行うためのポイントについて、オブジェクトの生成におけるセキュリティをテーマに解説します。 基礎概念のおさらい(クラス、シリアライズ、GC) クラスとセキュリティ上の脅威 オブジェクトを生成する3つの方法(new, clone(), deserialize) 上記トピックスに関するクイズと演習 公開日 タイトル PDF PGP 署名

    Java セキュアコーディングセミナー資料
  • 私が愛するオブジェクト指向とそれを使わない理由 - takuto_hの日記

    この記事では、私がオブジェクト指向のどこを愛しどこを素晴らしいと感じていて、そのうえでなぜオブジェクト指向を使うことを避けているのかを書き留めておきます。関数型言語使いの方で、「オブジェクト指向の何がいいのかわからない」「オブジェクト指向難しすぎ・複雑すぎ」とおっしゃる方にぜひ読んでいただきたいと思っています。また、「オブジェクト指向言語完璧に理解したわ」と思っている方にも読んでいただきたく思います。 なお、ここでのオブジェクト指向の定義は、「各言語でオブジェクト指向と呼ばれているものすべて」とします。JavaScalaJavaScriptやSmalltalkやRubyやCommon LispやOCamlがオブジェクト指向と呼んでいるものすべての総称です。もっとまともな定義が知りたい方は以下の記事がおすすめです。 オブジェクト指向の概念の発明者は誰ですか?(改訂版) - Smallta

    私が愛するオブジェクト指向とそれを使わない理由 - takuto_hの日記
  • HashMapでOutOfMemoryErrorが発生するケース - wadahiroの日記

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

    HashMapでOutOfMemoryErrorが発生するケース - wadahiroの日記