The clue is the Cache size for reading from SD Card. It's set to 128 KB, on some ROM's it's even set to 4 KB!
You can check for yourself your Cache size by looking into this file:
You can change it manually but it will be reverted to default on the reboot. The changes need to be done permanently by loading the script on the startup through the init.d.
Or you can flash the CWM zip files that I made for you.
For RA 1.7 Recovery zip look into this post. Many thanx to user laie1472 for making them.
You must find which Cache size fits best for your SD Card. In my case its the 3072 KB Cache size. At best, use the Root Explorer to change the value, then run SD Tools Benchmark - finally flash the CWM zip file that fits your SD Card.
Here are two screenshots - the first one shows the reading speeds with the default Cache 128 KB and the second one is with the 3072 KB Cache with my Class 4 SD Card on CM7 RC2 by Charnsingh.
The Benchmark is made with the SD Tools program.
If you want to convince yourself of the speed improvement after applying the fix, just open your Gallery and see how fast it loads the photos!
Suggestion: 2048 KB Cache size performs at best for most of the SD Cards!
If you don't have CWM then you can do following:
Make a file with this content:
if [ -e /sys/devices/virtual/bdi/179:0/read_ahead_kb ]
/system/xbin/echo "128" > /sys/devices/virtual/bdi/179:0/read_ahead_kb;
# Tweak mmc read-ahead - rafpigna -
mmcresult=`echo $folderlist | grep -o '\bmmc1:\w*' | sed 's/mmc1://'`
echo 128 > /sys/devices/platform/msm_sdcc.2/mmc_host/mmc1/mmc1:$mmcresult/block/mmcblk0/queue/read_ahead_kb
Some of the ROM chiefs have hardcoded this values in the init, that can't be changed - only by the chief himself.
Some of the ROM's already contain this tweak in another script that is saved in the init.d folder. Probably it's tagged with the number 99 in the filename to be sure that it's executed at last. You have to change it there.
Rafpigna - the HD2 Android chief - pointed that out over here.
For ROM Cookers - add this line into init.rc file:
# sd card read speed fix
write /sys/block/mmcblk0/bdi/read_ahead_kb 2048
How to install the CWM zip files:
In the MAGLdr menu or in CWM menu you navigate with the Volume rocker buttons "Up" and "Down", Call button is for "O.K." or "Confirm", the EndCall button is for "Back".
If you have a CWM zip file (open the zip file, if it contains the METAInf folder then its a CWM zip file), copy it to your SD Card (I use a folder called Android Files on my SD Card).
Then power-off your Phone and start the MAGLdr menu by Holding the Power button until the MAGLdr menu comes.
Go down to AD Recovery and press the Call button to start the CWM.
In the CWM menu go to "Install zip from sdcard", then "choose zip from sdcard". Navigate to the folder where you copied your zip file and choose the zip file.
After the zip file is installed, restart your Phone.