Boost C++ Libraries Home Libraries People FAQ More

PrevUpHomeNext

與其它開源庫的比較(Comparisons to Other Open Source Libraries)

我們已經對我們自己的庫和其它的開源庫中的相同函數進行了性能測試。所有的結果都在下面,讓你瞭解這些比較的大體情況。

[Caution] 注意

當解釋這些結果時,你應當非常謹慎,相關性能在不同平台上可能會發生變化,這些測試數據為我們的代碼給出了很好的覆蓋(coverage),但在特殊情況下可能會偏移(skew)結果。最後,記住,在性能和數值穩定性之間,不同的庫做出了不同的選擇。

與GSL-1.9庫和Cephes庫的比較

這些結果在一台 2.8GHz Intel Pentium 4, 2Gb RAM, Windows XP 機器上測量得到,所有的庫都使用Microsoft Visual C++ 2005 基於/Ox /arch:SSE2 編譯選項編譯而成。

Function

Boost

GSL-1.9

Cephes

tgamma

1.50

(2.566e-007s)

1.54

(2.627e-007s)

1.00

(1.709e-007s)

lgamma

1.73

(2.688e-007s)

3.61

(5.621e-007s)

1.00

(1.556e-007s)

gamma_pgamma_q

1.00

(9.504e-007s)

2.15

(2.042e-006s)

2.57

(2.439e-006s)

gamma_p_invgamma_q_inv

1.00

(3.631e-006s)

N/A

+INF [1]

ibetaibetac

1.00

(1.852e-006s)

1.07

(1.974e-006s)

1.07

(1.974e-006s)

ibeta_invibetac_inv

1.00

(7.311e-006s)

N/A

2.24

(1.637e-005s)

[1] 在運行我們的測試用例的時候,Cephes 庫陷入了無限循環。

與Windows版本的 R 統計庫的比較

所有的結果都是在一台 2.8GHz Intel Pentium 4, 2Gb RAM, Windows XP 機器上測量得到,測試程序使用 Microsoft Visual C++ 2005編譯,而 R-2.5.0 使用MinGW-3.4在"standalone mode"編譯(R-2.5.0 在 Visual C++中似乎不能編譯)。

在Windows XP上與 R 統計庫的比較

Statistical Function

Boost

R

β分佈(Beta Distribution CDF

1.20

(1.916e-006s)

1.00

(1.597e-006s)

β分佈(Beta Distribution) 分位點

1.00

(6.570e-006s)

74.66 [1]

(4.905e-004s)

二項分佈(Binomial Distribution) CDF

1.00

(5.276e-007s)

2.45

(1.293e-006s)

二項分佈(Binomial Distribution) 分位點

1.00

(4.013e-006s)

1.32

(5.280e-006s)

柯西分佈(Cauchy Distribution) CDF

1.00

(1.231e-007s)

1.28

(1.576e-007s)

柯西分佈(Cauchy Distribution) 分位點

1.00

(1.498e-007s)

1.00

(1.498e-007s)

χ方形分佈(Chi Squared Distribution) CDF

1.00

(7.889e-007s)

2.48

(1.955e-006s)

χ方形分佈(Chi Squared Distribution) 分位點

1.00

(4.303e-006s)

1.61

(6.925e-006s)

指數分佈(Exponential Distribution) CDF

1.00

(1.955e-007s)

1.97

(3.844e-007s)

指數分佈(Exponential Distribution) 分位點

1.07

(1.206e-007s)

1.00

(1.126e-007s)

費捨爾F分佈(Fisher F Distribution) CDF

1.00

(1.309e-006s)

2.12

(2.780e-006s)

費捨爾F分佈(Fisher F Distribution) 分位點

1.00

(7.204e-006s)

1.78

(1.280e-005s)

γ分佈(Gamma Distribution) CDF

1.00

(1.076e-006s)

2.07

(2.227e-006s)

γ分佈(Gamma Distribution) 分位點

1.00

(5.189e-006s)

1.14

(5.937e-006s)

對數正態分佈(Log-normal Distribution) CDF

1.00

(2.078e-007s)

1.41

(2.930e-007s)

對數正態分佈(Log-normal Distribution) 分位點

1.00

(6.692e-007s)

1.63

(1.090e-006s)

負二項分佈(Negative Binomial Distribution) CDF

1.00

(9.005e-007s)

2.42

(2.178e-006s)

負二項分佈(Negative Binomial Distribution) 分位點

1.00

(9.601e-006s)

53.59 [2]

(5.145e-004s)

正態分佈(Normal Distribution) CDF

1.00

(5.926e-008s)

3.01

(1.785e-007s)

正態分佈(Normal Distribution) 分位點

1.00

(1.248e-007s)

1.05

(1.311e-007s)

泊松分佈(Poisson Distribution) CDF

1.00

(8.999e-007s)

2.42

(2.175e-006s)

泊松分佈(Poisson Distribution)

1.00

(1.853e-006s)

2.17

(4.014e-006s)

學生t分佈(Students t Distribution) CDF

1.00

(1.223e-006s)

1.13

(1.376e-006s)

學生t分佈(Students t Distribution) 分位點

1.00

(2.570e-006s)

1.04

(2.668e-006s)

韋伯爾分佈(Weibull Distribution) CDF

1.00

(4.741e-007s)

1.46

(6.943e-007s)

韋伯爾分佈(Weibull Distribution) 分位點

1.00

(7.926e-007s)

1.08

(8.542e-007s)

[1] 在我們的一些測試用例中,R庫不能收斂:這傾向於支配(dominate)精度結果。

[2] R庫使用線性查找策略,在一些極端的測試用例( pathological cases)中,這會導致性能非常差,但在典型的情況下可能更高效也可能不是更高效。


在Linux上與R庫的比較

所有的結果都是在一台 2.8GHz Intel Pentium 4, 2Gb RAM, Mandriva Linux 機器上測量獲得,測試程序和 R-2.5.0 庫使用 GNU G++ 4.2.0編譯。

在Linux上比R統計庫的比較

Statistical Function

Boost

R

β分佈(Beta Distribution) CDF

1.71

(3.508e-006s)

1.00

(2.050e-006s)

β分佈(Beta Distribution) Quantile

1.00

(1.294e-005s)

44.06 [1]

(5.701e-004s)

二項分佈(Binomial Distribution) CDF

1.22

(1.342e-006s)

1.00

(1.104e-006s)

二項分佈(Binomial Distribution) 分位點

1.36

(7.083e-006s)

1.00

(5.194e-006s)

柯本分佈(Cauchy Distribution) CDF

1.00

(1.372e-007s)

1.47

(2.017e-007s)

柯西分佈(Cauchy Distribution) 分位點

1.00

(1.542e-007s)

1.14

(1.752e-007s)

χ方形分佈(Chi Squared Distribution) CDF

1.04

(1.820e-006s)

1.00

(1.753e-006s)

χ方形分佈(Chi Squared Distribution) 分位點

1.39

(9.345e-006s)

1.00

(6.728e-006s)

指數分佈(Exponential Distribution) CDF

1.00

(2.195e-007s)

1.17

(2.561e-007s)

指數分佈(Exponential Distribution) 分位點

1.00

(1.123e-007s)

1.03

(1.155e-007s)

費捨爾F分佈(Fisher F Distribution) CDF

1.00

(2.744e-006s)

1.08

(2.970e-006s)

費捨爾F分佈(Fisher F Distribution) 分位點

1.14

(1.550e-005s)

1.00

(1.359e-005s)

γ分佈(Gamma Distribution) CDF

1.29

(2.578e-006s)

1.00

(1.992e-006s)

γ分佈(Gamma Distribution) 分位點

1.77

(1.020e-005s)

1.00

(5.757e-006s)

對數正態分佈(Log-normal Distribution) CDF

1.00

(1.782e-007s)

2.00

(3.564e-007s)

對數正態分佈(Log-normal Distribution) 分位點

1.00

(7.093e-007s)

1.07

(7.607e-007s)

負二項分佈(Negative Binomial Distribution) CDF

1.03

(2.209e-006s)

1.00

(2.141e-006s)

負二項分佈(Negative Binomial Distribution) 分位點

1.00

(1.826e-005s)

30.07 [2]

(5.490e-004s)

正態分佈(Normal Distribution) CDF

1.00

(8.542e-008s)

2.09

(1.782e-007s)

正態分佈(Normal Distribution) 分位點

1.00

(1.362e-007s)

1.26

(1.722e-007s)

泊松分佈(Poisson Distribution) CDF

1.10

(1.953e-006s)

1.00

(1.775e-006s)

泊松分佈(Poisson Distribution)

1.12

(4.214e-006s)

1.00

(3.752e-006s)

學生t分佈(Students t Distribution) CDF

1.55

(2.441e-006s)

1.00

(1.576e-006s)

學生t分佈(Students t Distribution) 分位點

1.33

(3.972e-006s)

1.00

(2.990e-006s)

韋伯爾分佈(Weibull Distribution) CDF

1.00

(6.640e-007s)

1.06

(7.031e-007s)

韋伯爾分佈(Weibull Distribution) 分位點

1.00

(7.504e-007s)

1.03

(7.710e-007s)

[1] 在我們的一些測試用例中,R庫不能收斂:這傾向於支配(dominate)精度結果。

[2] R庫使用線性查找策略,在一些極端的測試用例( pathological cases)中,這會導致性能非常差,但在典型的情況下可能更高效也可能不是更高效。



PrevUpHomeNext