Patent classifications
G06F9/45525
Lightweight and precise value profiling
A profiling implementation method for reducing overhead while an application is running with profiling instrumentation inserted but disabled; the method for gathering precise profiling data for a subset of observed values at runtime start; generating an index for each observed value; populating one or more data structures within a hash table with the subset of observed values to count; comparing a corresponding key at the index value of an observed value index; evaluating a value limit of the hash table; incrementing a matched key counter; incrementing an alt-counter; locking the hash table; and updating one or more data structures of the hash table.
METHOD FOR DYNAMIC OPTIMIZATION OF WEB APPLICATIONS
Provided is a method for optimization of data by a networking device. The method including receiving, from a server, a data packet including data for use with an application executable in a web browser at an external device, extracting data from the data packet, identifying a type of the extracted data, performing optimization of the extracted data based on the identified type of the extracted data and generating optimized data based on the optimization, reconstructing the data packet to include the optimized data, and transmitting, to the external device, the reconstructed data packet.
OPTIMIZING MANAGED RUNTIME APPLICATIONS FOR SERVERLESS ENVIRONMENTS
A method, computer system, and computer program product for generating an optimized managed runtime application is provided. Method invocation statistics for a managed runtime application are received. The managed runtime application comprises code defining a plurality of classes, each class including bytecode for one or more methods associated with the class. The method invocation statistics identify the methods invoked during at least one previous execution of the managed runtime application. An optimized version of the managed runtime application is generated based on the method invocation statistics. The managed runtime application is retrieved, and bytecode for at least one method of a class of the managed runtime application is selectively replaced with proxy code based on the method invocation statistics. The proxy code is configured for retrieving the replaced code.
Dataflow analysis to reduce the overhead of on stack replacement
An approach is provided in which an information handling system selects an assumption point in a software program corresponding to a compile-time assumption made by a compiler, and selects an assumption violation point in the software program corresponding to a location at which the compile-time assumption can be violated at runtime. The information handling system propagates backwards in the software program from the assumption point and reaches the assumption violation point. The information handling system determines that the assumption point corresponds to a first method and the assumption violation point corresponds to a second method that is different from the first method, and inserts a conditional transition in the software program at the assumption violation point. The information handling system executes a compiled version of the software program that includes the conditional transition.
Optimizing managed runtime applications for serverless environments
A method, computer system, and computer program product for generating an optimized managed runtime application is provided. Method invocation statistics for a managed runtime application are received. The managed runtime application comprises code defining a plurality of classes, each class including bytecode for one or more methods associated with the class. The method invocation statistics identify the methods invoked during at least one previous execution of the managed runtime application. An optimized version of the managed runtime application is generated based on the method invocation statistics. The managed runtime application is retrieved, and bytecode for at least one method of a class of the managed runtime application is selectively replaced with proxy code based on the method invocation statistics. The proxy code is configured for retrieving the replaced code.
Rendering Optimisation by Recompiling Shader Instructions
A rendering optimisation identifies a draw call within a current render (which may be the first draw call in the render or a subsequent draw call in the render) and analyses a last shader in the series of shaders used by the draw call to determine whether the last shader samples from the one or more buffers at coordinates matching a current fragment location. If this determination is positive, the method further recompiles the last shader to replace an instruction that reads data from one of the one or more buffers at coordinates matching a current fragment location with an instruction that reads from the one or more buffers at coordinates stored in on-chip registers.
Constructor accessibility checks for deserialization
Techniques for performing constructor accessibility checks during deserialization are disclosed. A system receives a command that requires deserializing a serialized object of a target type. The system determines an ancestor type of the target type. Without calling any constructors and regardless of whether the ancestor type is serializable, the system determines whether a constructor of the ancestor type is accessible to the target type. The system deserializes the serialized object only after determining that the constructor of the ancestor type is accessible to the target type.
Ranking service implementations for a service interface
Techniques for ranking service implementations for a service interface are disclosed. Each module that includes a service implementation may be referred to as a service provider module. The ranking of the service implementations, for the particular service interface, may be based on modular information. Modular information includes information associated with module dependencies and/or service dependencies corresponding to one or more of a candidate set of service provider modules. Additionally or alternatively, the ranking of the service implementations, for the particular service interface, may be based on statically-available information and/or dynamically-available information associated with one or more of a candidate set of service implementations.
Virtualization layer for mobile applications
Methods, systems, and computer-readable media for providing a virtualization layer for mobile applications are presented. A computing device may parse code of an application to identify a first set of one or more classes in the application. The computing device may transmit code usable by the first set of one or more classes to a module accessible to the application and create a second set of one or more classes in the application to replace the first set of one or more classes, wherein the second set of one or more classes does not inherit from the first set of one or more classes in an object hierarchy. In some embodiments, the second set of one or more classes provides at least one different function from the first set of one or more classes. The computing device may execute the application comprising the second set of one or more classes.
CHECKPOINTING AND RESTORING CONTAINERS TO OPTIMIZE CONTAINERIZED MANAGED RUNTIME APPLICATIONS
Optimizing containerized applications includes receiving managed runtime code, creating a first container within a managed runtime environment, and executing the managed runtime code in the first container within the managed runtime environment. Responsive to a determination that the managed runtime environment has performed at least one optimization of the managed runtime code to create optimized managed runtime code during a first lifetime of the managed runtime environment, the first container is checkpointed into a first memory image to create a first checkpointed container including the optimized managed runtime code. The first checkpointed container is stored.