Static Profiling of Assembly Code Performance and Optimization Effectiveness using Instructions Performed and Program Latency
Jonathan Paul C. Cempron1, Chudrack Shalym Y. Salinas2, Roger Luis Uy3

1Jonathan Paul C. Cempron, Department of Computer Technology, College of Computer Studies, De La Salle University, Manila, Philippines.
2Chudrack Shalym Y. Salinas, Department of Computer Technology, College of Computer Studies, De La Salle University, Manila, Philippines.
3Roger Luis Uy, Department of Computer Technology, College of Computer Studies, De La Salle University, Manila, Philippines.
Manuscript received on 21 August 2019 | Revised Manuscript received on 11 September 2019 | Manuscript Published on 17 September 2019 | PP: 1463-1468 | Volume-8 Issue-2S8 August 2019 | Retrieval Number: B10830882S819/2019©BEIESP | DOI: 10.35940/ijrte.B1083.0882S819
Open Access | Editorial and Publishing Policies | Cite | Mendeley | Indexing and Abstracting
© The Authors. Blue Eyes Intelligence Engineering and Sciences Publication (BEIESP). This is an open access article under the CC-BY-NC-ND license (http://creativecommons.org/licenses/by-nc-nd/4.0/)

Abstract: Software program optimization for improved execution speed can be achieved through modifying the program. Programs are usually written in high level languages then translated into low level assembly language. More coverage of optimization and performance analysis can be performed on low level than high level language. Optimization improvement is measured in the difference in program execution performance. Several methods are available for measuring program performance are classified into static approaches and dynamic approaches. This paper presents an alternative method of more accurately measuring code performance statically than commonly used code analysis metrics. New metrics proposed are designed to expose effectiveness of optimization performed on code, specifically unroll optimizations. An optimization method, loop unroll is used to demonstrate the effectiveness of the increased accuracy of the proposed metric. The results of the study show that measuring Instructions Performed and Instruction Latency is a more accurate static metric than Instruction Count and subsequently those based on it.
Keywords: Assembly Programming, Code Profiling, Performance Metrics. Instruction Set Architecture, Loop Unroll, Vectorization, Compiler, Software Optimization, Time Complexity.
Scope of the Article: Discrete Optimization