2016-04-09 15 views
1

私はMaxMindのGeoIP2を使用してIPアドレスのジオ情報を取得しています。私のJava Webアプリケーションでは、MaxMind:高速読み込みのためにGeoIP2 mmdbをメモリにロード

DatabaseReader reader = new DatabaseReader.Builder(new File("C:\GeoLite2-City.mmdb").withCache(new CHMCache()).build(); 

効率的な/高速の読み取りのためにファイル全体をメモリにロードしたいと考えています。

上記の方法は、mmdbデータベースを使用する最も効率的な方法ですか?

答えて

2

貼り付けたコードは、ファイルをメモリマップし、データキャッシュを使用します。それは効率的であるはずですが、データベース全体をメモリにロードしません。あなたがそれをしたい場合は、fileModeビルダーオプション、例えばを使用してデータベースをロードする必要があります:

DatabaseReader reader = new DatabaseReader 
    .Builder(new File("C:\GeoLite2-City.mmdb") 
    .fileMode(com.maxmind.db.Reader.FileMode.MEMORY) 
    .withCache(new CHMCache()) 
    .build(); 

しかし、ほとんどの場合、あなたはおそらくこれとの性能差は見られませんメモリ・マップドファイル。

+0

あなたの情報をありがとう! – curious1

関連する問題