Calcitem
|
29e1297531
|
[gnuc] A little bit Performance Enhancement
可能对cache命中率稍有提升 (MISS: 0.03%->0.01%)
实测无明显变化.
|
2019-10-11 22:11:13 +08:00 |
Calcitem
|
877f87ec19
|
timestat: 增加 TIME_STAT 宏并默认关闭
因 now() 函数较耗时.
关闭后自对弈时长恢复到 44-45s 左右.
|
2019-10-07 16:54:39 +08:00 |
Calcitem
|
eef8e13c23
|
mempool: 去掉 MEMORY_POOL 宏
MEMORY_POOL 打开后无法通过编译, mempool 功能已完成, 故去除
MEMORY_POOL 宏.
|
2019-10-06 01:10:34 +08:00 |
Calcitem
|
31323da82e
|
mempool: 更换为不需要 new 的实现
原有的内存池实现还是会调用 new, 性能提升不显著, 故切换到不需要 new
的实现.
参考:
https://github.com/eliben/code-for-blog/blob/master/2008/memmgr/main.c
https://gitrepos.estec.esa.int/taste/panda/blob/master/etc/libbambu/memmgr.c
自对弈时长由54s缩短到52s.
临时使用转换为 vector 再调用 std:sort 进行排序的方式, 后续切换到
自己的排序函数, 应会明显提升性能.
|
2019-10-05 04:04:06 +08:00 |
Calcitem
|
8e54962233
|
ai: tt: 使用更新年龄机制来取代每次全部清空置换表
memset 大块内存效率较低, 故在哈希表中增加年龄纪录,
当年龄不一致时即认为哈希表项过时, 就更新它.
如果年龄一致则从中读取数据.
年龄增长到255时才清空一次置换表, 这样自对弈一盘棋只需要清2次.
修改使用 TRANSPOSITION_TABLE_FAKE_CLEAN 宏控制.
代价是会增加哈希表的体积, 空间换时间.
自对弈时长由 63s 缩短到 54s, 提速 15%.
|
2019-10-02 19:23:52 +08:00 |
Calcitem
|
2918b9a23d
|
stack: 增加 Stack 类取代 std::stack 并且在拷贝时使用 memcpy 提高效率
自对弈时长由66秒缩短到63秒, 提速 4.5%.
|
2019-10-02 11:36:17 +08:00 |
CalciteM Team
|
c9ec23603a
|
endgame: 以残局库代码取代开局库代码
* 目前残局库依赖于自动认输开启.
|
2019-09-17 23:13:25 +08:00 |
CalciteM Team
|
3e47a5963b
|
depth: 去除深度相关的编译宏
|
2019-09-15 21:57:45 +08:00 |
CalciteM Team
|
874dac69f1
|
perf: 哈希表不加锁去掉线程安全机制
自对弈性能测试:
加锁: 2"93 = 213s
不加锁: 2"33 = 153s
提速 28%.
|
2019-09-14 23:51:52 +08:00 |
CalciteM
|
3a043b469c
|
refactor: 将部分哈希相关重命名为置换表相关名称
|
2019-09-09 00:29:50 +08:00 |
CalciteM
|
3d1022f292
|
refactor: 清理成三表和着法表等无用的逻辑
|
2019-09-08 23:58:26 +08:00 |
CalciteM
|
fa531d5926
|
refactor: Rename chess to game
|
2019-09-08 23:40:22 +08:00 |
CalciteM
|
dc90db249c
|
refactor: 创建 board 和 rule 模块
* 将部分逻辑转移到这两个 class;
* 创建了 types.h 将部分类型转移到此文件;
* 将 millList 由 list 改为 vector, 否则容易出现段错误.
|
2019-09-08 23:22:28 +08:00 |
CalciteM
|
a1125087bc
|
将 QDebug 替换为自己定义的 loggerDebug 函数
|
2019-09-07 19:55:04 +08:00 |
CalciteM Team
|
07e1c12f3a
|
增加 AI 随机走子的选项
去除 MOVE_PRIORITY_TABLE_SUPPORT 宏, 固定走这个宏的逻辑,
至于是否打乱着法则视 randomMove 而定.
|
2019-09-07 14:46:42 +08:00 |
CalciteM Team
|
d8f9f375ab
|
支持设置棋局结束后自动重新开始
|
2019-09-07 01:24:50 +08:00 |
CalciteM Team
|
98229ac301
|
实现 CONST_MILL_TABLE 即成三表用常量数组表示
|
2019-09-05 00:41:59 +08:00 |
CalciteM Team
|
9c32d9417c
|
Remove NineChess folder
|
2019-09-04 22:36:53 +08:00 |