发明名称 Compiler optimization in a computing environment
摘要 A set of techniques is described for enabling profile-driven compiler optimization based on cloud-specific information. A service provider may host applications on behalf of multiple users by providing a set of shared resources in a multi-tenant computing environment, where the resources are shared by the various applications hosted thereon. The service provider can collect runtime conditions, resource contention data and other environment-specific information of the shared resources. This gathered information can be provided a profile-driven compiler. The profile-driven compiler can use the information to recompile the source code of the application to produce an optimized version the application that is specifically tuned to run on the shared resources. The running version of the application can then be replaced by the optimized version.
申请公布号 US9134980(B1) 申请公布日期 2015.09.15
申请号 US201213461058 申请日期 2012.05.01
申请人 Amazon Technologies, Inc. 发明人 Cabrera Luis Felipe;Brandwine Eric Jason;Hamilton James R.;Jenkins Jonathan A.;Klein Matthew D.;Thomas Nathan;Vincent Pradeep
分类号 G06F9/45;G06F12/08 主分类号 G06F9/45
代理机构 Hogan Lovells US LLP 代理人 Hogan Lovells US LLP
主权项 1. A computer implemented method for optimizing compilers, said method comprising: under the control of one or more computer systems configured with executable instructions, executing a user application on behalf of at least one user, the user application being executed using a set of shared resources in a multi-tenant computing environment, the set of shared resources also executing a plurality of other applications on behalf of one or more other users; collecting runtime information for the set of shared resources in the multi-tenant computing environment, the runtime information including at least data associated with a cache that is shared between the user application and at least one of the plurality of other applications, the data indicating that an available amount of cache space of a first cache on a computing device is below a threshold amount of cache space; providing the collected runtime information to a profile-driven compiler; recompiling source code of the user application by the profile-driven compiler based at least in part on the runtime information in order to produce an optimized version of the user application, the optimized version having at least one improved performance parameter when being executed on the set of shared resources, the at least one improved performance parameter including using a second cache with a size less than the first cache; and executing the optimized version of the user application on the set of shared resources in the multi-tenant computing environment.
地址 Reno NV US