CloudNative Days Tokyo 2019 1D3 セッションのスライドです。 #CNDT2019 #OSDT2019 #RoomD
The Next Generation The ENhanced Scala Interaction Mode for text Editors is an LSP tooling project that started in 2010 and brought together hundreds of Free Software contributors from diverse backgrounds. At its peak, 10% of Scala developers were using ENSIME to write Scala. ENSIME pioneered community-oriented development in the Scala community and was the first to introduce a truly inclusive cod
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
go-ethereumOfficial Go implementation of the Ethereum protocol Geth (go-ethereum) is a Go implementation of Ethereum - a gateway into the decentralized web. Geth has been a core part of Ethereum since the very beginning. Geth was one of the original Ethereum implementations making it the most battle-hardened and tested client. Geth is an Ethereum execution client meaning it handles transactions, d
Click the button to start the demo. The demo will immediately preload a 40MB file containing the Java Class Library. Start the Demo OS Resources Contains support for a variety of UNIX-like operating system resources, including: Thread Pool: Emulates multiple concurrent threads, letting DoppioJVM support multithreaded JVM programs. File System: Maps files and directories to browser storage, cloud s
環境としてはこんな感じ OS:Windows2003Server Java:JDK5 Tomcatとかexeとかから、不定期にjavaコマンドでjarを実行するアプリケーション 事象としては 実行タイミングは不定期、実行時間は数秒〜数時間(処理データ数に依存) 問題なく動くのだが、時々理由がなくプロセスが吹っ飛ぶ(cmd.exe & java両方) という感じ。理由なく吹っ飛び、Windowsとかのイベントにも残らないため、当初は Javaが理由なく吹っ飛んだという理由で片付けられた問題。 自己防衛で言っておくと作ったのは、別チームだったのですがいろいろあってオイラが調査→対応することになった訳。 備忘録なので結果から言うと Javaの仕様の一部 だったのですが、調査の経緯と仕様とまとめていきます。 調査1 とりあえず、try{}catch{}finally{}を仕込でみる。 逆に言うと例
End to End Visualization GoCD’s value stream map shows your entire path to production in a single view. Easily navigate across jobs, spot inefficiencies, and optimize your process. No plugin required, out of box CD. Cloud Native Deployments GoCD streamlines your CD workflow on popular cloud environments such as Kubernetes, Docker, AWS and more. Complex Workflow Modeling GoCD excels at modeling com
はじめに Android プログラマのみなさん、こんにちは。 今日も元気に Out Of Memory してますか? ということで、この記事では日々 OOM に悩まされる Memory 的な意味で富豪的な Android プログラマの為に、Eclipse Memory Analyzer Tool、通称 MAT の基本的な使い方を紹介します。 尚、この記事は [twitter:@youten] さんが企画された裏 Android Advent Calendar 12/20 の記事ですが、内容的には比較的オモテなものになっています。 対象読者 Andoid アプリ作ってる/はじめたけど、まだ MAT を使ったことがない方 MAT を使ってみようした事はあるものの、画面から難しそうな雰囲気を察知し、起動10秒後にはそっとタブを閉じてしまった経験がある方 DDMS の基本的な使い方を理解している方
Javaオブジェクトのメモリ使用量を計測してみました。 計測を行ったJDKはWindowsの1.4.2_04です。 基本的に、Javaではプリミティブ型以外の全オブジェクトを生成するときに new演算子を使用します。 つまり、メモリ確保が行われるタイミングはnew演算子が実行される時に限られます。 全てのオブジェクト フイールド数0 フィールドが一つも無いオブジェクトを生成すると、8byteのメモリを消費します。 Object obj = new Object(); フイールド数1以上 フィールドが一つ以上あるオブジェクトを生成すると、8+α byteのメモリを消費します。 α の値は、このクラスが保持するフィールドに依存します。 フィールドの型により、消費するbyte数が異なります。 byte / boolean 1byteを消費します。 short 2byteを消費します。 int /
追記: 指摘の通りで、現実的な連結回数での計測でもないですし、統計手法を用いた分析をしていないので、このエントリの計測値は当てにしないでください。なので以下のブログを参考にしてください。 currentTimeMillis()で計測しておいて plusTime:14780, concatTime:7053, sbuilderTime:7, sbufferTime:13 とか、その7とか13の有効数字はいくつだっての。 激しく今更感があるタイトルですが(;・∀・) 昔に取り上げたのですが、 文字列の結合をやるからといって、すぐにStringの+をつかってはいけない - じゅんいち☆かとうの技術日誌 Stringの+演算子は間違った使い方するとパフォーマンスが低下しますよっていう話題。若干ネタ成分ありますが、ご容赦ください。 これ系の話題は自分的にはオワコンなんですが、最近、また話題を見つけた
Throwable、Exception、RuntimeException(RTE)、Errorあたりを整理しながら、色々考えてみた。私見に基づくので、間違っているかもしれないけれど、自分としては頭が整理できたかな、と感じたので晒してみる。異論があったらコメントください。 まず、一番基礎的なところで、継承関係の整理から。こんなツリーになっています。 Throwable Error Exception RuntimeException そして、本稿での用語の定義。caller=呼出す側のコード callee=呼出される側(throwする側)のコードとします。 Throwable Throwableは「throw文に指定できる何か」という意味ですね。 Instances of two subclasses, Error and Exception, are conventionally used
Java の研修で DB(だいたいMDBかな) にアクセスするプログラムを作ることになったとき、講師はほぼ 100% 「JDBC Driver を使用するためには Class.forName を使用します」と言うはず。ただ、呪文のごとく。 で、Class.forName の API を見てみる。 forName(String name, boolean initialize, ClassLoader loader) 指定されたクラスローダを使って、指定された文字列名を持つクラスまたはインタフェースに関連付けられた Class オブジェクトを返します そして疑問が生まれる。「クラスをロードするだけでなんでDBにアクセスできるようになるの?」と。 講師はなぜできるかは説明しない。分かってないってことは無いと思うけど「まだ初心者だから覚えとけばいい」的な感じだろう。 けど、ここは言わせてもらう!
あなたに送る独り言byはむばね (一応)作家・はむばねが誰にも教えることなくひっそり始めたブログ。今はもう普通のブログ。ブログっていうか日記。 どうも、はむばねです。 本日、研修はJDBCの分野に入りました。 やったことがある方はわかると思いますが、JDBCの初っ端の初っ端で出てくるのが『Class.forName("JDBCドライバの完全修飾名")』という構文なわけです。 もうね、いきなり何を言っとるんだと。 しかも大抵の場合(というか、たぶん「絶対」と言い切っていいと思いますが)、そこの説明はなしで「こういうものなのでこう書いてください」という扱いなわけです。 たぶん形式的にClassクラスのstaticメソッドなのだろうというところまでは推測できても、そこまでなわけですよ。 そこでちょっと調べてみると、ClassクラスのforNameメソッドは「引数で指定されたオブジェクトを返す」と
リリース物件にJavaしか使えないプロジェクトでも、開発環境としてScalaを使うことで、Javaだけ使うよりも開発効率を上げることができると思います。 開発環境でもScala使っちゃダメとかいうプロジェクトの場合は、あきらめるか、「僕が作ったんです!」とか言って押し切ってみるのはどうでしょう?(責任は持てません) 念のため、手元の環境は以下の通りです。※開発環境とは別です。 Eclipse 3.8.2 *1 Scala-IDE 2.0.2 別のプロジェクトを作って参照 Eclipse上で、メインプロジェクトが"TheApp"という名前のJavaプロジェクトだとしたら、"TheApp+"という名前のScalaプロジェクトを作り、"TheApp+"ビルドパスのプロジェクト参照に"TheApp"を追加します。 "TheApp+"にScalaTestなりSpecs2なりを使って、好きなだけテスト
コードで学ぶドメイン駆動設計入門 〜エンティティとバリューオブジェクト編〜 - じゅんいち☆かとうの技術日誌 コードで学ぶドメイン駆動設計入門 〜振る舞いとサービス編〜 - じゅんいち☆かとうの技術日誌 コードで学ぶドメイン駆動設計入門 〜ファクトリ編〜 - じゅんいち☆かとうの技術日誌 引き続き連投エントリ。私も来年で39歳になります。そして息子が7歳。いいおやじですが、脳は衰えないと言われています。鍛えれば鍛えたほど進化できると信じます。 ということで、リポジトリ編に入ります。 リポジトリ リポジトリは、ライフサイクルの途中から最後にフォーカスし、オブジェクトの永続化と永続化されたそのオブジェクトを検索する手段を提供するオブジェクトです。このように説明すると、DAOに近い印象を持つかもしれませんが、DAOはRDBMSやSQLなどのインフラストラクチャ層の関心事を含んでいるので、ここでは
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く