摘要:
Garbage collection processes are automatically tuned on a system comprising a plurality of virtual machines running on a physical processing device with multiple physical processors. Tuning is implemented for each garbage collection process, by updating a load variable to reflect that a new garbage collection process has started, the load variable having a value that is based at least in part on a number of garbage collection processes that are currently running on the system. Tuning further comprises creating a number of garbage collection threads based at least in part on the current value of the load variable and/or number of processors, where the garbage collection threads are used to perform at least a portion of at least one phase of the new garbage collection process. Tuning further comprises re-updating the load variable to reflect completion of the new garbage collection process.
摘要:
Garbage collection processes are automatically tuned on a system comprising a plurality of virtual machines running on a physical processing device with multiple physical processors. Tuning is implemented for each garbage collection process, by updating a load variable to reflect that a new garbage collection process has started, the load variable having a value that is based at least in part on a number of garbage collection processes that are currently running on the system. Tuning further comprises creating a number of garbage collection threads based at least in part on the current value of the load variable and/or number of processors, where the garbage collection threads are used to perform at least a portion of at least one phase of the new garbage collection process. Tuning further comprises re-updating the load variable to reflect completion of the new garbage collection process.
摘要:
A computer-implemented process for write barrier elision during program execution receives a request to overwrite a reference, determines whether garbage collection is active and responsive to a determination that garbage collection is active, determines whether a reference object has been scanned. Responsive to a determination that the reference object has not been scanned set a mark bit for the reference object in a modified mark map, the reference object is scanned and a scan bit is set for the reference object in the modified mark map.
摘要:
A method for efficiently computing a hash value for a string is disclosed. In one embodiment, such a method includes receiving an original string comprising multiple characters. The method computes an original hash value for the original string. The method produces an updated string by performing at least one of the following updates on the original string: adding leading/trailing characters to the original string; removing leading/trailing characters from the original string, and modifying characters of the original string while preserving the length of the original string. The method then computes an updated hash value for the updated string by performing at least one operation on the original hash value, wherein the at least one operation takes into account the updates that were made to the original string. A corresponding apparatus and computer program product are also disclosed.
摘要:
A Java object is scan-missed during the mark phase of a garbage collection cycle. A list of any unscanned objects, comprising all objects of a particular object type, is created during a sweep phase of the garbage collection cycle. After the garbage collection cycle is completed, and the application resumes, for every PUTFIELD/GETFIELD operation on the object type that is part of a specific parent object, a comparison is made with the relevant information in the unscanned objects list. A scan-miss is identified by determining whether the current object being referenced by the application is a part of the unscanned object list that has been created during the sweep phase of the garbage collection cycle.