DETAILED ACTION
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
This action is responding to application papers dated 12/15/2023.
Claims 1-18, 23, and 25 are pending in the application.
The information disclosure statement filed on 12/15/2023 has been considered.
Claim Rejections - 35 USC § 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
Claim 25 is rejected under 35 U.S.C. 101 because the claimed invention is directed to non-statutory subject matter. The claim(s) does/do not fall within at least one of the four categories of patent eligible subject matter because the specification does not exclude signals from the “machine-readable storage medium” which is described in paragraph [0218] of the publication. Thus, it does not fit within the definition of the categories of patentable subject matter set forth in § 101. Recitation of non-transitory is recommended.
Claims 13-18 are rejected under 35 U.S.C. 101 because the claimed invention is directed to a judicial exception (i.e., a law of nature, a natural phenomenon, or an abstract idea) without significantly more. Specifically, claims 13-18 are directed to an abstract idea.
Per claim 13, the claim is directed to an idea of itself, mental processes that can be performed in the human mind, or by a human using a pen and paper. The steps of generating one or more profiles, bundling the code with the one or more profiles can be pure mental processes because a developer can build a mental model of a system’s behavior to generate metrics/quantitative data. Bundling can be done by creating a mental map that links specific lines of code to the profiled data. Bundling could be merely associating, mapping, combining, or concatenating, etc. the profiled data with code and can be done by creating a mental map that links specific lines of code to the metrics using a pen and paper through observation, evaluation, judgment, opinion, Under Prong 1.
Under Prong 2, the additional limitations, the steps of obtaining code and providing the code are mere data gathering for the mental steps and outputting the result which are insignificant extra solution activity, using a generic computer component (apparatus comprising interface and processing circuitry) described at a high level of generality for applying or performing the abstract idea and do not indicate any integration of the abstract idea into a practical application as the mental steps are merely applied with a generic computing component(s). See MPEP see MPEP 2106.05(f) /2106.05(h). Therefore, the additional limitations do not integrate the abstract idea into a practical application. If a claim limitation, under its broadest reasonable interpretation, covers performance of the limitation in the mind, but for the recitation of generic computer components or insignificant extra solution activities (e.g. processors, devices, program instructions), then it falls within the "Mental Processes" grouping of abstract ideas (2019 PEG step 2A, Prong 1: Abstract idea grouping? Yes, Mental Process). At most, the steps of obtaining and providing the code are not found to include anything more than what is well-understood, routine, conventional activity in the field. In this case, it is noted that the claimed extra-solution of data gathering and outputting/displaying is acknowledged to be a well-understood, routine, conventional activity court recognized as WURC examples in MPEP 2106.05(d)(ll), for example, data gathering and retrieving, storing data, updating, transmitting, and displaying a result - Symantec, Versata Dev, Content extraction, Electric Power Group). Insignificant extra solution activities or mere instructions to apply an exception using generic computer components cannot provide an inventive concept. Viewing the limitations individually and as a combination, the additional elements merely perform data gathering, outputting/presenting/displaying and perform the mental steps using generic computing components as tools without integrating the abstract idea into a practical application. For at least these reasons, claim 13 is not patent eligible.
Per claims 14-18, these claims are directed to the same idea itself as in claim 13, reciting details of the mental steps (the steps of generating profiles and determining through observation, evaluation, judgment, opinion) without adding any other additional element that is significantly more. Therefore, the claims are rejected for the same reasons as in claim 13.
Claim Rejections - 35 USC § 112
The following is a quotation of 35 U.S.C. 112(b):
(b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention.
The following is a quotation of 35 U.S.C. 112 (pre-AIA ), second paragraph:
The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the applicant regards as his invention.
Claims 6-9 are rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor (or for applications subject to pre-AIA 35 U.S.C. 112, the applicant), regards as the invention.
Per claim 6, it is unclear whether the execution refers to the execution of the code in claim 1. Interpretation: the execution of the code.
Per claim 7: for clarity, “transitions from a steady state” and “during execution of the code” are interpreted as: “transitions from the steady state” and “during the execution of the code” respectively.
Per claim 8, “an execution of the code” is interpreted as the execution of the code.
Per claim 9, this claim is rejected because it depends from claim 8.
Claim Rejections - 35 USC § 102
In the event the determination of the status of the application as subject to AIA 35 U.S.C. 102 and 103 (or as subject to pre-AIA 35 U.S.C. 102 and 103) is incorrect, any correction of the statutory basis (i.e., changing from AIA to pre-AIA ) for the rejection will not be considered a new ground of rejection if the prior art relied upon, and the rationale supporting the rejection, would be the same under either status.
The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action:
A person shall be entitled to a patent unless –
(a)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale, or otherwise available to the public before the effective filing date of the claimed invention.
Claims 1-18, 23, and 25 are rejected under 35 U.S.C. 102(a)(1) as being anticipated by
Brooker et al. (US20200341741, hereafter Brooker).
Per claim 1:
Brooker discloses: an apparatus for executing code written in a dynamic script language, the apparatus comprising interface circuitry and processing circuitry to:
obtain code written in the dynamic script language (Brooker, see at least [0014] source code of the present disclosure may be expressed as Java, JavaScript, Python, or CIL language code; [0019] The on-demand code execution system may include a virtual machine instance manager configured to receive user code; [0006] FIG. 3 is a flow diagram depicting illustrative interactions for collecting trace information during execution of source code within a first execution environment);
obtain one or more profiles for accelerating an execution of the code, the one or more profiles being bundled with the code; and execute the code based on the one or more profiles (Brooker, see at least [0004] an on-demand code execution system can operate to execute tasks corresponding to code, which may be submitted by users of the on-demand code execution system, and to enable cross-environment application of tracing information to improve execution of that code; [0011] tracing information gathered during execution of source code… to be used to more efficiently execute the code in a second execution environment … executing the same source code … generate all tracing information used for code optimization; [0013] a JIT compiler within a first execution environment may operate, during execution of source code, to generate machine code for one or more portions of the source code (e.g., as guided by tracing information gathered within the first execution environment) …. the on-demand code execution system may be configured to ensure that the second environment matches an architecture of the first environment. For example, the on-demand code execution system may ensure that the second environment operates on a common operating system and processor architecture (e.g., as a real physical architecture or virtual architecture) with the first environment; [0059]; [0063]; [0075]; Note that the code is executed based on the optimization information (profiles bundled with the code) utilized across execution environments).
Per claim 2:
Brooker further discloses: The apparatus according to claim 1, wherein the one or more profiles comprise information on variable types of variables being used in the code (Brooker, see at least [0070] Tracing may additionally include information such as type information for data objects whose type is determined at runtime (e.g., dynamically, as opposed to statically, typed objects); Note that the type information for data objects is variable type information that is captured through profiling (tracing information)).
Per claim 3:
Brooker further discloses: The apparatus according to claim 2, wherein the processing circuitry is to execute the code with the variable types specified by the information on the variable types (Brooker, see at least [0070] Tracing may additionally include information such as type information for data objects whose type is determined at runtime (e.g., dynamically, as opposed to statically, typed objects); [0077], multiple types of optimization information for a given task, and the sufficiency of information may depend at least in part on the type of information stored. For example, the acceleration system 160 may store tracing information based at least partly on conditions under which the tracing information was collected; Note that the code is executed with the type information).
4. The apparatus according to claim 1, wherein the one or more profiles comprise metrics on one or more of a likelihood of one or more branches being taken, an approximate number of invocations of a function, a cache miss ratio, and a number of functions being executed, wherein the processing circuitry is to adjust the execution of the code based on the metrics (Brooker, see at least [0070] tracing information monitors an execution path within code, including details such as loops which occur within the code, functions called in the code, the frequency of such loops or calls, and the like. Tracing may additionally include information such as type information for data objects whose type is determined at runtime (e.g., dynamically, as opposed to statically, typed objects); Note that the execution path within code is branch data, loops occurring is hot loop profiling data, functions called is invocation data; [0012] utilize tracing information … reduce the computing resources needed to execute code, as some portion of compilation for the code has already occurred. …thus reducing the need for JIT optimizations within the subsequent execution environments and speeding execution of the code; [0078] the tracing JIT compiler may be enabled to skip or greatly reduce its own tracing step, enabling rapid optimization of JIT compiled code; [0011], “jump starting” operation of a tracing JIT compiler within the other environments. As such, the tracing information may reduce or eliminate the typical JIT warmup period for subsequent environments… within the optimization information data store 168; [0083]. Where sufficient optimization information does not exist, the routine 600 continues to block 606, where execution occurs without the benefit of optimization information (e.g., in a traditional manner) …without requiring that the execution environment in which the code is executed itself generate the optimization information; Note that tracing information directly determines how execution is adjusted at every level, from cold unoptimized interpretation through JIT jump starting to direct machine code execution while new profiles collected enables re-adjusting execution continuously).
5. The apparatus according to claim 1, wherein each profile is associated with a steady state of the execution of the code (Brooker, see at least [0077] The amount of information may be specified; [0080], Because optimization information generally includes “fallback” provisions, such that execution of code can continue even where the optimization information is incorrect; [0083] Thereafter, implementation of the routine 600 varies according to whether sufficient optimization information exists. Where sufficient optimization information does not exist, the routine 600 continues to block 606, where execution occurs without the benefit of optimization information (e.g., in a traditional manner). Alternatively, where sufficient optimization information does exist, the routine 600 continues to block 608, where an execution environment is provisioned with the optimization information…execution of the code is expected to proceed more quickly and/or efficiently, without requiring that the execution environment in which the code is executed itself generate the optimization information; Note that sufficient optimization information existence indicates a steady state while absence of optimization information indicates transition of state, fallback provisions indicate re-initialization, and new sufficient optimization information indicates re-stabilization. The optimization information is collected and accumulates until sufficient data are collected which indicates a steady state is reached for enough observations to trust the information).
6. The apparatus according to claim 5, wherein dynamic aspects of the code are quasi-static during a steady state of the execution of the code, wherein the execution of the code transitions from a steady state to another steady state if a dynamic aspect of the code changes during execution of the code (Brooker, see at least [0068] determining whether sufficient capacity exists to execute the task, queuing the task, determining accounts to which to attribute execution of the task, etc.; [0071] determines that sufficient tracing information has been collected to accurately represent execution of the code. The amount of information to accurately represent code may be established, for example, by a designer of the tracing JIT compiler, or by an administrator of the on-demand code execution system 110. The amount of information may be specified, for example, as a size of the information (e.g., n bytes), a total runtime reflected in the tracing information (e.g., n seconds), an amount of loops monitored within the information (e.g., n loops), a combination thereof, etc.; [0077]; [0080] Because optimization information generally includes “fallback” provisions, such that execution of code can continue even where the optimization information is incorrect (albeit more slowly, as the source code for the task must generally be interpreted for the functions for which the optimization information failed), use of optimization information across versions of the same task would not be expected to inhibit execution of the new version of the task; [0083]; Note that the transition between two sufficient states indicates the quasi-static state where dynamic code behaves as if static when code dynamically changes. The optimization information does not immediately become invalid but rather remains approximately valid during the transition because dynamic changes are relatively infrequent. The fallback provisions handle the small dynamic deviations that do occur while new tracing information accumulates toward a new sufficient state. The code is technically dynamic throughout but the behavior is quasi-static between two sufficient states where dynamic properties change slowly enough that existing profiles remain approximately valid during the transition).
7. The apparatus according to claim 6, wherein the execution of the code transitions from a steady state to another steady state if at least one of a type of a variable, a metric on a likelihood of one or more branches being taken, a metric on an approximate number of invocations of a function, a metric on a cache miss ratio and a metric on a number of functions being executed changes during execution of the code (Brooker, see at least [0070] tracing information monitors an execution path within code, including details such as loops which occur within the code, functions called in the code, the frequency of such loops or calls, and the like. Tracing may additionally include information such as type information for data objects whose type is determined at runtime (e.g., dynamically, as opposed to statically, typed objects); Note that multiple types of optimization information (profiles) per task are maintained and when a transition occurs between sufficient states it queries the profile database to select the best matching profile based on current conditions, parameters, architecture and sufficiency for code execution).
8.The apparatus according to claim 1, wherein the processing circuitry is to obtain a plurality of profiles that are bundled with the code, with each profile being associated with a steady state of an execution of the code (Brooker, see at least [0079] optimization information generated in multiple execution environments may be utilized to enable efficient execution of a task in another environment. The optimization information may be generated at different times, concurrently, or any combination thereof … the acceleration system may aggregate the optimization information from multiple environments … retrieve multiple items of optimization information….a subsequent environment may retrieve and utilize a most recent set of optimization information, as the total amount of optimization information within the acceleration system 160 may be more than is needed to efficiently execute the task. The amount of most recent optimization information may be equal, for example, to the amount of optimization information designated as sufficient to enable efficient execution of the task; [0077]; [0082], Note that the multiple types of optimization information (profiles) per task are maintained and sufficient optimization information existence indicates a steady state while absence of optimization information indicates transition of state, fallback provisions indicate re-initialization, and new sufficient optimization information indicates re-stabilization. The optimization information is collected and accumulates until sufficient data are collected which indicates a steady state is reached for enough observations to trust the information).
9.The apparatus according to claim 8, wherein the processing circuitry is to obtain information on one or more transitions between the steady states of the execution of the code that is bundled with the code, and to select a profile of the plurality of profiles based on the information on the one or more transitions between the steady states of the execution (Brooker, see at least [0079] optimization information generated in multiple execution environments may be utilized to enable efficient execution of a task in another environment. The optimization information may be generated at different times, concurrently, … the acceleration system may aggregate the optimization information from multiple environments … retrieve multiple items of optimization information…. a subsequent environment may retrieve and utilize a most recent set of optimization information, as the total amount of optimization information within the acceleration system 160 may be more than is needed to efficiently execute the task. The amount of most recent optimization information may be equal, for example, to the amount of optimization information designated as sufficient to enable efficient execution of the task; [0077]; [0082], Note that the multiple types of optimization information (profiles) per task are maintained and when a transition occurs between sufficient states (a steady state) it queries the datastore to select the best matching profile based on current conditions, parameters, architecture and sufficiency. The transition information is the selector which determines which profile from the collection best represents the current execution state and should drive the next optimized code execution).
10. The apparatus according to claim 1, wherein the one or more profiles are defined according to a script execution engine-agnostic format (Brooker, see at least [0013] the on-demand code execution system may ensure that the second environment operates on a common operating system and processor architecture (e.g., as a real physical architecture or virtual architecture) with the first environment; [0015] device-independent representation of source code, such as an “intermediate representation” of the source code; [0037] enable cross-environment application of tracing information to improve execution of that code; Note that the source code is represented in a device-independent intermediate format making it agnostic to any specific processor or runtime and the tracing information is collected in a format agnostic to any specific execution environment making them transferable and applicable across environments which enables cross-environment profile application).
11.The apparatus according to claim 1, wherein the processing circuitry is to request the code from a server as a file having a filename, and to request the one or more profiles from the server as a file having a filename that is derived from the filename of the code (Brooker, see at least [0077], store tracing information based at least partly on conditions under which the tracing information was collected (e.g., numbers, types, or values of parameters passed to the task execution). The worker manager 140 may thus determine whether sufficient optimization information is stored within the acceleration system 160 that matches or corresponds to conditions for a current execution (e.g., the same number of parameters, types of parameters, parameter values, combinations thereof, etc.); [0032], a call may identify a previously uploaded task by its name or an identifier; Note that the profile is stored and retrieved using the same identifier as the source code file it was collected from. The profile filename is derived directly from the code filename via task identifier making the correct profile always findable and retrievable whenever the same code executes again regardless of which environment collected it or which environment now needs it).
12.The apparatus according to claim 1, wherein the processing circuitry is to perform profiling during execution of the code to determine one or more further profiles, to merge the one or more profiles with the one or more further profiles, and to execute the codes based on the merged profiles (Brooker, see at least [0085] compilation of source code for the task may be conducted based on the available tracing information, which may include both tracing information collected for a current execution as well as other tracing information provisioned into the environment (e.g., as optimization information generated by virtue of past task executions); [0079] optimization information generated in multiple execution environments may be utilized to enable efficient execution of a task in another environment …aggregate the optimization information from multiple environments …a subsequent environment may retrieve multiple items of optimization information; Note that the acceleration system stores the optimization information for multiple environments separately and a subsequent environment retrieves multiple items of optimization information. The subsequent environment retrieves and utilizes the most recent set of optimization information as the total amount of optimization information within the system is more than needed to efficiently execute the task. Each execution collects further profiles which are merges (continuously and cumulatively) with all prior profiles by the acceleration system into a progressively richer merged profile. The merged profile is then provisioned into subsequent executions driving increasingly optimized performance).
13.An apparatus for providing code of a dynamic scripting language, the apparatus comprising interface circuitry and processing circuitry to: obtain the code written in the dynamic scripting language; generate one or more profiles for accelerating an execution of the code; bundle the code with the one or more profiles; and provide the code bundled with the one or more profiles (Brooker, see at least [0014] source code of the present disclosure may be expressed as Java, JavaScript, Python, or CIL language code; [0019] The on-demand code execution system may include a virtual machine instance manager configured to receive user code; [0006] FIG. 3 is a flow diagram depicting illustrative interactions for collecting trace information during execution of source code within a first execution environment; [0004] an on-demand code execution system can operate to execute tasks corresponding to code, which may be submitted by users of the on-demand code execution system, and to enable cross-environment application of tracing information to improve execution of that code; [0011] tracing information gathered during execution of source code… to be used to more efficiently execute the code in a second execution environment … executing the same source code … generate all tracing information used for code optimization; [0013] a JIT compiler within a first execution environment may operate, during execution of source code, to generate machine code for one or more portions of the source code (e.g., as guided by tracing information gathered within the first execution environment) …. the on-demand code execution system may be configured to ensure that the second environment matches an architecture of the first environment. For example, the on-demand code execution system may ensure that the second environment operates on a common operating system and processor architecture (e.g., as a real physical architecture or virtual architecture) with the first environment; [0059]; [0063]; [0075]; [0007], submitting that machine code to the acceleration system; Note that the code is executed based on the optimization information (profiles bundled with the code) utilized across execution environments).
14.The apparatus according to claim 13, wherein the processing circuitry is to generate the one or more profiles by executing the code (Brooker, see at least [0016]; [0059]; [0069] during execution of the task, to trace that execution and generate tracing information therefrom).
15. The apparatus according to claim 13, wherein the one or more profiles comprise profiling data with respect to dynamic aspects of the code (Brooker, see at least [0014] source code of the present disclosure may be expressed as Java, JavaScript, Python, or CIL language code; [0019] The on-demand code execution system may include a virtual machine instance manager configured to receive user code; [0006] FIG. 3 is a flow diagram depicting illustrative interactions for collecting trace information during execution of source code within a first execution environment; [0070], Tracing may additionally include information such as type information for data objects whose type is determined at runtime (e.g., dynamically, as opposed to statically, typed objects).
16.The apparatus according to claim 13, wherein the processing circuitry is to determine variable types of variables being used, and to include information on the variable types of the variables being used in the code in the one or more profiles (Brooker, see at least [0070] Tracing may additionally include information such as type information for data objects whose type is determined at runtime (e.g., dynamically, as opposed to statically, typed objects); Note that the type information for data objects is variable type information that is captured through profiling (tracing information)).
17.The apparatus according to claim 13, wherein the processing circuitry is to determine metrics on one or more of a likelihood of one or more branches being taken, an approximate number of invocations of a function, a cache miss ratio, and a number of functions being executed, and to include the metrics in the one or more profiles (Brooker, see at least [0070] tracing information monitors an execution path within code, including details such as loops which occur within the code, functions called in the code, the frequency of such loops or calls, and the like. Tracing may additionally include information such as type information for data objects whose type is determined at runtime (e.g., dynamically, as opposed to statically, typed objects); Note that the execution path within code is branch data, loops occurring is hot loop profiling data, functions called is invocation data; [0012] utilize tracing information … reduce the computing resources needed to execute code, as some portion of compilation for the code has already occurred. …thus reducing the need for JIT optimizations within the subsequent execution environments and speeding execution of the code; [0078] the tracing JIT compiler may be enabled to skip or greatly reduce its own tracing step, enabling rapid optimization of JIT compiled code; [0011], “jump starting” operation of a tracing JIT compiler within the other environments. As such, the tracing information may reduce or eliminate the typical JIT warmup period for subsequent environments… within the optimization information data store 168; [0083]. Where sufficient optimization information does not exist, the routine 600 continues to block 606, where execution occurs without the benefit of optimization information (e.g., in a traditional manner) …without requiring that the execution environment in which the code is executed itself generate the optimization information; Note that tracing information directly determines how execution is adjusted at every level, from cold unoptimized interpretation through JIT jump starting to direct machine code execution while new profiles collected enables re-adjusting execution continuously).
18.The apparatus according to claim 13, wherein the processing circuitry is determine one or more steady states during the execution of the code, and to generate the one or more profiles based on the one or more steady states, so that each profile is associated with a steady state of the execution of the code (Brooker, see at least [0077] The amount of information may be specified; [0080], Because optimization information generally includes “fallback” provisions, such that execution of code can continue even where the optimization information is incorrect; [0083] Thereafter, implementation of the routine 600 varies according to whether sufficient optimization information exists. Where sufficient optimization information does not exist, the routine 600 continues to block 606, where execution occurs without the benefit of optimization information (e.g., in a traditional manner). Alternatively, where sufficient optimization information does exist, the routine 600 continues to block 608, where an execution environment is provisioned with the optimization information…execution of the code is expected to proceed more quickly and/or efficiently, without requiring that the execution environment in which the code is executed itself generate the optimization information; Note that sufficient optimization information existence indicates a steady state while absence of optimization information indicates transition of state, fallback provisions indicate re-initialization, and new sufficient optimization information indicates re-stabilization. The optimization information is collected and accumulates until sufficient data are collected which indicates a steady state is reached for enough observations to trust the information).
Per claim 23:
Brooker discloses: A method for executing code written in a dynamic script language, the method comprising: obtaining code written in the dynamic script language; obtaining one or more profiles for accelerating an execution of the code, the one or more profiles being bundled with the code; and executing the code based on the one or more profiles (Brooker, see at least [0014] source code of the present disclosure may be expressed as Java, JavaScript, Python, or CIL language code; [0019] The on-demand code execution system may include a virtual machine instance manager configured to receive user code; [0006] FIG. 3 is a flow diagram depicting illustrative interactions for collecting trace information during execution of source code within a first execution environment; [0004] an on-demand code execution system can operate to execute tasks corresponding to code, which may be submitted by users of the on-demand code execution system, and to enable cross-environment application of tracing information to improve execution of that code; [0011] tracing information gathered during execution of source code… to be used to more efficiently execute the code in a second execution environment … executing the same source code … generate all tracing information used for code optimization; [0013] a JIT compiler within a first execution environment may operate, during execution of source code, to generate machine code for one or more portions of the source code (e.g., as guided by tracing information gathered within the first execution environment) …. the on-demand code execution system may be configured to ensure that the second environment matches an architecture of the first environment. For example, the on-demand code execution system may ensure that the second environment operates on a common operating system and processor architecture (e.g., as a real physical architecture or virtual architecture) with the first environment; [0059]; [0063]; [0075]; [0007], submitting that machine code to the acceleration system; Note that the code is executed based on the optimization information (profiles bundled with the code) utilized across execution environments).
Per claim 25, this is a medium version of claim 23, therefore it is rejected for the same reasons set forth in connection with the rejection of claim 23 above.
Examiner’s Note
The Examiner has pointed out particular references contained in the prior art of record within the body of this action for the convenience of the Applicant. Although the specified citations are representative of the teachings in the art and are applied to the specific limitations within the individual claim, other passages and figures may apply. Applicant, in preparing the response, should consider fully the entire reference as potentially teaching all or part of the claimed invention, as well as the context of the passage as taught by the prior art or disclosed by the Examiner.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
US9251071 is closely related to embedding profiling data in code for accelerating code execution for a dynamic scripting language;
US20190146766 is related to compilation optimization with profiling
US 20190187979 is related to dynamic accelerator and profiler to enhance runtime performance;
US 20190043457 is related to generating dynamic trace data of binary code running on one or more execution units of a Graphics Processing Unit (GPU) though binary instrumentation;
CN 103064720 is related to profile guide for JIT code.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to INSUN KANG whose telephone number is (571)272-3724. The examiner can normally be reached M-TR 9am-5pm.
Examiner interviews are available via telephone, in-person, and video conferencing using a USPTO supplied web-based collaboration tool. To schedule an interview, applicant is encouraged to use the USPTO Automated Interview Request (AIR) at http://www.uspto.gov/interviewpractice.
If attempts to reach the examiner by telephone are unsuccessful, the examiner’s supervisor, Chat Do can be reached at 571-272-3721. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Information regarding the status of published or unpublished applications may be obtained from Patent Center. Unpublished application information in Patent Center is available to registered users. To file and manage patent submissions in Patent Center, visit: https://patentcenter.uspto.gov. Visit https://www.uspto.gov/patents/apply/patent-center for more information about Patent Center and https://www.uspto.gov/patents/docx for information about filing in DOCX format. For additional questions, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/INSUN KANG/Primary Examiner, Art Unit 2193