タグ

関連タグで絞り込む (513)

タグの絞り込みを解除

Javaに関するclavierのブックマーク (1,068)

  • 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の日記
  • IOと例外の取り扱いについて:どっちが良いスタイル? - kmizuの日記

    追記:Java 7以降(つまり、現在)はtry-with-resources構文があるので、それを使えばよいです。ここでは、Java 6かそれ以前のコーディングスタイルについて主に言っています。 kmizu.hatenablog.com におけるkrxrossさんのコメント java脳だと、「fw = new PrintWriter(new File(file))」で例外が発生したら、fwが不定のまま、finally句の「fw != null」で困ってしまう。 そうならないために、nullで初期化するという話に見えます。 多分JAVAだと、nullを代入しないとコンパイルエラーになるか、eclipsが警告を出したと思います。 scalaでも同じではないですか ? 良く解っていない超初心者より を見て、強烈に不安になってしまったのですが、Javaだとこういうのが良いスタイルなんでしたっけ?

    IOと例外の取り扱いについて:どっちが良いスタイル? - kmizuの日記
  • mysql Connector/J の設定で効きそうなやつ - その手の平は尻もつかめるさ

    mysql Connector/J を使う時に色々効きそう (あるいは効かなそう) な設定項目を調べたのでまとめておくこととします.なお,対象としている mysql のバージョンは5.6 (以降),Connector/J のバージョンは5.1.34 (以降) です. Connector/J は設定できる項目が多くて迷ってしまうんですが,道標となる資料も幾つかあるのでそれについてもまとめておきます. 何か追記すべき事項があったら適宜追加してゆきたいと思っています.「これも入れたほうが良いのでは無いか」というようなご指摘ありましたらご一報ください. 設定項目 characterEncoding おなじみの文字コード.要設定. ちなみに以下の様なテクがある. Driver doesn't support utf8mb4 for servers 5.5.2 and newer. The drive

    mysql Connector/J の設定で効きそうなやつ - その手の平は尻もつかめるさ
  • 複数行からなるログを解析するために、EmbulkのparserプラグインをRubyで開発する話(準備編) - 無印吉澤

    最近、仕事の関係で、1個のログが1行〜複数行からなる特殊なログを解析する必要があり、Rubyでパーサを書く機会がありました。 しかし、そういえばこのパース処理ってEmbulkを使えばより簡単に作れて、かつ機能追加(パース結果をデータベースに入れるとか)が可能になるんじゃないか、と思い、parserプラグインをRubyで開発する方法を調べてみました。 ちなみに、Fluentdのin_tailプラグインのmultilineで頑張って分析することも考えたのですが、先日のTreasure Data Tech Talkの懇親会で古橋さんに相談したところ、「パーサの処理が複雑なら、Embulkのparserプラグインを自分で書いたほうが楽ですよ」とアドバイスを頂いたので、今回はEmbulkで行くことにしました。 Embulkのインストール 動作環境 MacBook Pro (Retina, 15-in

    複数行からなるログを解析するために、EmbulkのparserプラグインをRubyで開発する話(準備編) - 無印吉澤
  • RxJavaのミニマム実装でScheduler周りを書いてみるゾ! - Islands in the byte stream

    RxJava Advent Calendar 2015 の23日分です。 はい、さっそくですがRxInTheBoxにSchedulerを実装しました。 observeOn() と subscribeOn() が家RxJava同様の振る舞いをします。 add subscribeOn() and observeOn() to RxInTheBox by gfx · Pull Request #2 · gfx/RxInTheBox · GitHub これは何 半年ほど前に社内勉強会のネタとしてRxJavaのミニマムな実装をしてみました。それがRxInTheBoxで、主な実装が約20行です。 RxJava的なものを最小限に実装してコンポーネントの関係を理解する - Qiita そして時は流れ、subscribeOn()とobserveOn()の挙動にハマったりしながらなんとかRxJavaをそれな

    RxJavaのミニマム実装でScheduler周りを書いてみるゾ! - Islands in the byte stream
  • Java開発の性能改善! その3 ヒープダンプを取ろう - Qiita

    第3回になります。 記事を書くこと自体に時間がかかってしまうので 見やすい記事にするってのが難しいですね。。 少しずつ改良していきます。 ストックやフォローをして頂けると励みになります。 さて、題です。 jstatやGCログなどを見てメモリがなかなか開放されない場合は ヒープダンプを取ってメモリの中身を解析することになります。 ヒープダンプの取得 まず、jstatやpsコマンド等で対象のJVMのプロセスIDを取得しましょう。 これで指定した場所にダンプファイルができます。 -dump:live,format=...というようにliveをつけるとGCが起きて コマンド実行時に活きているオブジェクトのみのダンプになるようです。 とりあえず今回はフルで取ります。 ヒープダンプの中身を解析をする 解析をするにはツールを使います。 java標準のjhatやMemory Analyzer、HeapA

    Java開発の性能改善! その3 ヒープダンプを取ろう - Qiita
  • Springを利用したアプリケーションに対する�テスト/セキュリティ対策の最新動向(2015)

    Javaエンジニアに知ってほしい、Springの教科書「TERASOLUNA」 #jjug_ccc #ccc_f3日Javaユーザーグループ

    Springを利用したアプリケーションに対する�テスト/セキュリティ対策の最新動向(2015)
    clavier
    clavier 2015/12/20
  • Androidソースコードレビューで指摘する事が多い項目まとめ2 - こやまカニ大好き

    去年Androidソースコードレビューで指摘する事が多い項目まとめという記事を書いた時はアプリ全体を一度に見るような機会が多かったため、内容も大きめのものばかり書いていましたが、最近はプルリクエスト単位でレビューする機会が増えたので細かい項目についてまとめてみようと思います。 ミリ秒で時間を指定する時に自前で計算している 1000L * 60L * 60L * 24Lのようなコード。 TimeUnitを使いましょう。 24時間の場合は以下のように書けます。 TimeUnit.DAYS.toMillis(1L) ある文字列がhttp/httpsで始まるかチェック URLUtil.isNetworkUrl()を使いましょう。 ただしequalsIgnoreCaseで判定してます。 ベースURLにパラメータを付与していってURLを生成したい StringBuilder#append("&key=

    Androidソースコードレビューで指摘する事が多い項目まとめ2 - こやまカニ大好き
  • Embulkを活用したログ管理システム

    Embulk Meetup Tokyo #2 LT 自社プロダクトのログを分析するためにEmbulkを活用したログ管理システムを開発しているので、その事例と開発したプラグインの紹介をしたいと思います。

    Embulkを活用したログ管理システム
  • https://cero-t.hatenadiary.jp/entry/20151212/1449929908

    clavier
    clavier 2015/12/15
  • Java で引数の null チェックで迷った話 - yukungのブログ

    これは Java Advent Calendar 2015 の 15 日目の記事です。 昨日は @opengl_8080 さんの Byteman 使い方メモ+α でした。明日は @irof さんです。 前置き ついこないだチームでちょっとだけ話題に上って、みんなある程度指針は持っているものの、割と悩みつつ明確に答えを出せなかったので、もっと良い意見があればと思って晒してみます。まぁよくある話だし、Java 8 で Optional が使えるようになって null について語られるケースが増えたと思うので、再考するちょうどよい機会になればいいなーと思います。初心者向けです。 どう処す?処す? こんな状況の時にあなたならどうしますか? // Generics なのは例です。String でもなんでもいいです public T doSomething(T input) { // input が

    Java で引数の null チェックで迷った話 - yukungのブログ
    clavier
    clavier 2015/12/15
  • Kotlinでjarを作って逆コンパイルしてみて、どんなjavaになるのか見てみた - アナログ金木犀

    こんにちは、@kgmyshinです。 この記事はKotlin Advent Calendar 2015の15日目の記事です。 早速。 KotlinにはExtensionという機能があります。 fun String.foo() { println("foooooooooooooooooooo") } こう定義すると、来Stringクラスにないfoo()という関数を追加することができます。 "kgmyshin ".foo() // foooooooooooooooooooo これは来のJavaにはない機能ですが、jvmで動いている以上はjvmのオペコードに落ちているはずです。 落ちているはずなのですが、それがどのようになっているのか、Javaにはない機能をコンパイラがどう解釈しているのかということがが少し気になっていました。 そして、先日会社のブログで [Java]〈Hello World

    Kotlinでjarを作って逆コンパイルしてみて、どんなjavaになるのか見てみた - アナログ金木犀
  • サーバサイドで複数Web APIを呼び出すときのデザインパターン - Qiita

    最近はエンタープライズのシステムでも、Web APIによるシステム間連携が増えてきました。そうしたときに、1リクエストで複数の連携先APIを実行し、結果をクライアントに返すということがままあります。 どう作りましょうか、という問題です。 前提として、サーバサイドでHTMLレンダリングせずに、Web APIの中継することとします。中継する意義は、流量やキャッシュをサーバサイドでコントロールできるところにあります。 クライアントから直接連携先のAPIにアクセスする設計にすると、リロードボタン連打などのDDoS攻撃うけたときに、自分たちでは対処できず、連携先に迷惑をかけてしまいますよね。特に「課金の関係などで直接APIをアクセスしなきゃいけないんだ」、とかでなければ、中継するように設計しておいた方がベターです。 Web APIの呼び出し 業務システムで使う場合は、ちゃんとリクエスト、レスポンスが

    サーバサイドで複数Web APIを呼び出すときのデザインパターン - Qiita
  • Java 8 Cheat Sheet and Best Practices | JRebel

    In this post we’ll look at the hot topics of the Java 8 language: default methods, lambdas and streams, and using Optional to represent absent values. In addition, we'll talk about the Java 8 best practices that we've found so far. If you're just here for our Java 8 cheat sheet, you can click the button at the bottom of the page to download a printable PDF version. Back to top Best Practices in Ja

    Java 8 Cheat Sheet and Best Practices | JRebel
  • JavaVMのメモリチューニング

    システムの処理性能を高めるには,基盤となるJavaVM自体のチューニングを適切に実施する必要があります。日立のJavaVMでは,2種類のメモリ空間を管理しています。 この章では,ガーベージコレクションと日立のJavaVMでのメモリ管理,およびJavaヒープとExplicitヒープのチューニングについて説明します。 <この章の構成> 7.1 ガーベージコレクションとJavaVMのメモリ管理の概要 7.2 フルガーベージコレクション発生を抑止するためのチューニングの概要 7.3 Javaヒープのチューニング 7.4 Javaヒープ内のTenured領域のメモリサイズの見積もり 7.5 Javaヒープ内のNew領域のメモリサイズの見積もり 7.6 Javaヒープ内に一定期間存在するオブジェクトの扱いの検討 7.7 Javaヒープの最大サイズ/初期サイズの決定 7.8 Javaヒープ内のPerma

  • 業務システムにおけるロールベースアクセス制御 - Qiita

    RBACの基礎 業務システムの権限制御の基形はロールベースアクセスコントロール(RBAC)です。簡単化すると、以下のようなモデルです。 Subject(システムユーザ)は、複数のRole(ロール)を持っている。 Role(ロール)は、Permission(権限)のセットからなる。 Permission(権限)は、オペレーション(許可される操作)のセットからなる 具体的に、Redmineでの例をみてみましょう。 ユーザにはデフォルトで「管理者」「開発者」「報告者」のロールが割当可能である。 「報告者」ロールは、「Add Issues」の権限をもつ。 「Add Issues」の権限をもつユーザは、「Issueの新規作成」ができる。 このモデルをRedmineでは、以下のように表現しています。 Redmineは1人のユーザを、複数のプロジェクトに異なるロールでアサインすることができるので、上記

    業務システムにおけるロールベースアクセス制御 - Qiita
  • メールのトランザクション設計 - Qiita

    3日目で息切れしてきたので、今日は軽めな内容です。 データベース更新とメール送信の一貫性 商品購入の完了ページなど、よくデータベースを更新して、メールを送信してデータベースをコミットするという仕様があります。 データベース登録出来てないのに、完了メールを送るわけにはいかないので、これらを1トランザクションにできなきゃいけません。が、SMTPプロトコルにコミット/ロールバックの概念はありません。 さて、どう設計しましょうか、というお話です。 方式 A.DBトランザクション後にメールを送る 同一トランザクションはあきらめ、データベースを先にコミットし、その後でメールを送る、という設計です。 メール送信でエラーになったら、データベースには書き込めているので、メールだけ再送するように仕組みを作ったりします。 以下のようなイメージです。 public class OrderController {

    メールのトランザクション設計 - Qiita
    clavier
    clavier 2015/12/03
  • JJUG CCC 2015 Fall で発表してきた&参加してきた #jjug_ccc - yukungのブログ

    夏の JSUG の発表に引き続き、JJUG CCC でも発表させていただきました。JJUG は普段もよく参加させてもらっていましたが、登壇は初だったので緊張しまくりでした。が、滞り無く終わってホッとしています。 資料はこちらです。 jOOQ と Flyway で立ち向かう、自社サービスの保守運用 #jjug_ccc #ccc_ab1 from Yusuke Ikeda www.slideshare.net 心境など 裏番組がどれも有名な方のセッションだったし、発表していなかったら自分も他の方のセッションを見に行きたかったくらいなので、正直見に来てくださる方は居るのかな…と不安になったりもしたのですが、逆に考えると、それでも私のセッションを見に来てくれるということは、何かしらタイトル通り運用保守で課題を抱えてらっしゃる方が多いのでは、と自分の中で勝手に思って、何か1つでも現場に持ち帰ってもら

    JJUG CCC 2015 Fall で発表してきた&参加してきた #jjug_ccc - yukungのブログ
  • Java トラブルシューティングガイド - Cybozu Inside Out | サイボウズエンジニアのブログ

    こんにちは。ミドルウェア開発チームの青木(@a_o_k_i_n_g)です。将来の夢は藤岡弘の弟子になることです。 Cybozu では多くの Java アプリケーションが稼働しており、トラブルも発生します。僕はトラブル対応をすることが多く、今まで大小様々なトラブルを見てきました。その中で得られた知見を社内ドキュメントとして記していましたが、そちらを手直ししたものを記事で公開します。Cybozu ではインフラ基盤に Ubuntu を用いているので各種ツールの紹介もすべて Ubuntu を前提にしていることをご承知ください。 すぐやること 各種データはトラブルが発生している状態で運用チームに取得してもらいましょう。鮮度が重要なデータも多いので、常日頃運用チームと手を取り合ってトラブル対応できる組織づくりをしておくべし。 モニタリングツールで該当環境のデータを確認 トラブルの原因は多種多様です。

    Java トラブルシューティングガイド - Cybozu Inside Out | サイボウズエンジニアのブログ
    clavier
    clavier 2015/12/01
  • G1 GC おさらいと #jjug_ccc で発表した話 - unnamed

    この記事は Java Advent Calendar 2015 の一日目の記事です。二年連続でトップバッターだ! 先日の JJUG CCC 2015 Fall で G1 GC について話してきました。 去年の CMS GC と同じく結構遅めの時間帯&裏番組に伝説の灰色ページ管理人・ひしだま伝道師が発表するなどの豪華な時間帯にも関わらず、165人規模の部屋がいっぱいに埋まるぐらいの盛況でした。聴講頂いた皆様ありがとうございました! スライドは以下に公開しました。G1 GC の挙動から GC ログの読み方、どういうケースが厄介なのかを紹介しているので是非ご覧ください! Garbage First Garbage Collection (G1 GC) #jjug_ccc #ccc_cd6 from Yuji Kubota アフターフォロー、またはちょっとした補足 極力、後から参照可能なように資料

    G1 GC おさらいと #jjug_ccc で発表した話 - unnamed