A computer system may be configured to dynamically select a memory
virtualization and corresponding virtual-to-physical address translation
technique during execution of an application and to dynamically employ
the selected technique in place of a current technique without
re-initializing the application. The computer system may be configured to
determine that a current address translation technique incurs a high
overhead for the application's current workload and may be configured to
select a different technique dependent on various performance criteria
and/or a user policy. Dynamically employing the selected technique may
include reorganizing a memory, reorganizing a translation table,
allocating a different block of memory to the application, changing a
page or segment size, or moving to or from a page-based, segment-based,
or function-based address translation technique. A selected translation
technique may be dynamically employed for the application independent of
a translation technique employed for a different application.