Como criar um perfil de um programa Erlang em termos de uso de memória?

Eu gostaria de melhorar ainda mais a eficiência de um programa Erlang existente. Primeiro, gostaria de identificar gargalos e depois decidir onde otimizar ainda mais.

Eu tenteifprof, mas fornece apenas informações sobre o tempo de execução total e médio. Eu gostaria muito de ver um log semelhante à saída do fprof, mas em termos de uso médio e total de memória em relação a funções e processos.

Para iniciantes, seria suficiente criar um perfil para um único módulo, que não gera processos, apenas suas funções seriam chamadas. Isso já ajudaria, pois eu poderia separar o programa em módulos distintos para teste.

São pontos suspeitos típicos, onde listas maiores estão sendo manipuladas.

Aqui o uso de++ foi resolvido porlists:reverse([Head|Tail]) como sintaxe.

Também estou pensando em usar tabelas ETS em vez de Listas para casos com mais de algumas centenas de elementos.

Agradeço antecipadamente!

questionAnswers(4)

yourAnswerToTheQuestion