1. A method to load processor-optimized library modules into virtual machines, the method comprising: searching a memory of a virtual machine (VM) that is executing on a first processor to identify tagged identification data of a first library module loaded into the VM; determining a processor characteristic associated with a second processor, wherein the VM is to be migrated from the first processor to the second processor; retrieving a second library module compatible with the second processor, based on the first library module and the determined processor characteristic, wherein the second library module has tagged identification data that corresponds to the tagged identification data of the first library module, has similar functionality to the first library module, is incompatible with the first library module, and is optimized for execution on the second processor; determining whether any processes of the VM are using the first library module, wherein the processes of the VM are running on the first processor; in response to determination that no processes of the VM are using the first library module, performing: migrating the VM having the first library module from the first processor to the second processor; starting up the migrated VM on the second processor; and injecting the second library module into the started-up VM to replace the first library module; in response to a determination that one or more processes of the VM are using the first library module, waiting for the one or more processes to complete, and after completion of the one or more processes, performing: migrating the VM having the first library module from the first processor to the second processor; starting up the migrated VM on the second processor; and injecting the second library module into the started-up VM to replace the first library module; and executing processes of the VM that use the second library module on the second processor.