Hybrid instrumentation framework for multicore low power processors
US-10503626-B2 · Dec 10, 2019 · US
US10649749B1 · US · B1
| Field | Value |
|---|---|
| Publication number | US-10649749-B1 |
| Application number | US-201816019384-A |
| Country | US |
| Kind code | B1 |
| Filing date | Jun 26, 2018 |
| Priority date | Jun 26, 2018 |
| Publication date | May 12, 2020 |
| Grant date | May 12, 2020 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Systems and methods are described for enabling cross-environment application of tracing information for code, such as code executed within an on-demand (or “serverless”) code execution system. Various optimizations exist that allow execution of code to proceed faster or more efficiently over time, by collecting tracing information regarding the execution and using that tracing information to guide compilation of the code. These optimizations are typically designed for long-lived environments. However, executions within an on-demand code execution system often occur in short-lived environments, reducing or eliminating any gains from these optimizations. To address this issue, tracing information can be maintained across multiple environments on the system, allowing subsequent executions to be optimized based on tracing information of prior executions in other environments.
Opening claim text (preview).
What is claimed is: 1. A system to implement cross-environment application of tracing information for a task on an on-demand code execution system, wherein the task corresponds to code executable to implement the task, the system comprising: a physical data store storing the code for the task; one or more computing devices implementing a first execution environment on the on-demand code execution system, the one or more computing devices implementing the first execution environment configured to: initiate a first execution of the code within the first execution environment; trace the first execution of the code to generate tracing information for the first execution, the tracing information reflecting at least an execution path for the first execution; and store the tracing information for the first execution; and one or more computing devices implementing a second execution environment on the on-demand code execution system that is different from the first execution environment, the one or more computing devices implementing the second execution environment configured to: provision the second execution environment with the tracing information for the first execution within the first execution environment; and initiate a second execution of the code within the second execution environment, wherein the second execution utilizes a tracing just-in-time (HT) compiler, operating to compile portions of the code selected based at least partly on the tracing information for the first execution within the first execution environment, to reference the tracing information of the first execution environment for the second execution. 2. The system of claim 1 , wherein the one or more computing devices implementing the second execution environment are further configured to trace the second execution of the code to generate tracing information for the second execution, and wherein the system further comprises: one or more computing devices implementing a third execution environment on the on-demand code execution system, the one or more computing devices implementing the third execution environment configured to: provision the third execution environment with the tracing information for the second execution within the second execution environment; and initiate a third execution of the code within the third execution environment, wherein the third execution utilizes a tracing just-in-time (JIT) compiler of the third environment operating to compile portions of the code selected based at least partly on the tracing information for the second execution within the second execution environment. 3. The system of claim 1 , wherein the one or more computing devices implementing the first execution environment are further configured to compile the code based at least partly on the tracing information for the first execution to result in machine code, and wherein the second execution of the code relies at least in part on execution of the machine code. 4. The system of claim 1 further comprising one or more computing devices implementing an ahead-of-time (AOT) compiler, wherein the one or more computing devices implementing the AOT compiler are configured to generate machine code for the code based at least partly on the tracing information, and wherein the second execution of the code relies at least in part on execution of the machine code. 5. The system of claim 1 , wherein the one or more computing devices implementing the first execution environment and the one or more computing devices implementing the second execution environment are the same one or more computing devices. 6. A computer-implemented method comprising: within a first execution environment on an on-demand code execution system: initiating a first execution of code within the first execution environment; tracing the first execution of the code to generate tracing information for the first execution, the tracing information reflecting at least an execution path for the first execution; and storing the tracing information for the first execution; provisioning a second execution environment on the on-demand code execution system with the tracing information for the first execution within the first execution environment, the second execution environment being different from the first execution environment; and initiating a second execution of the code within the second execution environment on the on-demand code execution system, wherein the second execution utilizes a tracing just-in-time (JIT) compiler, operating to compile portions of the code selected based at least partly on the tracing information for the first execution within the first execution environment, to reference the tracing information of the first execution environment for the second execution. 7. The computer-implemented method of claim 6 , wherein the first execution environment corresponds to at least one of a software container or a virtual machine instance. 8. The computer-implemented method of claim 6 , wherein the on-demand code execution system is configured to generate the first execution environment in response to a request to execute the code and to deconstruct the first execution environment after the first execution completes. 9. The computer-implemented method of claim 6 , wherein tracing the first execution of the code comprises implementing the tracing JIT compiler within the first execution environment. 10. The computer-implemented method of claim 6 further comprising: generating, based at least partly on the tracing information, machine code; and provisioning the second execution environment with the machine code; wherein the second execution is implemented at least partly based on the machine code. 11. The computer-implemented method of claim 10 , wherein the machine code is generated via the tracing JIT compiler operating within the first execution environment. 12. The computer-implemented method of claim 10 , wherein the machine code is generated via an AOT compiler operating outside the first execution environment. 13. The computer-implemented method of claim 6 further comprising provisioning the first execution environment with tracing information reflecting an execution path during at least one prior execution of the code. 14. The computer-implemented method of claim 6 further comprising provisioning the second execution environment with tracing information for an additional execution of the code that occurred at least partially concurrently with the first execution. 15. Non-transitory computer-readable media comprising instructions executable by a computing system to: initiate a first execution of code within a first execution environment on an on-demand code execution system; trace the first execution of the code to generate tracing information for the first execution within the first execution environment, the tracing information reflecting at least an execution path for the first execution; and store optimization information for the code generated based at least partly on the tracing information for first execution, wherein the optimization information includes at least one of the tracing information or machine code generated by compiling the code based at least partly on the tracing information; provision a second execution environment on the on-demand code execution system with the optimization information generated based at least partly on the tracing information for the first execution within the first execution environment, the second execution environment being different from the first execution environment; and execute the code within the second
Involving translation to a different instruction set architecture, e.g. just-in-time translation in a JVM · CPC title
Optimisation · CPC title
by tracing the execution of the program · CPC title
Performance evaluation by tracing or monitoring · CPC title
of optimised code (optimisation G06F8/443) · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.