関口宏司のLuceneブログ

OSS検索ライブラリのLuceneおよびそのサブプロジェクト(Solr/Tika/Mahoutなど)について
スポンサーサイト

一定期間更新がないため広告を表示しています

| スポンサードリンク | - | | - | - |
ヒープ消費量を計算するクラス(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
| 関口宏司 | Luceneクラス解説 | 07:02 | comments(0) | trackbacks(0) |
(メモ)Antiword
http://www.winfield.demon.nl/

Wordファイルからテキストデータを抽出するツール。対応プラットフォームが充実しており、VMS、Zaurus、BeOSまでをもサポートしている。
| 関口宏司 | Luceneツール | 08:23 | comments(1) | trackbacks(0) |
+ Solrによるブログ内検索
+ PROFILE
     12
3456789
10111213141516
17181920212223
24252627282930
31      
<< January 2010 >>
+ LINKS
検索エンジン製品 - 比較のポイント
商用検索エンジンを購入した企業担当者は読まないでください。ショックを受けますから・・・
>>製品比較 10のポイント
+ Lucene&Solrデモ
+ ThinkIT記事
+ RECOMMEND
Apache Solr入門 ―オープンソース全文検索エンジン
Apache Solr入門 ―オープンソース全文検索エンジン (JUGEMレビュー »)
関口 宏司,三部 靖夫,武田 光平,中野 猛,大谷 純
+ RECOMMEND
Lucene in Action
Lucene in Action (JUGEMレビュー »)
Erik Hatcher,Otis Gospodnetic,Mike McCandless
FastVectorHighlighterについて解説記事を寄稿しました。
+ RECOMMEND
+ SELECTED ENTRIES
+ RECENT COMMENTS
+ RECENT TRACKBACK
+ CATEGORIES
+ ARCHIVES
+ MOBILE
qrcode
+ SPONSORED LINKS