Added HNSW_MEMORY flag to show memory usage - #384 [skip ci]

This commit is contained in:
Andrew Kane
2023-12-20 16:49:16 -05:00
parent 9ab10aa674
commit 6738fa0bd7
2 changed files with 14 additions and 0 deletions

View File

@@ -72,8 +72,10 @@
#if PG_VERSION_NUM >= 150000
#define RandomDouble() pg_prng_double(&pg_global_prng_state)
#define SeedRandom(seed) pg_prng_seed(&pg_global_prng_state, seed)
#else
#define RandomDouble() (((double) random()) / MAX_RANDOM_VALUE)
#define SeedRandom(seed) srandom(seed)
#endif
#if PG_VERSION_NUM < 130000

View File

@@ -279,6 +279,14 @@ FreeElements(HnswBuildState * buildstate)
static void
FlushPages(HnswBuildState * buildstate)
{
#ifdef HNSW_MEMORY
#if PG_VERSION_NUM >= 130000
elog(INFO, "memory: %zu MB", MemoryContextMemAllocated(CurrentMemoryContext, false) / (1024 * 1024));
#else
MemoryContextStats(CurrentMemoryContext);
#endif
#endif
CreateMetaPage(buildstate);
CreateElementPages(buildstate);
CreateNeighborPages(buildstate);
@@ -902,6 +910,10 @@ static void
BuildIndex(Relation heap, Relation index, IndexInfo *indexInfo,
HnswBuildState * buildstate, ForkNumber forkNum)
{
#ifdef HNSW_MEMORY
SeedRandom(42);
#endif
InitBuildState(buildstate, heap, index, indexInfo, forkNum);
if (buildstate->heap != NULL)