A computer system supports virtual memory and a paging mechanism. When a new
process
is created, this occupies one or more memory region. In one embodiment, at least
a first memory region occupied by the process at a first virtual address has predefined,
fixed, page characteristics (for example page size). It turns out that these are
not optimum for the performance of the process. In order to address this, a routine
in a shared library is invoked to copy the component from the first memory region
into a second memory region. The second memory region either has different page
characteristics from the first memory region (for example, a different page size),
or is modifiable to have such different page characteristics. The second memory
region is reallocated in virtual memory so that it replaces the first memory region
at the first virtual address. The overall consequence of this is that at least
one component of the process can now operate at a more suitable page characteristic
(such as page size), thereby leading to improved performance.