我一直在玩一個簡單的光線追蹤器,一直在工作很整齊到目前爲止。我使用多個goroutine來渲染圖像的不同部分,然後將其結果放入共享電影中。不要使用CPU完全
與我的預期相反,我的代碼仍然比同等java代碼慢大約3倍。那是可以預料的嗎?此外,在檢查htop
中的CPU使用情況時,我發現每個內核僅用於大約85%。這是htop
的問題還是我的代碼有問題?這裏是我的應用程序的cpu profile
我確實設置了GOMAXPROCS爲runtime.GOMAXPROCS(runtime.NumCPU())
。該full code is on github。
請貼出去和java代碼 – user634175
您可能會創建太多需要在稍後銷燬的對象,或者使用append()很多。 100%以下的使用率可能表明您在goroutine之間使用的通信機制不是最佳的。您是使用渠道還是調整Java代碼以使用共享內存和互斥量? – siritinga
您使用過GOMAXPROCS嗎? – fabrizioM