monitor fishnet pvs, short pvs, and long pvs

pull/2476/head
Thibault Duplessis 2016-12-20 23:09:26 +01:00
parent 9d682539dc
commit 402db995be
2 changed files with 10 additions and 0 deletions

View File

@ -416,6 +416,9 @@ object mon {
def nps = rec(s"fishnet.analysis.nps.$client")
def depth = rec(s"fishnet.analysis.depth.$client")
def pvSize = rec(s"fishnet.analysis.pv_size.$client")
def pvTotal = incX(s"fishnet.analysis.pvs.total.$client")
def pvShort = incX(s"fishnet.analysis.pvs.short.$client")
def pvLong = incX(s"fishnet.analysis.pvs.long.$client")
def totalMeganode = incX(s"fishnet.analysis.total.meganode.$client")
def totalSecond = incX(s"fishnet.analysis.total.second.$client")
def totalPosition = incX(s"fishnet.analysis.total.position.$client")

View File

@ -46,6 +46,13 @@ private final class Monitor(
avgOf(_.depth) foreach { monitor.depth(_) }
avgOf(_.pvList.size.some) foreach { monitor.pvSize(_) }
val significantPvSizes =
result.analysis.filterNot(_.mateFound).filterNot(_.deadDraw).map(_.pvList.size)
monitor.pvTotal(significantPvSizes.size)
monitor.pvShort(significantPvSizes.count(_ < 3))
monitor.pvLong(significantPvSizes.count(_ >= 6))
// endgame positions count and total time
if (work.game.variant.standard)
chess.Replay.boardsFromUci(~work.game.uciList, work.game.initialFen, work.game.variant).fold(