| In recent years, with the rapid development of Internet and Information technology,an increasingly large number of software have deployed modern software designtechnologies such as object-oriented programming language and the dynamic linkedlibrary, as a result, run-time binding that comes with it greatly narrow the range oftraditional static compiler optimization, confining the static compiler optimization onlyto programs that are statically bound. In addition, the prevalent of legacy code makesstatic compiler optimization mechanism quite complex as a traditional performancedelivery mechanisms, increasing the burden of modern processors. All these problemscan be alleviated to some extend by dynamic binary optimization.Dynamic binary optimization means to profile applications statistically at run time,and make some optimization based on the information collected in order to improve theoverall performance of the applications. In other words, the dynamic optimization iscapable of transparent optimization and reducing the burden of modern compiler.In this article, we will carry out in-depth analysis of the overhead of sometraditional dynamic optimization systems and dynamic instrumentation tools, andproposal some novel ways to lower the overhead based on our original Multi-coreOriented Dynamic Optimization System, MODBO with the goal to achieve alow-overhead and high-efficient Dynamic Optimization System.Firstly, we will proposal an high-efficient hot spot analysis mechanism, which isable to locate the hot spot as soon as possible with much lower overhead compared withsome traditional dynamic optimization systems such as Dynamo. Also, anotheradvantage of this mechanism lies in its insensitivity to the threshold that is used toidentify hot spot. Furthermore, we present an adaptive dynamic cache managementstrategy. Since different applications have different code footprint, it makes adaptivecache management necessary because it can dynamically adjust the code cache to adaptthe size of the footprint of the applications, so there will not be a waste of space in casethe footprint is too small, neither will there be thrashing because of the quite largeinstruction footprint that exceed the capacity of the code cache. Finally, we proposal akind of indirect linking which aims to reduce the performance loss due to theuncertainty of the indirect jump target. |