发明名称 Using an inline stack to improve performance of an applications binary
摘要 A system and method for using inline stacks to improve the performance of application binaries is included. While executing a first application binary, profile data may be collected about the application that includes which callee functions are called from the application's callsites and the number of times each inline stack is executed. A context summary map may be created from the collected profile data which shows a summary of the total execution count of all instructions in the callee function for each callsite inlined in the application's normal binary. Using the context summary map, each function callsite's execution count may be compared with a predetermined threshold to determine if the function should be inlined. Then the application's profile may be annotated and a second application binary, an optimized binary, may be generated using the annotated profile.
申请公布号 US9009691(B1) 申请公布日期 2015.04.14
申请号 US201313940987 申请日期 2013.07.12
申请人 Google Inc. 发明人 Chen Dehao;Li Xinliang David
分类号 G06F9/45 主分类号 G06F9/45
代理机构 Birch, Stewart, Kolasch & Birch, LLP 代理人 Birch, Stewart, Kolasch & Birch, LLP
主权项 1. A method for improving the performance of an application's binary, the method comprising: while executing a first application binary, collecting profile data about the application that includes a map from at least one inline stack to the inline stack's execution count, wherein an inline stack is a stack of source locations in which the top of the stack is located in a function and at least one other level of the stack is the location of a callsite which is inlined by a compiler in the normal binary; creating a context summary map from the collected profile data which shows a summary of the total execution count of all instructions in the callee function for each callsite inlined in the application binary; using the context summary map to compare each function callsite's execution count with a predetermined threshold; annotating the profile by: traversing the content of each function,for each instruction in the content, determining whether there is an inline stack associated with the instruction, andresponsive to determining that there is not an inline stack associated with the instruction, setting the instruction's execution count in the profile to 0; and generating a second application binary using the annotated profile.
地址 Mountain View CA US