From b9f1c9bf3f5ba240423a4f1ca8a2fb0f975a775e Mon Sep 17 00:00:00 2001 From: Nooby <> Date: Sun, 28 Oct 2018 04:12:34 +0800 Subject: [PATCH 1/1] Clear TableBase mappings in Search::clear() This patch will make possible to free mapped TB files with "ucinewgame" command. We wrote this patch specifically to address a problem that arose while running Stockfish with 7-piece tablebases as a kibitzer at TCEC for extended periods of time across multiple games. It was noted that after some time, the NPS of the kibitzing Stockfish (which is usually 3x faster than the Stockfish actually competing) would drop precipitously, eventually falling to preposterously low numbers until restarted. Their eval bot basically inputs FEN, go infinite, stop and loop, it probably didn't do ucinewgame either. As time goes it gradually slowed down and OS starts to use swap, this is not reasonable since the engine only uses 16GB hash and the machine has 1TB physical RAM and does nothing else. Author : noobpwnftw Closes https://github.com/official-stockfish/Stockfish/pull/1790 No functional change. --- src/main.cpp | 1 - src/search.cpp | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main.cpp b/src/main.cpp index c5bf3255..bebce2e0 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -43,7 +43,6 @@ int main(int argc, char* argv[]) { Bitbases::init(); Search::init(); Pawns::init(); - Tablebases::init(Options["SyzygyPath"]); // After Bitboards are set Threads.set(Options["Threads"]); Search::clear(); // After threads are up diff --git a/src/search.cpp b/src/search.cpp index d0bbc967..07680f1d 100644 --- a/src/search.cpp +++ b/src/search.cpp @@ -187,6 +187,7 @@ void Search::clear() { Time.availableNodes = 0; TT.clear(); Threads.clear(); + Tablebases::init(Options["SyzygyPath"]); // Free up mapped files } -- 2.39.2