US 11,748,072 B2
Apparatus and method for source code optimisation
Fabio Cappello, London (GB); Gregory James Bedwell, London (GB); Daryl Cooper, San Jose, CA (US); Timothy Edward Bradley, London (GB); and Guy Moss, London (GB)
Assigned to Sony Interactive Entertainment Inc., Tokyo (JP)
Filed by Sony Interactive Entertainment Inc., Tokyo (JP)
Filed on Dec. 8, 2020, as Appl. No. 17/114,543.
Claims priority of application No. 1918265 (GB), filed on Dec. 12, 2019.
Prior Publication US 2021/0182039 A1, Jun. 17, 2021
Int. Cl. G06F 8/41 (2018.01); G06N 20/00 (2019.01); G06F 8/30 (2018.01); G06F 11/30 (2006.01); G06F 11/34 (2006.01); G06N 5/04 (2023.01)
CPC G06F 8/443 (2013.01) [G06F 8/30 (2013.01); G06F 8/4441 (2013.01); G06F 11/302 (2013.01); G06F 11/3447 (2013.01); G06N 5/04 (2013.01); G06N 20/00 (2019.01)] 14 Claims
OG exemplary drawing
 
1. A method of outputting recommendation information for modifying source code, comprising:
compiling the source code and outputting compiled code for the source code;
executing the compiled code;
monitoring the execution of the compiled code;
generating profile information for the execution of the compiled code, the profile information comprising one or more statistical properties for the execution of the compiled code;
receiving, by a machine learning model trained to output the recommendation information for the source code in dependence upon one or more of the statistical properties, at least a portion of the profile information; and
outputting the recommendation information for the source code, the recommendation information comprising one or more editing instructions for modifying the source code, wherein:
the machine learning model is trained to learn a correlation between a change in at least a first statistical property associated with the execution of the compiled code and a change in one or more computer performance metrics,
the one or more statistical properties for the execution of the compiled code comprises: a total number of calls for a type of function; a frequency associated with the calls for the type of function; an average duration associated with the calls for the type of function; and a total number of memory accesses for a given memory region,
the machine learning model is trained, using training data comprising profile information previously generated for an instance of source code and computer performance data indicative of one or more performance metrics for the computing system during execution of compiled code obtained by compiling the source code, to learn, and
the one or more computer performance metrics comprises: a period of time taken to execute the compiled code; a number of memory accesses for the execution of the compiled code; a number of cache misses for the execution of the compiled code; a processor time for each core used for the execution of the compiled code; and a usage percentage for each core used for the execution of the compiled code.