2013-08-26 6 views
5

Ich versuche, die MaxMind GeoIP-Datenbank zu verwenden, und ich stelle fest, dass die C-API eine Reihe verschiedener Cache-Modi als Flags für den Initialisierungsaufruf GeoIP_open bereitstellt.Was bedeuten die verschiedenen MaxMind GeoIP Caching-Modi?

  • GEOIP_MEMORY_CACHE
  • GEOIP_CHECK_CACHE
  • GEOIP_INDEX_CACHE
  • GEOIP_MMAP_CACHE

sind diese Flag-Bits, so dass Sie jede Menge von ihnen bieten kann, aber es gibt keine Dokumentation darüber, was diese Flags bedeuten oder was sie tun, oder (vielleicht am wichtigsten) wie sie interagieren.

Die benchmarks page zeigt an, dass GEOIP_MEMORY_CACHE macht es schneller, während GEOIP_CHECK_CACHE es langsamer macht, aber es gibt keinen Hinweis darauf, warum Sie (oder nicht verwenden) eines dieser Kennzeichen verwenden wollen würde.

Antwort

4

Ihre Github-Seite beschreibt den Zweck dieser Caches.

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. 

Diese Optionen können mit Bitoperatoren kombiniert werden. Zum Beispiel können Sie sowohl GEOIP_MEMORY_CACHE als auch GEOIP_CHECK_CACHE verwenden, indem Sie Folgendes aufrufen: GeoIP_open ("/ Pfad/zu/GeoIP.dat", GEOIP_MEMORY_CACHE | GEOIP_CHECK_CACHE);

Click to know more information

Verwandte Themen