Top_Gun
3rd January 2008, 05:47 PM
Hi,
I am thinking about the sense behind UPX for mobile devices.
From what I understand about the mechanism in WM5/6, the following should be correct. I post this not as fact, but as my personal thesis on the effects of UPX, so please correct me if I am wrong.
The devices have a small pagepool, and rely on discarding and reloading of code segments.
So, the operating system needs to "forget" parts of a loaded executable if the place in the pagepool is small, and reload these parts if they are to be executed again. With UPX, this could be a real pain as these parts of the file are not stored in the rom in their real-time-executable form, but need some "decompression". So the device is either not able to discard parts of upxed files, resulting in less pagepool-space for other files, or needs to expand them at reloadtime, resulting in a lot of cpu-load as parts of large executables may need to be expanded several times over the execution span of a program.
Has anyone measured the effects of the use of a lot of UPX-ed executables in a device? I would be very interested in the effect upxing has on modules.
Regards,
TG.
I am thinking about the sense behind UPX for mobile devices.
From what I understand about the mechanism in WM5/6, the following should be correct. I post this not as fact, but as my personal thesis on the effects of UPX, so please correct me if I am wrong.
The devices have a small pagepool, and rely on discarding and reloading of code segments.
So, the operating system needs to "forget" parts of a loaded executable if the place in the pagepool is small, and reload these parts if they are to be executed again. With UPX, this could be a real pain as these parts of the file are not stored in the rom in their real-time-executable form, but need some "decompression". So the device is either not able to discard parts of upxed files, resulting in less pagepool-space for other files, or needs to expand them at reloadtime, resulting in a lot of cpu-load as parts of large executables may need to be expanded several times over the execution span of a program.
Has anyone measured the effects of the use of a lot of UPX-ed executables in a device? I would be very interested in the effect upxing has on modules.
Regards,
TG.