我注意到一個有趣的問題。如果我運行下面的代碼在2.12.0(32位)的Windows 3.00 GHz的Core 2 Duo CPU與2GB的RAM,它運行在不到一秒鐘。如果我使用sparc-sun-solaris2.10(也是32位,但unix盒可以運行64位)在unix-box上運行它,則需要84秒。 unix盒的處理速度是2.5 gHz。如果我在代碼運行的時候運行top,我注意到我的R進程只佔用了大約3.2%的可用CPU狀態,即使有更多可用的狀態。這可能是問題的一部分嗎?我閱讀了安裝手冊,但是沒有任何東西可以作爲我的問題的明顯解決方案跳出來。 unix操作系統在某種程度上限制了可用資源,而Windows不是?或者,有沒有一些更好的方法來從源代碼編譯R沒有完成?如果我沒有提供足夠的信息來回答問題,我很抱歉,這不是我的專業領域。R性能差異(Solaris vs Windows)
t0 <- proc.time()[[3]]
x <- rnorm(10000)
for(i in 1:10000){
sd(x)
}
print(proc.time()[[3]]-t0)
編寫一個CPU密集型C程序,編譯它,運行它,看看是否也得到3.2%的CPU。如果是這樣,它不是R的錯,我們可以在其他地方看看......另外,請檢查proc.time的CPU時間使用情況以及經過的時間... – Spacedman
計算密集型C程序的上限爲3.2%。另外,我只是在MATLAB中進行了相同的測試,循環在Windows上運行約1秒,而在UNIX上運行約3秒。這轉向了相當難題。 – rlh2
你確定系統上沒有別的東西在運行? – Spacedman