_由:bronsa_发表评论
v4补丁修复了找不到情况的回归,不清楚为什么会出现这种情况,表示歉意。
以下是现在得到的性能指标
clojure master
user=> (let [x (x.)] (bench (satisfies? p x)))
评估次数:604,961,580 在60次样本中,每次样本大小为100,826,93个调用。
平均执行时间:112.649568纳秒
执行时间标准差:12.216782纳秒
执行时间下四分位数:99.299203纳秒(2.5%)
执行时间上四分位数:144.265205纳秒(97.5%)
开销使用:1.898271纳秒
在60个样本中找到了3个异常值(5.0000%)
低严重度 2 (3.3333%)
低轻微度 1 (1.6667%)
方差来自异常值:73.7545% 异常值导致方差严重膨胀
nil
user=> (let [y (y.)] (bench (satisfies? p y)))
评估次数:22,676,100 在60次样本中,每次样本大小为377,935个调用。
平均执行时间:2.605426微秒
执行时间标准差:141.100070纳秒
执行时间下四分位数:2.487234微秒(2.5%)
执行时间上四分位数:2.873045微秒(97.5%)
开销使用:1.898271纳秒
在60个样本中找到了1个异常值(1.6667%)
低严重度 1 (1.6667%)
方差来自异常值:40.1251% 异常值导致方差中度膨胀
nil
master + v4
user=> (let [x (x.)] (bench (satisfies? p x)))
评估次数:731,759,100 在60次样本中,每次样本大小为12,195,985个调用。
平均执行时间:79.321426纳秒
执行时间标准差:3.959245纳秒
执行时间下四分位数:75.365187纳秒(2.5%)
执行时间上四分位数:87.986479纳秒(97.5%)
开销使用:1.905711纳秒
在60个样本中找到了1个异常值(1.6667%)
低严重度 1 (1.6667%)
方差来自异常值:35.2614% 异常值导致方差中度膨胀
nil
user=> (let [y (y.)] (bench (satisfies? p y)))
评估次数:771,220,140 在60次样本中,每次样本大小为12,853,669个调用。
平均执行时间:77.410858纳秒
执行时间标准差:1.407926纳秒
执行时间下四分位数:75.852530纳秒(2.5%)
执行时间上四分位数:80.759226纳秒(97.5%)
开销使用:1.897646纳秒
在60个样本中找到了4个异常值(6.6667%)
低严重度 3 (5.0000%)
低轻微度 1 (1.6667%)
方差来自异常值:7.7866% 异常值导致方差略微膨胀
总结如下
master found = 112ns
master not-found = 2.6us
master+v4 found = 79ns
master+v4 not-found = 77ns