skip to main content
10.1145/3331542.3342568acmconferencesArticle/Chapter ViewAbstractPublication PagesicfpConference Proceedingsconference-collections
research-article

Towards online profiling of Erlang systems

Published: 18 August 2019 Publication History

Abstract

Recent releases of Erlang/OTP introduced features, which can be used to improve profiling tools for systems executed on the BEAM virtual machine. We discuss the need to introduce improvements into profiling tools with the Erlang-style concurrency in mind, so that they can help to understand performance of message passing and utilization of processes. We propose a new approach to implementation of the crucial element of such tools: the concurrent counters updates mechanism. To demonstrate the limitations of current tools in this area and verify the proposed approach, we present the results of a synthetic benchmark. The results clearly show that the proposed approach is a step towards a new generation of online profiling tools.

References

[1]
Ericsson AB. 1997-2019. A Call Count Profiling Tool using breakpoints. http://erlang.org/doc/man/cprof.html .
[2]
Ericsson AB. 1997-2019. A runtime system Lock Profiling tool. http: //erlang.org/doc/man/lcnt.html .
[3]
Ericsson AB. 1997-2019. A Time Profiling Tool for Erlang. http: //erlang.org/doc/man/eprof.html .
[4]
Ericsson AB. 1997-2019. A Time Profiling Tool using trace to file. http://erlang.org/doc/man/fprof.html .
[5]
Ward Bekker. 2013. Erlang Fprof Output Confusing? Try KCachegrind. http://blog.equanimity.nl/blog/2013/04/24/fprof-kcachegrind/ .
[6]
Mats Cronqvist. 2016. Erlang tracing debugger. https://github.com/ massemanet/redbug .
[7]
Sverker Eriksson. 2018. Counter Functions. Erlang/OTP 21.2.
[8]
Péter Gömöri et al. 2017. XProf - a visual tracer and profiler for Erlang and Elixir. https://github.com/Appliscale/xprof . Erlang User Conference 2017.
[9]
Scott Lystig Fritchie. 2015. Actively measuring and profiling. http: //www.snookles.com/erlang/ef2015/slf-presentation.html . Erlang Factory SF 2015.
[10]
Rickard Green. 2017. Magic references implementation. Erlang/OTP 20 RC1 (Release Candidate).
[11]
Brendan Gregg. 2018. Flame graphs. http://www.brendangregg.com/ flamegraphs.html . accessed 17.05.2019.
[12]
Katherine E. Isaacs, Alfredo Giménez, Ilir Jusufi, Todd Gamblin, Abhinav Bhatele, Martin Schulz, Bernd Hamann, and Peer-Timo Bremer. 2014. State of the Art of Performance Visualization. In EuroVis - STARs, R. Borgo, R. Maciejewski, and I. Viola (Eds.). The Eurographics Association.
[13]
Richard Jonas. 2014. Monitoring Erlang systems with wombat OAM. http://www.erlang-factory.com/static/upload/media/ 1403172489446128monitoringwithwombatoam1.pdf . Erlang Solutions Ltd., accessed 17.05.2019.
[14]
Vladimir Kirillov. 2014. Flame Graph profiler for Erlang. https://github. com/proger/eflame .
[15]
Lukas Larsson. 2016. erts: Implement tracer modules. Erlang/OTP 19.0 RC1 (Release Candidate).
[16]
Huiqing Li and Simon Thompson. 2013. Multicore profiling for Erlang programs using percept2. Proceedings of the ACM SIGPLAN International Conference on Functional Programming, ICFP, 33–42.
[17]
Michal Slaski. 2017. Erlang Performance Lab. https://www.youtube. com/watch?v=ncedupb-Rqw . Slides available at https://speakerdeck. com/michalslaski/erlang-performance-lab .
[18]
Michał Ślaski, Wojciech Turek, Arkadiusz Gil, Bartosz Szafran, Mateusz Paciorek, and Aleksander Byrski. 2018. Analysis of distributed systems dynamics with Erlang performance lab. Computer Science 19 (2018).
[19]
Andy Till. 2016. Trace Debugging With Erlyberly. https://github.com/ andytill/erlyberly . Erlang User Conference 2016.
[20]
Andy Till. 2018. NIF powered global counters for erlang. https:// github.com/andytill/oneup .
[21]
Frédéric Trottier-Hébert. 2012-2019. Collection of functions and scripts to debug Erlang in production. http://ferd.github.io/recon/ .

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
Erlang 2019: Proceedings of the 18th ACM SIGPLAN International Workshop on Erlang
August 2019
73 pages
ISBN:9781450368100
DOI:10.1145/3331542
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 18 August 2019

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Erlang
  2. profiling
  3. tracing

Qualifiers

  • Research-article

Conference

ICFP '19
Sponsor:

Acceptance Rates

Overall Acceptance Rate 51 of 68 submissions, 75%

Upcoming Conference

ICFP '25
ACM SIGPLAN International Conference on Functional Programming
October 12 - 18, 2025
Singapore , Singapore

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)3
  • Downloads (Last 6 weeks)2
Reflects downloads up to 03 Jan 2025

Other Metrics

Citations

Cited By

View all

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media