2017.12.15 Friday
スポンサーサイト
一定期間更新がないため広告を表示しています
| スポンサードリンク | - | | - | - |
関口宏司のLuceneブログOSS検索ライブラリのLuceneおよびそのサブプロジェクト(Solr/Tika/Mahoutなど)について
2010.01.18 Monday
ヒープ消費量を計算するクラス(2.9)
LUCENE-1749の一部としてヒープの消費量を計算するユーティリティクラスRamUsageEstimatorがLucene 2.9に追加されたのでその使い方を紹介しよう。簡単なのでいきなりサンプルプログラムを示す:
public class TestRamUsage { private final String name; private TestRamUsage tru; public TestRamUsage( String name ){ this.name = name; } public static void main(String[] args) { RamUsageEstimator rue = new RamUsageEstimator(); TestRamUsage mike = new TestRamUsage( "Mike" ); System.out.println( "size of mike = " + rue.estimateRamUsage( mike ) ); TestRamUsage christian = new TestRamUsage( "Christian" ); System.out.println( "size of christian = " + rue.estimateRamUsage( christian ) ); mike.tru = christian; System.out.println( "size of mike = " + rue.estimateRamUsage( mike ) ); } } これを実行すると、次のように表示される: size of mike = 16 size of christian = 16 size of mike = 32 2回目の"mike"のサイズが2倍になっているのは、mikeのメンバ変数にchristianを代入したためである。このようにRamUsageEstimatorはオブジェクトのツリーをたどってそのオブジェクトの全消費量を示してくれる。 なお、"mike"と"christian"でnameの長さが違うのに同じサイズになっているのは、オブジェクトがStringの場合、デフォルトでintern()したものと比較し、オブジェクトとintern()したものの参照が同じならばサイズとして算入しないようになっているためである。この動作を変えるには、RamUsageEstimatorのコンストラクタにfalseを渡してやればよい。すると、実行結果は次のようになる: size of mike = 64 size of christian = 74 size of mike = 138 2010.01.12 Tuesday
(メモ)Antiword
http://www.winfield.demon.nl/
Wordファイルからテキストデータを抽出するツール。対応プラットフォームが充実しており、VMS、Zaurus、BeOSまでをもサポートしている。 |
+ Solrによるブログ内検索
+ PROFILE
+ LINKS
+ Lucene&Solrデモ
+ ThinkIT記事
+ RECOMMEND
+ RECOMMEND
Lucene in Action (JUGEMレビュー »)
Erik Hatcher,Otis Gospodnetic,Mike McCandless FastVectorHighlighterについて解説記事を寄稿しました。
+ RECOMMEND
+ SELECTED ENTRIES
+ RECENT COMMENTS
+ RECENT TRACKBACK
+ CATEGORIES
+ ARCHIVES
+ MOBILE
+ SPONSORED LINKS
|
(C) 2024 ブログ JUGEM Some Rights Reserved.
|
PAGE TOP |