5

MaxMind GeoIP データベースを使用しようとしていますが、C API がさまざまなキャッシュ モードをGeoIP_open初期化呼び出しのフラグとして提供していることに気付きました。

  • GEOIP_MEMORY_CACHE
  • GEOIP_CHECK_CACHE
  • GEOIP_INDEX_CACHE
  • GEOIP_MMAP_CACHE

これらはフラグ ビットであるため、任意のセットを指定できますが、これらのフラグの意味や機能、または (おそらく最も重要な) どのように相互作用するかについてのドキュメントはありません。

ベンチマーク ページには、GEOIP_MEMORY_CACHE高速化と低速化が示さGEOIP_CHECK_CACHEれていますが、これらのフラグを使用する (または使用しない) 理由については示されていません。

4

1 に答える 1

4

彼らの github ページでは、これらのキャッシュの目的について説明しています。

GEOIP_STANDARD - Read database from file system. This uses the least memory.
GEOIP_MEMORY_CACHE - Load database into memory. Provides faster performance but uses more memory.
GEOIP_CHECK_CACHE - Check for updated database. If database has been updated, reload file handle and/or memory cache.
GEOIP_INDEX_CACHE - Cache only the the most frequently accessed index portion of the database, resulting in faster lookups than GEOIP_STANDARD, but less memory usage than GEOIP_MEMORY_CACHE. This is useful for larger databases such as GeoIP Organization and GeoIP City. Note: for GeoIP Country, Region and Netspeed databases, GEOIP_INDEX_CACHE is equivalent to GEOIP_MEMORY_CACHE.
GEOIP_MMAP_CACHE - Load database into mmap shared memory. MMAP is not available for 32bit Windows.

これらのオプションは、ビット演算子を使用して組み合わせることができます。たとえば、次のように呼び出すことで、GEOIP_MEMORY_CACHE と GEOIP_CHECK_CACHE の両方を使用できます。

クリックして詳細情報を知る

于 2013-08-26T20:38:46.040 に答える