From aba592af5e25e27e4f35aece1bccace3c22ab5f7 Mon Sep 17 00:00:00 2001 From: yaneurao Date: Wed, 11 May 2022 12:25:34 +0900 Subject: [PATCH] =?UTF-8?q?-=20V7.61=20=20=20-=20=E3=81=B5=E3=81=8B?= =?UTF-8?q?=E3=81=86=E3=82=89=E7=8E=8B=E3=81=AE=E3=83=A1=E3=83=A2=E3=83=AA?= =?UTF-8?q?=E3=83=AA=E3=83=BC=E3=82=AF=E3=81=AE=E5=95=8F=E9=A1=8C=E3=81=8C?= =?UTF-8?q?=E8=A7=A3=E6=B1=BA=E3=81=97=E3=81=9F=E3=81=AE=E3=81=A7=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...4\346\226\260\345\261\245\346\255\264.txt" | 47 +++++++++++++++++++ source/config.h | 2 +- 2 files changed, 48 insertions(+), 1 deletion(-) diff --git "a/docs/\346\233\264\346\226\260\345\261\245\346\255\264.txt" "b/docs/\346\233\264\346\226\260\345\261\245\346\255\264.txt" index e11f8d8b1..2cd841494 100644 --- "a/docs/\346\233\264\346\226\260\345\261\245\346\255\264.txt" +++ "b/docs/\346\233\264\346\226\260\345\261\245\346\255\264.txt" @@ -4,6 +4,53 @@ ■ 2022/05/11 + +- V7.61 + - ふかうら王のメモリリークの問題が解決したので。 + + +- FastAlloc削除 + #define USE_FAST_ALLOC + +// 高速なmemory allocator +// これをdefineすると、FastAllocが使えるようになる。 +// +// これは、ふかうら王で、 +// 1. メモリを高速にnew/deleteする必要があった。 +// 2. USI_Hashで事前に確保したmemory poolから割り当てたかった。 +// ので開発した。 +//#define USE_FAST_ALLOC + +#if defined(USE_FAST_ALLOC) + // memory allocatorに確保する場合。 + FAST_ALLOC.memory_alloc(size_t(Options["USI_Hash"])); +#endif + +#if defined(USE_FAST_ALLOC) + // --- use custom memory allocator + + static void* operator new (std::size_t size) /* throw(std::bad_alloc) */ { return FAST_ALLOC.alloc(size); } + static void* operator new[] (std::size_t size) /* throw(std::bad_alloc) */ { return FAST_ALLOC.alloc(size); } + static void operator delete (void* p ) /* throw( ) */ { FAST_ALLOC.free (p ); } + static void operator delete[](void* p ) /* throw( ) */ { FAST_ALLOC.free (p ); } +#endif + + bool use_fast_alloc = +#if defined(USE_FAST_ALLOC) + true; +#else + false; +#endif + + config += o2("USE_FAST_ALLOC" , use_fast_alloc ); + + #if defined(USE_FAST_ALLOC) + << " hashfull " << FAST_ALLOC.hashfull(); + // → 専用のメモリアロケーターからメモリを割り当てるようにしたので正確に残り空き容量を出力できる。 +#else + + + - ふかうら王、局面が進んだ時のメモリ開放ロジック、間違えていた(気がする)。 - dlshogiと同じように書いたらメモリちゃんと開放されるようになった。 - FAST_ALLOC使わないことにする。(従来通りに戻す) diff --git a/source/config.h b/source/config.h index 087f0b90a..66ad050cb 100644 --- a/source/config.h +++ b/source/config.h @@ -8,7 +8,7 @@ // 思考エンジンのバージョンとしてUSIプロトコルの"usi"コマンドに応答するときの文字列。 // ただし、この値を数値として使用することがあるので数値化できる文字列にしておく必要がある。 -#define ENGINE_VERSION "7.60" +#define ENGINE_VERSION "7.61" // -------------------- // 思考エンジンの種類