Font Size: a A A

Software Performance Defect Discovery Based On Dynamic Symbol Execution Technology

Posted on:2018-12-14Degree:MasterType:Thesis
Country:ChinaCandidate:W Y HuangFull Text:PDF
GTID:2348330515497033Subject:Signal and Information Processing
Abstract/Summary:PDF Full Text Request
With the development of computer technology,a variety of application softwares have been integrated into all aspects of social life,and the scale of the software is also growing,followed by software performance problems have gradually attracted people's attention.Although there has been many software testing methods and tools to ensure the quality of software,people haven't paid enough attention to the performance problem caused by CPU cache misses and branch prediction error.CPU cache misses and branch prediction error will waste CPU cycles and decrease CPU efficiency,furthermore affect software execution time.Modern computer architecture and optimization technology in compiler are mature,but such performance problems can't be eliminated completely.Especially it's almost impossible for coders to develop perfect software without performance problems.Dynamic symbolic execution has received much attention of many researchers in recent years,it uses the symbol value instead of concrete value as the input of program,concrete and symbolic executes the program under testing simultaneously,and collects path constraints along the execution,and then solves the path constraints through constraint solver,finally generates test cases automatically.Dynamic symbolic execution performs excellently in the filed of software testing and vulnerability discovery,but is rarely used for performance analysis and mining bottlenecks.Based on the study of dynamic symbolic execution technology,this thesis designs and implements a dynamic symbolic tool CET,and analyzes software performance through CET from the aspect of CPU cache misses and branch prediction error,and proposes a method called PerfDiscover to discover and locate the performance bottleneck automatically.PerfDiscover attributes the performance loss of every path to the performance loss of each statements in the path,scores each path according to the performance loss increment of paths,and then selects the path that can increment the most performance loss to perform next execution.PerfDiscover can locate the most serious performance bottleneck fast in finite time.In order to verify the effectiveness and efficiency of PerfDiscover,we not only design a series of validation experiments and comparative experiments,but also perform some case studies.The experiments results fully demonstrate our method can find more serious performance bottlenecks in the program under testing.
Keywords/Search Tags:CPU cache misses, branch prediction error, dynamic symbolic execution, performance defect
PDF Full Text Request
Related items