A Performance Testing Tool for Source Code

Article Preview

Abstract:

With the rapid development of the information age, computer software develops toward systematization and complication. In application areas such as commerce, finance and medical treatment,the performance of software is attracting more and more attention which even becomes one of the important factors to determine whether users are willing to use a piece of software. Currently, static checking tools are mostly designed to check the code errors but pay little attention to the performance problems. In order to detect the defects in source code that may cause performance problems, this paper designs and achieves a performance testing tool based on static analysis method. The experiments of detecting several open source projects using our testing tool demonstrate that it can quickly find the defects in source code with high accuracy rate. The result of defection removing shows that it can significantly reduce the memory consumption of software, and it can effectively improve software performance.

You might also be interested in these eBooks

Info:

Periodical:

Pages:

1553-1559

Citation:

Online since:

January 2014

Authors:

Export:

Price:

[1] Mei Hong, Shen Jun-Rong. Progress of Research on Software Architecture[J]. Journal of Software. 2006, 17(6): 1257-1275.

Google Scholar

[2] Bodden E, Hendren L, Lhoták O. A staged static program analysis to improve the performance of runtime monitoring[J]. ECOOP 2007–Object-Oriented Programming, 2007: 525-549.

DOI: 10.1007/978-3-540-73589-2_25

Google Scholar

[3] Krintz C. Coupling on-line and off-line profile information to improve program performance[C]. Code Generation and Optimization, 2003. CGO 2003. International Symposium on. IEEE, 2003: 69-78.

DOI: 10.1109/cgo.2003.1191534

Google Scholar

[4] Whitacre C, Royall M, Olsen T D, et al. Program performance management system: U.S. Patent Application 10/624, 283[P]. 2003-7-22.

Google Scholar

[5] Dwyer J J M, Makin S. Using a program logic model that focuses on performance measurement to develop a program[J]. Canadian Journal of Public Health, 1997, 88(6): 421-425.

DOI: 10.1007/bf03403919

Google Scholar

[6] Jones, Capers, Christof, Ebert. Embedded Software: Facts, Figures, and Future[C], IEEE Computer Society. 2009, 42(4): 42-52.

DOI: 10.1109/mc.2009.118

Google Scholar

[7] Kolawa, Adam, Huizinga, Dorota. Automated Defect Prevention: Best Practices in Software Management[M]. New Jersey: Wiley-IEEE Computer Society Press. 2007: 260.

DOI: 10.1002/9780470165171

Google Scholar

[8] C. Cadar, P. Godefroid, S. Khurshid et al. Symbolic execution for software testing in practice: preliminary assessment[C]. 33rd International Conference on Software Engineering (ICSE 2011), London, 2011: 1066-1071.

DOI: 10.1145/1985793.1985995

Google Scholar

[9] Flemming Nielson, Hanne R. Nielson, Chris Hankin. Principles of program analysis[M]. 2nd. Germany: Springer, 2004: 2-4.

Google Scholar

[10] B. A. Wichmann, A. A. Canning, D. L. Clutterbuck et al. Industrial Perspective on Static Analysis[J]. Software Engineering Journal. Mar. 1995: 69-75.

Google Scholar

[11] Caitlin R. Orr, Arun Chauhan, Minaxi Gupta et al. An approach for identifying JavaScript-loaded advertisements through static program analysis[C]. Proceedings of the 2012 ACM workshop on Privacy in the electronic society, New York, 2012: 1-12.

DOI: 10.1145/2381966.2381968

Google Scholar

[12] Corina S. Păsăreanu, Neha Rungta, Willem Visser. Symbolic execution with mixed concrete-symbolic solving[C]. Proceedings of the 2011 International Symposium on Software Testing and Analysis, New York, 2011: 34-44.

DOI: 10.1145/2001420.2001425

Google Scholar

[13] Hiroki Murata, Hiroki Murata, Cong Guojing et al. A static analysis tool using a three-step approach for data races in HPC programs[C]. Proceedings of the 2012 Workshop on Parallel and Distributed Systems: Testing, Analysis, and Debugging. 2012: 11-17.

DOI: 10.1145/2338967.2336809

Google Scholar

[14] Marc A. de Kruijf, Karthikeyan Sankaralingam, Somesh Jha. Static analysis and compiler design for idempotent processing[C]. ACM SIGPLAN Notices - PLDI '12, New York, 2012: 475-486.

DOI: 10.1145/2345156.2254120

Google Scholar

[15] Dirk Beyer, M. Erkan Keremoglu. Computer Aided Verification[M]. UT: Springer, 2011: 184-190.

Google Scholar

[16] Stephen Prata. C++ Primer puls[M]. 6th. Indianapolis: Pearson. 2011: 466.

Google Scholar