1. A method for performing a swap operation, the method comprising: performing in a computing device having a volatile memory and a non-volatile memory, wherein the non-volatile memory has multi-level cell (MLC) memory forming a first swap area and single-level cell (SLC) memory forming a second swap area: monitoring a rate at which incoming data is being sent to the volatile memory; when the monitored rate is below a first predetermined threshold, swapping first data from the volatile memory to the first swap area of the non-volatile memory; and when the monitored rate is above the first predetermined threshold: swapping the first data from the volatile memory to the second swap area of the non-volatile memory; and when the monitored rate is below the first predetermined threshold, moving the first data from the second swap area of the non-volatile memory to the first swap area of the non-volatile memory.