[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/2851553.2851563acmconferencesArticle/Chapter ViewAbstractPublication PagesicpeConference Proceedingsconference-collections
research-article

Automatically Detecting "Excessive Dynamic Memory Allocations" Software Performance Anti-Pattern

Published: 12 March 2016 Publication History

Abstract

This paper presents a methodology for automatically detecting the excessive dynamic memory allocation software performance anti-pattern, which is implemented in a tool named Excessive Memory Allocation Detector (EMAD). To the best of author's knowledge, EMAD is the first attempt to detect excessive dynamic memory allocation anti-pattern without human intervention. EMAD uses dynamic binary instrumentation and exploratory data analysis to determine if an application (or middleware) exhibits excessive dynamic memory allocations. Unlike traditional approaches, EMAD's technique does not rely on source code analysis. Results of applying EMAD to several open-source projects show that EMAD can detect the excessive dynamic memory allocations anti-pattern correctly. The results also show that application performance improves when the detected excessive dynamic memory allocations are resolved.

References

[1]
P. R. Wilson, M. S. Johnstone, M. Neely, and D. Boles, "Dynamic storage allocation: A survey and critical review," in Memory Management. Springer, 1995, pp. 1--116.
[2]
D. Detlefs, A. Dosser, and B. Zorn, "Memory allocation costs in large c and c
[3]
programs," Software: Practice and Experience, vol. 24, no. 6, pp. 527--542, 1994.
[4]
C. U. Smith and L. G. Williams, "Software performance antipatterns." in Workshop on Software and Performance, 2000, pp. 127--136.
[5]
----, "More new software performance antipatterns: Even more ways to shoot yourself in the foot," in Computer Measurement Group Conference, 2003, pp. 717--725.
[6]
J. Din, A. B. Al-Badareen, and Y. Y. Jusoh, "Antipatterns detection approaches in object-oriented design: A literature review," in Computing and Convergence Technology (ICCCT), 2012 7th International Conference on. IEEE, 2012, pp. 926--931.
[7]
C. Trubiani and A. Koziolek, "Detection and solution of software performance antipatterns in palladio architectural models." in ICPE, 2011, pp. 19--30.
[8]
V. Cortellessa, A. Di Marco, and C. Trubiani, "Performance antipatterns as logical predicates," in Engineering of Complex Computer Systems (ICECCS), 2010 15th IEEE International Conference on. IEEE, 2010, pp. 146--156.
[9]
J. Xu, "Rule-based automatic software performance diagnosis and improvement," Performance Evaluation, vol. 67, no. 8, pp. 585--611, 2010.
[10]
C.-K. Luk, R. Cohn, R. Muth, H. Patil, A. Klauser, G. Lowney, S. Wallace, V. J. Reddi, and K. Hazelwood, "Pin: building customized program analysis tools with dynamic instrumentation," in Acm Sigplan Notices, vol. 40, no. 6. ACM, 2005, pp. 190--200.
[11]
J. A. Hartigan and M. A. Wong, "Algorithm as 136: A k-means clustering algorithm," Applied statistics, pp. 100--108, 1979.
[12]
E. D. Berger, B. G. Zorn, and K. S. McKinley, "Oopsla 2002: Reconsidering custom memory allocation," ACM SIGPLAN Notices, vol. 48, no. 4, pp. 46--57, 2013.
[13]
E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software. Reading, MA: Addison-Wesley, 1995.
[14]
N. Moha, "Detection and correction of design defects in object-oriented designs," in Companion to the 22nd ACM SIGPLAN conference on Object-oriented programming systems and applications companion. ACM, 2007, pp. 949--950.
[15]
N. Nethercote and J. Seward, "Valgrind: a framework for heavyweight dynamic binary instrumentation," ACM Sigplan Notices, vol. 42, no. 6, pp. 89--100, 2007.
[16]
J. H. Hill and D. C. Feiock, "Pin
[17]
: an object-oriented framework for writing pintools," in Proceedings of the 2014 International Conference on Generative Programming: Concepts and Experiences. ACM, 2014, pp. 133--141.
[18]
B. G. Ryder, "Constructing the call graph of a program," Software Engineering, IEEE Transactions on, no. 3, pp. 216--226, 1979.
[19]
F. Eichinger, K. Böhm, and M. Huber, "Mining edge-weighted call graphs to localise software bugs," in Machine Learning and Knowledge Discovery in Databases. Springer, 2008, pp. 333--348.
[20]
I. Corporation, "Pin 2.14 User Guide," https://software.intel.com/sites/landingpage/pintool/docs/67254/Pin/html/.
[21]
E. D. Berger, B. G. Zorn, and K. S. McKinley, "Composing high-performance memory allocators," in ACM SIGPLAN Notices, vol. 36, no. 5. ACM, 2001, pp. 114--124.
[22]
E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design Patterns. Elements of Reusable Object-Oriented Software. Addison-Wesley, 1997.
[23]
C. Fraley and A. E. Raftery, "How many clusters? which clustering method? answers via model-based cluster analysis," The computer journal, vol. 41, no. 8, pp. 578--588, 1998.
[24]
C. A. Sugar and G. M. James, "Finding the number of clusters in a dataset," Journal of the American Statistical Association, vol. 98, no. 463, 2003.
[25]
V. J. Hodge and J. Austin, "A survey of outlier detection methodologies," Artificial Intelligence Review, vol. 22, no. 2, pp. 85--126, 2004.
[26]
C. Leys, C. Ley, O. Klein, P. Bernard, and L. Licata, "Detecting outliers: do not use standard deviation around the mean, use absolute deviation around the median," Journal of Experimental Social Psychology, vol. 49, no. 4, pp. 764--766, 2013.
[27]
M. Imran and H. Hlavacs, "Provenance in the cloud: Why and how," in The Third International Conference on Cloud Computing, GRIDs, and Virtualization, 2012, pp. 106--112.
[28]
M. Cooperation, "Northwind database," https://northwinddatabase.codeplex.com/.
[29]
SQLite, "Release History," http://www.sqlite.org/changes.html.
[30]
S. Salvador and P. Chan, "Determining the number of clusters/segments in hierarchical clustering/segmentation algorithms," in Tools with Artificial Intelligence, 2004. ICTAI 2004. 16th IEEE International Conference on. IEEE, 2004, pp. 576--584.
[31]
G. R. Luecke, J. Coyle, J. Hoekstra, M. Kraeva, Y. Li, O. Taborskaia, and Y. Wang, "A survey of systems for detecting serial run-time errors," Concurrency and Computation: Practice and Experience, vol. 18, no. 15, pp. 1885--1907, 2006.
[32]
X. Chen, A. Slowinska, and H. Bos, "Who allocated my memory? detecting custom memory allocators in c binaries," in Reverse Engineering (WCRE), 2013 20th Working Conference on. IEEE, 2013, pp. 22--31.
[33]
L. Fang, L. Dou, and G. Xu, "Perfblower: Quickly detecting memory-related performance problems via amplification."
[34]
M. Attariyan, M. Chow, and J. Flinn, "X-ray: automating root-cause diagnosis of performance anomalies in production software," in Proceedings of the 10th USENIX conference on Operating Systems Design and Implementation. USENIX Association, 2012, pp. 307--320.
[35]
A. Menon, J. R. Santos, Y. Turner, G. J. Janakiraman, and W. Zwaenepoel, "Diagnosing performance overheads in the xen virtual machine environment," in Proceedings of the 1st ACM/USENIX international conference on Virtual execution environments. ACM, 2005, pp. 13--23.
[36]
M. Hertz, S. M. Blackburn, J. E. B. Moss, K. S. McKinley, and D. Stefanović, "Generating object lifetime traces with merlin," ACM Transactions on Programming Languages and Systems (TOPLAS), vol. 28, no. 3, pp. 476--516, 2006.

Cited By

View all
  • (2024)A rule-based approach for the identification of quality improvement opportunities in GRL modelsSoftware Quality Journal10.1007/s11219-024-09679-z32:3(1007-1037)Online publication date: 6-Jun-2024
  • (2021)Guided ExplorationProceedings of the ACM on Human-Computer Interaction10.1145/34617315:EICS(1-34)Online publication date: 29-May-2021
  • (2021)Real-time Detection of the More is Less Performance Anti-Pattern in MySQL Databases2021 IEEE 24th International Symposium on Real-Time Distributed Computing (ISORC)10.1109/ISORC52013.2021.00020(71-78)Online publication date: Jun-2021
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
ICPE '16: Proceedings of the 7th ACM/SPEC on International Conference on Performance Engineering
March 2016
346 pages
ISBN:9781450340809
DOI:10.1145/2851553
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 ACM 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: 12 March 2016

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. detection
  2. dynamic binary instrumentation
  3. excessive dynamic memory allocation
  4. software performance anti-pattern

Qualifiers

  • Research-article

Conference

ICPE'16

Acceptance Rates

ICPE '16 Paper Acceptance Rate 23 of 74 submissions, 31%;
Overall Acceptance Rate 252 of 851 submissions, 30%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)23
  • Downloads (Last 6 weeks)3
Reflects downloads up to 30 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2024)A rule-based approach for the identification of quality improvement opportunities in GRL modelsSoftware Quality Journal10.1007/s11219-024-09679-z32:3(1007-1037)Online publication date: 6-Jun-2024
  • (2021)Guided ExplorationProceedings of the ACM on Human-Computer Interaction10.1145/34617315:EICS(1-34)Online publication date: 29-May-2021
  • (2021)Real-time Detection of the More is Less Performance Anti-Pattern in MySQL Databases2021 IEEE 24th International Symposium on Real-Time Distributed Computing (ISORC)10.1109/ISORC52013.2021.00020(71-78)Online publication date: Jun-2021
  • (2020)Memory Cities: Visualizing Heap Memory Evolution Using the Software City Metaphor2020 Working Conference on Software Visualization (VISSOFT)10.1109/VISSOFT51673.2020.00017(110-121)Online publication date: Sep-2020
  • (2019)Detection of suspicious time windows in memory monitoringProceedings of the 16th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes10.1145/3357390.3361025(95-104)Online publication date: 21-Oct-2019
  • (2017)User-centered Offline Analysis of Memory Monitoring DataProceedings of the 8th ACM/SPEC on International Conference on Performance Engineering10.1145/3030207.3030236(357-360)Online publication date: 17-Apr-2017

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