Mercurial > hg > audiodb
view retrieve.cpp @ 610:e21a3db643af
MORE MEMORY SANITY
Move the logic tracking which points have been visited already
(including the std::set datastructure) into the indexed query codepaths,
rather than inside accumulators. This has the effect of drastically
reducing the memory used in non-indexed queries, such that the working
set for a 500-file database with 100000 vectors total goes from 1.2GB to
slightly under 3MB.
All this and less code, too!
author | mas01cr |
---|---|
date | Fri, 28 Aug 2009 17:14:06 +0000 |
parents | 361f3bda6694 |
children |
line wrap: on
line source
extern "C" { #include "audioDB_API.h" } #include "audioDB-internals.h" int audiodb_retrieve_datum(adb_t *adb, const char *key, adb_datum_t *datum) { uint32_t index = audiodb_key_index(adb, key); if(index == (uint32_t) -1) { return 1; } else { return audiodb_track_id_datum(adb, index, datum); } } int audiodb_free_datum(adb_t *adb, adb_datum_t *datum) { return audiodb_really_free_datum(datum); }