Erlang 进程创建性能测试
生活随笔
收集整理的這篇文章主要介紹了
Erlang 进程创建性能测试
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
測試代碼來自 Progremming Erlang。 Erlang: R13B (erts-5.7.1), 啟動參數 +P 5000000 系統: Window XP CPU: E8200 2.66G 雙核 內存: 4G
結果: 創建100W,平均3us左右。因為物理內存比較多。測試時內存高峰在1.2G左右, 由此可以估計一下進程的內存消耗。 測試創建200W, 150W都不能正常運行。測試時,內存到1.8G以上時,werl進程死循環。不能結束。 在WINDOW下,單進程的內存不能超過2G??梢?#xff0c;進程的上限也就100W多一點吧。如果加上其它開銷。單個結點能創建的進程數量還會少很多。 看下測試代碼 for函數的編寫并不是最優化的方式,改成尾遞歸形式: for(I, N, F) -> for_h(I, N, F, []). for_h(_N, _N, _, L) -> L; for_h(I, N, F, L) -> for_h(I+1, N, F, [F()|L]). 再測試:
結果在2us左右,看來尾遞歸還是影響挺大。
最新內容請見作者的GitHub頁:http://qaseven.github.io/
| Erlang R13B (erts-5.7.1) [smp:2:2] [rq:2] [async-threads:0] Eshell V5.7.1 ?(abort with ^G) 1> c(processes). {ok,processes} 2> processes:max(1000000). Maximum allowed processes:5000000 Process spawn time = 2.703(2.688) microseconds ok 3> processes:max(1000000). Maximum allowed processes:5000000 Process spawn time = 3.203(2.938) microseconds ok 4> processes:max(1000000). Maximum allowed processes:5000000 Process spawn time = 3.25(3.015) microseconds ok |
| 5> c(processes). {ok,processes} 6> processes:max(1000000). Maximum allowed processes:5000000 Process spawn time = 1.891(1.64) microseconds ok 7> processes:max(1000000). Maximum allowed processes:5000000 Process spawn time = 2.266(1.641) microseconds ok 8> processes:max(1000000). Maximum allowed processes:5000000 Process spawn time = 2.234(1.625) microseconds ok |
最新內容請見作者的GitHub頁:http://qaseven.github.io/
總結
以上是生活随笔為你收集整理的Erlang 进程创建性能测试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 顺义教委携手华平共建视频图像综合管理平台
- 下一篇: 大数据在金融领域的应用及问题时