摘要:
Techniques for memory management or analysis with conservative garbage collectors is provided. The native stack is analyzed during runtime to identify within frames references to objects in the heap space. An amount of memory is calculated that represents the memory implicated by the reference. A log can be generated that conveys the frame, location of the reference in the frame and amount of memory implicated by the reference.
摘要:
Techniques for memory management or analysis with conservative garbage collectors is provided. The native stack is analyzed during runtime to identify within frames references to objects in the heap space. An amount of memory is calculated that represents the memory implicated by the reference. A log can be generated that conveys the frame, location of the reference in the frame and amount of memory implicated by the reference.
摘要:
A heap analyzer that processes a snapshot of the heap contained in a dump file is described. The heap analyzer tool can be configured to relocate the pointers in the dumped heap and allow developers to examine the heap in web browser by presenting markup for displaying a heap object in the browser and rendering pointers in the object as clickable links. When a link is selected, the pointer is followed to another object and markup is generated for rendering that object with its links. Furthermore, callbacks may be provided through an application programming interface (API) to allow developers to furnish their own code for analyzing and displaying their data structures.
摘要:
A method and software for analyzing a heap is described, in which a snapshot is made of a heap, which can be later analyzed by an analysis tool when a program that had run out of memory is no longer running. In one embodiment, an object allocated by the program is accessed and copied into a file, and an address of the object allocated by the process is recorded in association with an offset in the file of the copy of the object. The copy of the object copied into the file has preferably the same size as the object allocated by the process. A heap analysis tool may then be run on the objects copied into the file.
摘要:
A heap analyzer that processes a snapshot of the heap contained in a dump file is described. The heap analyzer tool can be configured to relocate the pointers in the dumped heap and allow developers to examine the heap in web browser by presenting markup for displaying a heap object in the browser and rendering pointers in the object as clickable links. When a link is selected, the pointer is followed to another object and markup is generated for rendering that object with its links. Furthermore, callbacks may be provided through an application programming interface (API) to allow developers to furnish their own code for analyzing and displaying their data structures.
摘要:
A method and software for analyzing a heap is described, in which a snapshot is made of a heap, which can be later analyzed by an analysis tool when a program that had run out of memory is no longer running. In one embodiment, an object allocated by the program is accessed and copied into a file, and an address of the object allocated by the process is recorded in association with an offset in the file of the copy of the object. The copy of the object copied into the file has preferably the same size as the object allocated by the process. A heap analysis tool may then be run on the objects copied into the file.
摘要:
A method and software for managing pointers to external objects in a run-time environment are described in which eager external references are provided that allow session memory objects to point directly to certain call memory objects with machine pointers. The eager external references contain enough information to recreate the call memory objects in call memory at the beginning of the call and fix the session memory objects to point to the new locations of the recreated call memory objects.
摘要:
Methods of memory management in a run-time environment are described. A mechanism is provided for registering a routine to deinitialize or deallocate a large object at the end of a call (e.g. by setting it to null to unreference the object), which prevents the large object from being migrated into session memory, e.g. when live objects are migrated at the end of the call. This routine is called after the finalization of garbage collected objects that may use the large object. In a subsequent call, the large object is checked before use to determine if the object is deinitialized and re-initialized if the large object was deinitialized.
摘要:
Objects that are managed within a run-time environment are stored on N-bit aligned addresses. Due to the alignment restriction, the N least significant bits of a reference to an object are available for storing information about the storage properties of the object. This information is extractable by fast register operations. The storage properties can include the lifetime, format, and contiguity of the object, or a combination of these properties. If the run-time environment implements a generational garbage collector, the reference tags are used to encode whether or not the object is recently allocated.
摘要:
A method and apparatus for copying garbage collection is described. A set of ambiguously referenced objects is identified in a from-space. Live objects in the from-space which are not ambiguously referenced are moved to the to-space, and the ambiguously referenced are transfixed (i.e. left behind to reside in the from-space). The boundaries of the ambiguously referenced are determined. When moving objects to the to-space, the objects are moved into regions between boundaries of objects transfixed in the to-space.