IPv4RadixIntTree tr = new IPv4RadixIntTree(); tr.put(0x0a000000, 0xffffff00, 42); tr.put(0x0a000000, 0xff000000, 69); tr.put("10.0.3.0/24", 123); int v1 = tr.selectValue(0x0a202020); // => 69, as 10.32.32.32 belongs to 10.0.0.0/8 int v2 = tr.selectValue(0x0a000020); // => 42, as 10.0.0.32 belongs to 10.0.0.0/24 int v3 = tr.selectValue("10.0.3.5"); // => 123, as 10.0.3.5 belongs to 10.0.3.0/24 Memo
Quasar - Fiber, Channel, Actor Quasarは軽量スレッド、GoライクなChannl、ErlangライクなActorや、非同期プログラミングツールを提供するJavaのライブラリです。 今回は、Fiber、Channel、Actorを試してみました。 Bytecode Instrumentation このライブラリを使うには、Instrumentationを使ってバイトコードの書き換えを行う必要があります。この書き換えは、JVMの起動オプションにQuasarが提供するJava Agentを指定して実行時に書き換えを行うか、もしくはAntタスクを使って事前に書き換えを実行してく必要があります。今回はJava Agentを使って試してみました。どちらの使い方も以下のページに記載されています。 GETTING STARTED - Instrumenting Your
そういえば java-mysql-namelocker が出ていました.Maven Central にもリリースされています. http://search.maven.org/#artifactdetails%7Cnet.moznion%7Cmysql-namelocker%7C1.0.0%7Cjar Perlには Mysql::NameLocker というモジュールが古くからあり,このJavaのパッケージはその移植版になります. 何をするパッケージかと言うと,MySQL の GET_LOCK() を用いてコネクションと紐付いた名前付きロックを取得し,try-with-resources のスコープを抜けた時に自動的に RELEASE_LOCK() を発行してロックを解除するというシンプルなパッケージとなっています.或るコネクションがロックを取得している間は,他のコネクションは同じ名前でそ
memory mapped file が消せないの続き。 なんか、Java APIドキュメントのFileChannel#map の項目を良く見ると、 バッファとこのバッファが示すマッピングは、バッファ自体がガベージコレクトされるまで有効です。 とか書いてやがる。で、試しに File#delete を call する前に明示的に GC するようにしてみた。 File = new File("foo.txt"); FileInputStream in = new FileInputStream(file); FileChannel channel = in.getChannel(); MappedByteBuffer buffer = channel.map(FileChannel.MapMode.READ_ONLY, 0, file.length()); channel.close(); b
java-mysql-diff が出ました.Maven Central にもリリースしています. http://search.maven.org/#artifactdetails|net.moznion|mysql-diff|1.0.0| 本パッケージは id:onishi さん作の mysqldiff の Java 8 移植版です. 最近 Java の環境で作業することが多いので,なんだかんだで Java 版があると便利だよね〜ということで作成しました. 本家の Perl 版 mysqldiff と同じような感覚で利用したかったので,全部の依存パッケージを1つにまとめた fat-jar も用意してあります. java -jar というコマンドを余分にタイプする必要はありますが,Perl 版と同じような感覚で利用することが出来ます. https://github.com/moznion/j
In the fast-paced digital landscape of today, website performance is paramount. Users expect lightning-fast loading times, and search engines prioritize speed when ranking websites. One key aspect of optimizing website performance is compression. In this article, we will delve into the world of general compression techniques and how they can enhance your website’s speed and overall user experience
作成日: 2013-03-30 23:15:00 / last updated at: 2013-03-30 23:18:14 カテゴリ: Groovy Java Twitterで見かけたのですが、JVMのモニタリング・・・というかJMX + 便利コマンド各種をSSHとかTelnet経由で使えるようにlistenしてくれる面白いツールがありました。 CRaSH the shell for the Java Platform http://www.crashub.org/ ソースコードはGitHubで、リリースファイルのダウンロードはGoogleCode使ってるようです。 https://github.com/crashub https://code.google.com/p/crsh/ 公式の"Demo"からWeb上で試せるんですが、スレッドの一覧とか、スレッドにinterrupt
通常、なんの考えも無しにプログラムがファイルに書きこみを行った後、運悪くシステムがクラッシュするとファイルが失われる可能性がある。通常のファイル書き込みはファイルに書き込んでいるように見えて実はバッファがメモリ上に蓄えているだけだからだ。このメモリ上に蓄えられた、いずれストレージに書き込むデータのことをダーティページと言う。何もしなくてもダーティページに書きこまれたデータはカーネルが定期的にストレージに書き込むのだが、若干のタイムラグがある。この間にクラッシュするとデータが失われるわけだ。データが書き込んだ直後、すぐストレージに書き出したい場合は fsync システムコールを呼ぶ必要がある。 C や C++ といった低レイヤーを扱う言語なら fsync を呼ぶだけで良いが、Java のような高級言語でどうやって fsync を発動させればよいか。 通常のファイル書き込み 下記のような一般的
Krystal Mok rednaxelafx at gmail.com Mon Jan 16 22:36:20 PST 2012 Previous message: SIMD auto-vectorization in hotspot Next message: SIMD auto-vectorization in hotspot Messages sorted by: [ date ] [ thread ] [ subject ] [ author ] Hi, Apparently, the source code to read is opto/superword.[hpp|cpp] [1][2]. The flag to trace it is -XX:+TraceSuperWord. There's a paper mentioned in [1], which is the o
最近公式にopenjdkの一部になったらしい?ので、まだあまり有名じゃないかもしれませんが、以下のような便利ツールがあるの知ってますか? http://openjdk.java.net/projects/code-tools/jol/ もともと個人で以下のリポジトリで開発されてたらしいです https://github.com/shipilev/java-object-layout いくつか機能があるみたいですが、とりあえずorg.openjdk.jol.info.ClassLayoutというのが、なにか大量に同じクラスのインスタンスを生成する予定があって(たとえばActorとか?) 「それぞれのclassのインスタンスが、何バイト消費するんだろう?」 というのを正確に知って、全体のメモリ消費量の予測に役立てたりするのにとても便利っぽいです。*1試してないですが、原理的にJavaだろうがS
今日、会社のblogのほうにJMHのエントリーを書きました。 そう、今日のテーマはマイクロベンチマークです。 Javaのマイクロベンチマークツール「JMH」 - Taste of Tech Topics Javaのマイクロベンチマークに興味がある人は、 GoogleのCaliperというマイクロベンチマークツールを既にご存知かも知れません。 しかし上記のエントリーではCaliperには全く触れていません。 なぜか。 いや、Caliperを試そうとしたら、うまく動かせなかったんですよ (^^; そんな、まともに動かせない所や、ドキュメントの更新のないCaliperに幻滅した後 JMHを試してみたら、思いのほか素直で使いやすかったため上で紹介するに至りました。 ちょっとここでは、その辺りの舞台裏を紹介してみます。 Caliperをはじめてみようとしたけど・・・ Caliperのトップページには
DBアクセス層に何を使うかって、本当によく話題になりますよね。 「これで間違いないでしょ」っていう鉄板の選択肢がないから、だと思うわけですが 「SQLを書きたい日本人」な僕としては、消去法的にMyBatisを使っています。 消去法って言うからには、消えた選択肢があるわけで。 Hibernate : アイドントライク ハイバネートサン JPA : アイドントライク ハイバネートサン Doma : アイドントライク APT S2JDBC : キャノット ユーズ ウィズ スプリング DBflute : 少し文化が違うんです。 Mirage : 開発止まっちゃったし。 ホントはMirageあたりが大好物で、過去に実案件に投入した時には まったく問題が起きなくて素晴らしかったのですが 開発が止まっていることと、実績的なアレでなかなか使いにくいんです。 そんなわけで消去法的に残ったMyBatisを使う
このブログについて これはJava Advent Calendar 2014 - Qiitaの10日目の記事です。 昨日(2014/12/09)は@irofさんの「Javaであまりしないコーディング - 日々常々」でした。 明日(2014/12/11)は@dk_masuさんです。 今回、僕は「Doma」というORマッパーについて調べました。 Domaには「バージョン 1」と「バージョン 2」がありますが、今回はJava SE 8に対応している「バージョン 2」を取り上げます。 Domaは日本語のチュートリアルが充実しているため、今回のブログでは、Domaを使うための最初の環境作成や、チュートリアルを読んで理解できるようになるための下地となる、基本的な部分について解説したいと思います。 Domaを使って、簡単な検索Webアプリを作ります。 サーブレット・JSPで作っていますので、適宜お使いの
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く