2013-08-26 15 views
5

Próbuję użyć bazy danych MaxMind GeoIP i zauważam, że interfejs API C zapewnia wiele różnych trybów buforowania jako flag dla wywołania inicjującego GeoIP_open.Co oznaczają różne tryby buforowania MaxMind GeoIP?

  • GEOIP_MEMORY_CACHE
  • GEOIP_CHECK_CACHE
  • GEOIP_INDEX_CACHE
  • GEOIP_MMAP_CACHE

są bity flag, więc można podać dowolny zestaw z nich, ale nie ma dokumentacji, co te flagi oznaczać albo co robią lub (być może najważniejsze), w jaki sposób wchodzą w interakcje.

benchmarks page wskazuje GEOIP_MEMORY_CACHE czyni go szybciej podczas GEOIP_CHECK_CACHE sprawia, że ​​wolniej, ale nie ma wskazanie, dlaczego chcesz korzystać (lub nie korzystać) każdy z tych flag.

Odpowiedz

4

Ich strona github opisuje przeznaczenie tych pamięci podręcznych.

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. 

Te opcje można łączyć za pomocą operatorów bitowych. Na przykład możesz używać zarówno GEOIP_MEMORY_CACHE, jak i GEOIP_CHECK_CACHE, wywołując: GeoIP_open ("/ ścieżka/do/GeoIP.dat", GEOIP_MEMORY_CACHE | GEOIP_CHECK_CACHE);

Click to know more information

Powiązane problemy