1. A computer implemented method to track movement and deletion of objects in a heap, the computer implemented method comprising: receiving an event, wherein the event comprises an event selected from a group consisting of an object move event and an object delete event; responsive to receiving the event, notifying a profiler of object information via a callback function, wherein a virtual machine passes a first object tag and a subsequently generated object tag to the profiler, wherein object information is stored in at least one buffer, and the at least one buffer is sent to the profiler in response to garbage collection completion, wherein in sending the at least one buffer to the profiler, solely a buffer pointer corresponding to the at least one buffer is sent together with a number of buffers corresponding to the at least one buffer; storing object information for objects selected for notification in a buffer; sending the buffer to the profiler responsive to garbage collection completion; and receiving user-defined tags for a plurality of classes without assigning a user-defined tag to a non-class object, wherein the user-defined tag is a tag that the profiler links to a class object using a Java virtual machine tool interface function.