A system for synchronizing transient resource usage between virtual servers in a hypervisor environment, comprising: a computer which includes: a hypervisor running thereon, for executing virtual servers (104, 105, 106), and a communication channel, that enables synchronization between the virtual servers; a plurality of virtual servers executing on the hypervisor, each of which virtual servers includes: a non-transient memory space or heap (108, 113, 115), for storage and execution of relatively longer-lived processes; a transient memory space or heap (112, 114), for storage and execution of relatively shorter-lived processes; a synchronization module (118, 119) which determines predictions of times of garbage collects and code optimizations, that make use of the transient memory space or heap, at that virtual server; and wherein the synchronization modules uses the communication channel to communicate information between the plurality of virtual servers, and to synchronize transient resource usage between the virtual servers; wherein one of the synchronization modules is selected as the master synchronization module, wherein the master synchronization module requests new predictions from the synchronization modules at the other virtual servers, and uses the predictions to update a schedule of garbage collects and code optimizations from an original schedule to a modified schedule; wherein, in response to detecting an overlap, based on the modified schedule, between garbage collects, the master synchronization module is configured to advance one or more garbage collections, and in response to detecting an overlap, based on the modified schedule, between garbage collects and code optimizations, the master synchronization module is configured to postpone one or more code optimizations; and wherein the virtual servers advance execution of garbage collection or postpone execution of code optimization, to synchronize transient resource usage between the plurality of virtual servers. a computer which includes: a hypervisor running thereon, for executing virtual servers (104, 105, 106), and a communication channel, that enables synchronization between the virtual servers; a plurality of virtual servers executing on the hypervisor, each of which virtual servers includes: a non-transient memory space or heap (108, 113, 115), for storage and execution of relatively longer-lived processes; a transient memory space or heap (112, 114), for storage and execution of relatively shorter-lived processes; a synchronization module (118, 119) which determines predictions of times of garbage collects and code optimizations, that make use of the transient memory space or heap, at that virtual server; and a hypervisor running thereon, for executing virtual servers (104, 105, 106), and a communication channel, that enables synchronization between the virtual servers; a plurality of virtual servers executing on the hypervisor, each of which virtual servers includes: a non-transient memory space or heap (108, 113, 115), for storage and execution of relatively longer-lived processes; a transient memory space or heap (112, 114), for storage and execution of relatively shorter-lived processes; a synchronization module (118, 119) which determines predictions of times of garbage collects and code optimizations, that make use of the transient memory space or heap, at that virtual server; and a non-transient memory space or heap (108, 113, 115), for storage and execution of relatively longer-lived processes; a transient memory space or heap (112, 114), for storage and execution of relatively shorter-lived processes; a synchronization module (118, 119) which determines predictions of times of garbage collects and code optimizations, that make use of the transient memory space or heap, at that virtual server; and wherein the synchronization modules uses the communication channel to communicate information between the plurality of virtual servers, and to synchronize transient resource usage between the virtual servers; wherein one of the synchronization modules is selected as the master synchronization module, wherein the master synchronization module requests new predictions from the synchronization modules at the other virtual servers, and uses the predictions to update a schedule of garbage collects and code optimizations from an original schedule to a modified schedule; wherein, in response to detecting an overlap, based on the modified schedule, between garbage collects, the master synchronization module is configured to advance one or more garbage collections, and in response to detecting an overlap, based on the modified schedule, between garbage collects and code optimizations, the master synchronization module is configured to postpone one or more code optimizations; and wherein the virtual servers advance execution of garbage collection or postpone execution of code optimization, to synchronize transient resource usage between the plurality of virtual servers.