Detailed Action
1. The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA . This is the initial office action based on the application filed on September 3rd, 2024, which claims 1-9 have been presented for examination.
Status of Claims
2. Claims 1-9 are pending in the application, of which claims 1, 8 and 9 are in independent form and these claims (1-9) are subject to following rejection(s) and/or objection(s) set forth in the following Office Action below.
Claim Rejections – 35 USC §103
3. The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102 of this title, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
4. Claims 1-9 are rejected under 35 U.S.C. 103 as being unpatentable over Lafreniere et al. (US Patent Application Publication No. 2013/0067441 A1 -herein after Lafreniere) in view of Esliger et al. (US Patent Application Publication No. 2017/0024191 A1 herein after Esliger).
Per claim 1:
Lafreniere discloses:
A method for predicting performance of a software program (At least see Abstract: Methods, systems, and computer program products are provided for profiling source code to enable improved source code execution), comprising the following steps:
profiling the software program, wherein the software program is provided as a bytecode representation (At least see ¶[0007] parsed source code is converted to bytecode; [thus, bytecode is representation of software code] -emphasis added), wherein the profiling is performed during execution of the software program, in order to provide an execution property of the software program (At least see ¶[0006] -runtime engine may use an interpreter to execute the script. Profile information regarding the script is collected by the interpreter during execution of the script).
Lafreniere sufficiently discloses the method as set forth above including “a runtime engine (such as runtime engine 202 of FIG. 2) is configured to collect profile information regarding a script being executed, and to use the profile information to improve script execution performance”(see ¶[0049]), but Lafreniere does not explicitly disclose: profiling a runtime on a target device, wherein the profiling is performed while executing at least one test program on the runtime of the target device, in order to provide a runtime property of the target device; predicting the performance of an execution of the software program on the target device based on the execution property of the software program and the runtime property of the target device.
However, Esliger discloses;
profiling a runtime on a target device, wherein the profiling is performed while executing at least one test program on the runtime of the target device, in order to provide a runtime property of the target device (At least see ¶[0005] - profile instrumented application is executed on a target device that includes a SoC (such as a portable computing device) using one or more workload datasets representative of probable or critical workloads for the target device; also see ¶[0053]);
predicting the performance of an execution of the software program on the target device based on the execution property of the software program and the runtime property of the target device (At least see ¶[0036] - knowledge of past behavior of an application to predict future needs of the application, embodiments of a PRAC solution also look to the profile dataset 27 to make proactive decisions regarding resource allocations and settings based on known, or highly probable, upcoming requirements).
It would have been obvious to one ordinary skill in the art before the effective filing date of the claimed invention to incorporate Esliger into Lafreniere’s invention because PRAC solution advantageously leverage a-posteriori gathered data in a profile data set to make efficient a-priori decisions regarding workload allocations and resource settings during execution of an application, and subsequent executions of application using the profile dataset as a guide for anticipating and efficiently fulfilling the demands of the application may be monitored by profiler tool and used to update and refine profile dataset (please see ¶[0034] and ¶[0062]).
Per claim 2:
Lafreniere discloses:
compiling the software program into the bytecode representation (At least see ¶[0008] -bytecode portion may be just-in-time (JIT) compiled into a compiled bytecode portion);
compiling the bytecode representation as a pre-compilation, in order to make the bytecode representation executable on the target device (At least see ¶[0009] - compiled bytecode portion may be executed instead of interpreting the received bytecode portion if the at least one condition check passes).
Per claim 3:
Esliger also discloses:
executing the at least one bytecode instruction at a point in time in order to analyze and describe the bytecode representation at least in terms of a frequency of the at least one bytecode instruction and a pattern of memory accesses of the at least one bytecode instruction, in order to provide the execution property of the software program (At least see ¶[0021] - call path info, number of threads, thread profiles, memory access patterns, cache usage; ¶[0023] - Profile data may be, but is not limited … frequency and duration of function calls by the program (execution of the program)),
wherein the analyzing and describing of the bytecode representation are performed based on bytecode operation code sequences of the at least one bytecode instruction, wherein an estimated execution frequency and an estimated pattern of memory accesses are provided for each bytecode operation code sequence (At least see At least see ¶[0021] - call path info, number of threads, thread profiles, memory access patterns, cache usage; ¶[0023] - Profile data may be, but is not limited … frequency and duration of function calls by the program (execution of the program) emphasis added]).
It would have been obvious to one ordinary skill in the art before the effective filing date of the claimed invention to incorporate Esliger into Lafreniere’s invention because PRAC solution advantageously leverage a-posteriori gathered data in a profile data set to make efficient a-priori decisions regarding workload allocations and resource settings during execution of an application, and subsequent executions of application using the profile dataset as a guide for anticipating and efficiently fulfilling the demands of the application may be monitored by profiler tool and used to update and refine profile dataset (please see ¶[0034] and ¶[0062]).
Per claim 4:
Esliger also discloses:
prediction of the performance includes a prediction of at least one of the following:
an execution time of the execution of the software program on the target device,
an energy consumption of the execution of the software program on the target device (At least see ¶[0019] - resource may be configured to provide different levels of performance or capacity at the expense of power consumption, thermal energy generation),
a memory usage of the execution of the software program on the target device,
a network usage of the execution of the software program on the target device.
It would have been obvious to one ordinary skill in the art before the effective filing date of the claimed invention to incorporate Esliger into Lafreniere’s invention because PRAC solution advantageously leverage a-posteriori gathered data in a profile data set to make efficient a-priori decisions regarding workload allocations and resource settings during execution of an application, and subsequent executions of application using the profile dataset as a guide for anticipating and efficiently fulfilling the demands of the application may be monitored by profiler tool and used to update and refine profile dataset (please see ¶[0034] and ¶[0062]).
Per claim 5:
Lafreniere discloses:
detecting data about the execution of the at least one test program during its execution, wherein the data include sections of different instruction patterns of the at least one test program (At least see ¶[0036] - a sufficient amount of profile data regarding the script is gathered, the data may be used by the compiler to generate a better optimized machine code specific to the execution pattern recorded in the profile data),
analyzing the sections of the different instruction patterns at least in terms of their execution time, in order to provide the runtime property based on the analyzed sections of the detected data (At least see ¶[0066] - analyze bytecode 324 for patterns that occur multiple times, and to generate statistics and/or other historical information regarding the patterns; ¶[0067] - code profiler 502 may indicate an identifier or a name of the function (in bytecode or other form) in association with a number of times the function is performed during execution of bytecode).
Per claim 6:
Esliger also discloses:
profiling of the software program includes providing a range of at least two different inputs, in order to ensure that at least two different paths of the software program are exercised comprehensively (At least see ¶[0021] - a profile dataset may describe for a given application what functions are called the most, hot paths, block counts for LLVM blocks, call path info, number of threads, thread profiles, memory access patterns, cache usage).
It would have been obvious to one ordinary skill in the art before the effective filing date of the claimed invention to incorporate Esliger into Lafreniere’s invention because PRAC solution advantageously leverage a-posteriori gathered data in a profile data set to make efficient a-priori decisions regarding workload allocations and resource settings during execution of an application, and subsequent executions of application using the profile dataset as a guide for anticipating and efficiently fulfilling the demands of the application may be monitored by profiler tool and used to update and refine profile dataset (please see ¶[0034] and ¶[0062]).
Per claim 7:
Lafreniere discloses:
at least two software programs and/or a runtime of at least two target devices are profiled, wherein the performance is predicted based on an execution property of the at least two software programs and/or a runtime property of the at least two target devices, in order to, in each case, provide the performance prediction as a function of the at least two software programs and/or the runtimes of the at least two target devices (At least see ¶[0066] - analyze bytecode 324 for patterns that occur multiple times, and to generate statistics and/or other historical information regarding the patterns, which is included in profile information 320. The historical pattern information may be used to detect the presence of frequently executed functions ("hotspots"), loop bodies, helper calls, property accesses, etc., in bytecode 324. By indicating the presence of such patterns, the historical pattern information may be used to more efficiently execute source code 208, such as by enabling machine code to be generated for commonly occurring patterns).
Per claim 8:
Limitation rendered in this claim is as similar as claim 1 above; and therefore, rejected based on same rational.
Per claim 9:
Limitation rendered in this claim is as similar as claim 1 above; and therefore, rejected based on same rational.
CONCLUSION
5. Any inquiry concerning this communication or earlier communications from the examiner should be directed to ZIAUL A. CHOWDHURY whose telephone number is (571)270-7750. The examiner can normally be reached on 9:30PM 6:30PM Monday -Friday.
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, Hyung S. Sough can be reached on 571-272-6799. The fax phone number for the organization where this application or proceeding is assigned is 571-273-8300.
Status information for published applications may be obtained from Patent Public Search tool (for all users) – A link to the Patent Public Search Tool is available at www. Uspto.gov/PatentPublicSearch. To find a U.S. patent or U.S. patent application publication, open the Patent Public Search tool by selecting “Start search”. Type the U.S. patent or U.S. patent application publication number in the “Search” panel without any punctuation and followed by an”.pn.”.
Should you have questions on access to the system, contact the Electronic Business Center (EBC) at 866-217-9197 (toll-free). If you would like assistance from a USPTO Customer Service Representative or access to the automated information system, call 800-786-9199 (IN USA OR CANADA) or 571-272-1000.
/ZIAUL A CHOWDHURY/ Primary Examiner, Art Unit 2192
08/07/2026