我想進一步提高現有Erlang程序的效率。首先,我想找出瓶頸,然後決定在哪裏進一步優化。如何根據內存使用情況描述Erlang程序?
我試過fprof
,但它只給出關於總運行時間和平均運行時間的信息。我最希望看到類似於fprof輸出的日誌,但是就功能和進程而言,平均和總內存使用量方面。
對於初學者來說就足夠了剖析單個模塊,不產卵過程,只是它的功能將被調用。這已經有所幫助了,因爲我可以將程序分離到不同的模塊進行測試。
典型的可疑點是,正在處理更大的名單。
這裏的++
的用法已被lists:reverse([Head|Tail])
類似的語法解決。
我也在考慮使用ETS表格而不是列表來處理超過幾百個元素的情況。
謝謝您提前!
+1。爲了支持分析:) – 2010-05-13 09:17:29
我懷疑在列表中使用ets表將會在空間方面具有優勢,無論表/ ets表有多大(列表每個元素只有一個指針的開銷) - 通常表只有及時給你一個優勢。 – Amadiro 2010-05-14 12:42:59