1. A method for using observed object patterns to dynamically tune a virtual machine for responsiveness or throughput, comprising: receiving a size for a predetermined memory region for the virtual machine; reporting to the virtual machine a smaller size for the memory region than the size for the memory region; upon receiving an indication from the virtual machine that allocating memory for an object in the memory region would exceed the smaller size for the memory region, performing a scan of the memory region by scanning a heap during a garbage-collection operation or during a young generation garbage-collection operation to gather information about objects present in the memory region; identifying objects in the memory region whose presence indicates a need for at least one of responsiveness or throughput; gathering statistics for at least one of the identified objects or unidentified objects to determine a level of responsiveness for the set of objects, wherein determining the level of responsiveness involves determining a high level of responsiveness is needed upon identifying a prevalence of objects associated with operations that involve responsiveness during the garbage-collection operation or during the young generation garbage-collection operation; and dynamically tuning a virtual machine based on the gathered statistics and the level of responsiveness, wherein dynamically tuning the virtual machine comprises tuning at least one of, a limit for the size of the heap, a limit for the size of a generation in the heap, and a limit for the size of a thread allocation buffer, to a smaller size to generate one or more additional interrupts during which objects can be analyzed.