Jump to content

Report microSD cards that work with mimocans fix.


Guest dan 6a
 Share

Recommended Posts

Guest DistortedLoop
Toshiba 16GB Class4

...but really, shouldn't every SD card work?

They should, but apparently they're not. Lots of reports of problems here and in the mimocan thread with certain brands.

Link to comment
Share on other sites

Guest DistortedLoop
I also think it would be more helpful if people stop using the quandrant score and use the app "benchmark" which actually gives back results on the file i/o which is what we are really interested in...

+1

I'm assuming i/o only benchmark scores would weed out variances in background apps that are probably impacting total scores in quadrant that include CPU and graphics tests.

I just ran Softweg Benchmark, Total File System score = 237 on my phone. I've got the Transcend Class 6 card, but how do we tell what part of the phone the Benchmark app is actually reading/writing too. I suspect it's NOT the ext4 partition. This will take a little more investigation, perhaps asking the app developer what folder he read/writes to on his tests to see if it's a valid comparison for our purposes here.

Link to comment
Share on other sites

  • 3 weeks later...
Guest DistortedLoop

Sandisk seems to be the winner here based on the few reports.

Has anyone found a benchmark that lets you specify the sdcard itself to test i/o speeds? The "benchmark" app doesn't say, and when I contacted the author, he never replied.

I'm just a tad disappointed that my Transcend Class 6 card seems to be on the low end of performance in the thread here compared to Sandisk Class 2 cards. It would be nice to find an app that narrows down if it's actually the card, or some other setting on the phone.

Link to comment
Share on other sites

Guest DistortedLoop
SD Card Speed Test rates my Sandisk class 2 as a class 6 card. This is a way of testing the card in the phone. Could prove useful to a lot of us.

http://anotherflexdev.blogspot.com

Actually, I'm not sure how useful that will be to us.

The application is hardwired to write a file called speedt.tst to the root directory of /sdcard. You can veryify this by looking in the root with root explorer or estrongs or astro and see that no such file exists, than start the speed test app, then switch back to the file explorer and notice that the speed.tst file is there and grows to 300mb as the test continues.

That's fine on *most* devices, but not for our Galaxy S class devices that have both an internal and an exteranl sdcard. The external card, which is what we're looking to test, is mounted as /sdcard/sd on the Galaxy S. This means that we're only testing the internal card with that app.

With that in mind, the internal memory, per this app and just one test run for me, is Class 2. I got a 3.0MB/s write and 11.0 MB/s read on it.

I have the Transcend Class 6 16gb microsd in both my Galaxy S i9000 and my Nexus One. On the Nexus One, using the app to test gets a report of Class 4 card with 5.0MB/s writes and 12.0MB/s reads.

Given that it's almost certainly the READ speed that makes our phones feel less laggy opening apps with the mimocan fix, there might be more going on with this than just raw write speeds on the memory.

I still think what we need is an app that lets us specify, by full path, exactly where the test files in an i/o test are written to. Then we'd have to test on a non-mimocan phone what the i/o is to the /data/data directory, and again on a mimocan phone to the symlinked /data/data on different brands of cards.

We'd also want to do a speed test to the /dbdata folder that Paul's fix uses to see if differnt parts of the internal memory have different speeds. FAT32 vs ext 3/4 might also be a factor.

Also, my tests above might be impacted by the fact that I have lots of apps and widgets running and if any of them on either phone read/write to the sdcard during the speed test, the results could be impacted.

Link to comment
Share on other sites

Guest ragflan

Transcend 16gb Class 6 card works. No issues. What is the cheapest 32GB microsd card? In Australia, I saw one for $199 AU (around 180 US or 115 Pounds).

Edited by ragflan
Link to comment
Share on other sites

Guest DistortedLoop
Also, my tests above might be impacted by the fact that I have lots of apps and widgets running and if any of them on either phone read/write to the sdcard during the speed test, the results could be impacted.

A few more tests show that the suggested app doesn't even report consistent results, three tests on my SGS in a row:

Class 2: 3MB/s write, 11MB/s read

Class 4: 4MB/s write, 1MB/s read <---yeah, that's 1.0

Class 6: 6MB/s write, 10MB/s read

These are all on the internal sdcard within a couple of minutes of each other.

Does Android cache i/o in a way that would impact something like this?

Link to comment
Share on other sites

Guest j0bro

I am using mimocan's fix using an 512MB ext4 partition and the dreaded Kingston Class 4 8 GB microSDHC card. Results are far from perfect, the lag/stall is still noticeable.

Running the "SD Card Speed Tester" app form the Market yields a write speed of 7.0 MB/s and a read speed of 10.0 MB/s, suggesting a Class 6 card, but as mentioned before, this test is run in the INTERNAL card. I am an Android developer (LockPicker app) and I could throw an app together that tests the external card. Would like to hear if there is such an interest.

Link to comment
Share on other sites

Guest DistortedLoop
I am using mimocan's fix using an 512MB ext4 partition and the dreaded Kingston Class 4 8 GB microSDHC card. Results are far from perfect, the lag/stall is still noticeable.

Running the "SD Card Speed Tester" app form the Market yields a write speed of 7.0 MB/s and a read speed of 10.0 MB/s, suggesting a Class 6 card, but as mentioned before, this test is run in the INTERNAL card. I am an Android developer (LockPicker app) and I could throw an app together that tests the external card. Would like to hear if there is such an interest.

I don't know how much demand there would be widespread, but I'm sure the forum members would use it.

Someone mentioned the dd command to time a padded file written to a specific location, but it must have been in a different thread. I think busybox supports dd command.

Are you on an SGS or a US variant? Shocking difference in our scores there. I suspect I might have to use a task killer to kill everything running to get a valid test.

Link to comment
Share on other sites

Guest chookmeister69

I have a Lexar 16Gb Class 6 that scores 1780 but I must admit that even though the stalling is fixed, doing common things like swiping between screens looks like it has a kind of low frame rate - it doesn't lag but it's not smooth either like a stock one generally is (kind like it's underwater). I don't know if that is a symptom of the fix or the card. For that reason, I've gone back to the NAND fix as I was pretty happy with that (even though the quadrant scores show it's slower). I benchmarked the card on my PC and got an average read transfer of 15Mb/s. On the phone I got 6.8Mb/s but I reckon like the post above says, it was using the internal memory, not the external card (either that or the bus reached some kind of bottleneck)

Link to comment
Share on other sites

Guest Calcvictim
I don't know how much demand there would be widespread, but I'm sure the forum members would use it.

Someone mentioned the dd command to time a padded file written to a specific location, but it must have been in a different thread. I think busybox supports dd command.

Are you on an SGS or a US variant? Shocking difference in our scores there. I suspect I might have to use a task killer to kill everything running to get a valid test.

I mentioned the DD command, I tried the command through ADB shell and it works as expected on my Acer Liquid (Android 2.1) so I think if would work on the Galaxy just fine, the test consists of writing a file and then reading it to ram in order to see what the speed is. I ran the command from a terminal on the phone itself and no time was displayed so it only works from ADB

Here is the syntax once you are running the adb shell

everything with a pound sign is a comment, everything without is a command

#cd into the sdcard and create a directory called test, if everything is done in that directory you will not screw up your other files

cd /sdcard

mkdir ./test

#create a random padded test file, in size I think 100 megs should be fine

dd if=/dev/urandom bs=512 count=200000 of=./random.txt

#this part is not meant to determine performance, how fast the file is generated and written depends on CPU speed and possibly free memory

#this is the command that you run and see how long it takes to complete in seconds, this reads the file in RAM and the time give you a good approximation of read speed

dd if=./random.txt of=/dev/null

#try this with different cards and compare how long it takes to run the last command on each one

My results:

# cd /sdcard/tmp

cd /sdcard/tmp

# dd if=/dev/urandom bs=512 count=200000 of=./random.txt

dd if=/dev/urandom bs=512 count=200000 of=./random.txt

200000+0 records in

200000+0 records out

102400000 bytes transferred in 84.833 secs (1207077 bytes/sec)

# dd if=./random.txt of=/dev/urandom

dd if=./random.txt of=/dev/urandom

200000+0 records in

200000+0 records out

102400000 bytes transferred in 9.872 secs (10870488 bytes/sec)

#

total read speed=10.04 MB/s

Edited by Calcvictim
Link to comment
Share on other sites

Guest DistortedLoop

Excellent instructions, thanks. I'll give them a try when I get a chance over the weekend.

One correction, though, anyone following your instructions on a Galaxy S with an external card will have to cd to /sdcard/sd on 2.1, and I think it's /sd/ext_card on 2.2, that's the mount point for the external on these internal/external having devices.

Just going to /sdcard keeps you on the internal memory.

Also, with mimocan, I think we should really cd to /disk - as that's the symlink/mount point for our for the ext partition on our external cards...that's the place we really want to know what the performance is.

As for lag on screen swipes, I don't notice that here, smooth as glass, or at least as smooth as my Nexus One. This could be a function of whatever Launcher you're using. I use ADW.Launcher out of the market. Love it. Much more stock Android feeling than TouchWiz, which is too iPhone-like for my tastes.

I mentioned the DD command, I tried the command through ADB shell and it works as expected on my Acer Liquid (Android 2.1) so I think if would work on the Galaxy just fine, the test consists of writing a file and then reading it to ram in order to see what the speed is. I ran the command from a terminal on the phone itself and no time was displayed so it only works from ADB

Here is the syntax once you are running the adb shell

everything with a pound sign is a comment, everything without is a command

#cd into the sdcard and create a directory called test, if everything is done in that directory you will not screw up your other files

cd /sdcard

mkdir ./test

#create a random padded test file, in size I think 100 megs should be fine

dd if=/dev/urandom bs=512 count=200000 of=./random.txt

#this part is not meant to determine performance, how fast the file is generated and written depends on CPU speed and possibly free memory

#this is the command that you run and see how long it takes to complete in seconds, this reads the file in RAM and the time give you a good approximation of read speed

dd if=./random.txt of=/dev/null

#try this with different cards and compare how long it takes to run the last command on each one

My results:

# cd /sdcard/tmp

cd /sdcard/tmp

# dd if=/dev/urandom bs=512 count=200000 of=./random.txt

dd if=/dev/urandom bs=512 count=200000 of=./random.txt

200000+0 records in

200000+0 records out

102400000 bytes transferred in 84.833 secs (1207077 bytes/sec)

# dd if=./random.txt of=/dev/urandom

dd if=./random.txt of=/dev/urandom

200000+0 records in

200000+0 records out

102400000 bytes transferred in 9.872 secs (10870488 bytes/sec)

#

total read speed=10.04 MB/s

Link to comment
Share on other sites

Guest Aquae Atrae

(Update regarding the SD Card Speed Tester app)

A quick tap on the app's "Send email to developer" button should have the problem fixed soon. So after we see the next update we should be able benchmark these ourselves.

Gilmar writes:

Hi Doug. Thanks for the info. I'm gonna try to implement this and other minor improvements this coming week.

Thanks.

Edited by Aquae Atrae
Link to comment
Share on other sites

Guest DistortedLoop
I mentioned the DD command, I tried the command through ADB shell and it works as expected on my Acer Liquid (Android 2.1) so I think if would work on the Galaxy just fine, the test consists of writing a file and then reading it to ram in order to see what the speed is. I ran the command from a terminal on the phone itself and no time was displayed so it only works from ADB

...

total read speed=10.04 MB/s

Excellent instructions, thanks. I'll give them a try when I get a chance over the weekend.

Just finished running this test on four different parts of my phone, the internal sdcard, the external sdcard, the external ext4 partition, and the internal /data partition (the default area for our ROM stuff that we're moving to the ext partition).

I ran four reads of a random.txt file in each directory. There appears to be some kind of read cache-ing going on, since the tests consistently read faster at least the 2nd and 3rd time conducted, the 4th usually not the best speed, so what's up with that?

Anyways, the results were a bit surprising to me:

BEST SPEED ON EXTERNAL SDCARD EXT 4 = 15.79 MB/S

BEST SPEED ON EXTERNAL SDCARD FAT32 = 15.6 MB/S

BEST SPEED ON INTERNAL SDCARD FAT32 = 13.1 MB/S

BEST SPEED ON INTERNAL ROM AREA = 13.6 MB/S

All these speeds suggest class 6 performance on both the internal and external cards, ROM or SDCard areas alike.

What's more interesting to me is that the ext 4 partition only performs about 16% faster than the internal ROM on the reads of a 100mb file. Given that most of our apps are much smaller than that, I don't think the actual speed of reading a raw file off the memory cards is what fixes the lag problem. I mean if it only takes 6-7 seconds to read a 100mb file, and most apps are under 20mb, the perceivable difference on a read of a file under 20mb is only 0.19 seconds. Is that enough to account for the amount of lag that makes the phone seem unusable to many of us? I doubt it.

This is obviously a very simple test and I'm probably reading more into than should be in terms of lag, but it makes me wonder what the real issue on the i/o of having /data/data in the ROM memory area vs the /dbdata (Paul's fix) or the ext 4 /disk/data (mimocan's fix) really is? Additionally, claims by those on newer ROMS that Samsung's somehow fixed that on later ROMS (JG5, JMx...) without resulting to using an external card suggests this isn't the problem.

The mimocan fix obviously works, the difference in lag and usability of my phone with and without are obvious, but I wonder what's really going on behind the scenes.

# pwd

/disk/test

# dd if=/dev/urandom bs=512 count=200000 of=./random.txt

200000+0 records in

200000+0 records out

102400000 bytes transferred in 120.206 secs (851870 bytes/sec)

# dd if=./random.txt of=/dev/null

200000+0 records in

200000+0 records out

102400000 bytes transferred in 7.273 secs (14079472 bytes/sec)

# dd if=./random.txt of=/dev/null

200000+0 records in

200000+0 records out

102400000 bytes transferred in 6.182 secs (16564218 bytes/sec)

# dd if=./random.txt of=/dev/null

200000+0 records in

200000+0 records out

102400000 bytes transferred in 5.953 secs (17201411 bytes/sec)

# dd if=./random.txt of=/dev/null

200000+0 records in

200000+0 records out

102400000 bytes transferred in 6.730 secs (15215453 bytes/sec)

# 


BEST SPEED ON EXTERNAL SDCARD EXT4 = 15.79 MB/S


# cd /sdcard

# mkdir ./test

# cd ./test

/sdcard/test

# ls

# dd if=/dev/urandom bs=512 count=200000 of=./random.txt

200000+0 records in

200000+0 records out

102400000 bytes transferred in 121.238 secs (844619 bytes/sec)

# dd if=./random.txt of=/dev/null

200000+0 records in

200000+0 records out

102400000 bytes transferred in 8.807 secs (11627114 bytes/sec)

# dd if=./random.txt of=/dev/null

200000+0 records in

200000+0 records out

102400000 bytes transferred in 7.997 secs (12804801 bytes/sec)

# dd if=./random.txt of=/dev/null

200000+0 records in

200000+0 records out

102400000 bytes transferred in 7.438 secs (13767141 bytes/sec)

# dd if=./random.txt of=/dev/null

200000+0 records in

200000+0 records out

102400000 bytes transferred in 8.293 secs (12347763 bytes/sec)


BEST SPEED ON INTERNAL SDCARD FAT32 = 13.1 MB/S


# cd /sdcard/sd


# mkdir ./test

# cd ./test

/sdcard/sd/test

# dd if=/dev/urandom bs=512 count=200000 of=./random.txt

200000+0 records in

200000+0 records out

102400000 bytes transferred in 126.224 secs (811256 bytes/sec)

# dd if=./random.txt of=/dev/null

200000+0 records in

200000+0 records out

102400000 bytes transferred in 7.427 secs (13787531 bytes/sec)

# dd if=./random.txt of=/dev/null

200000+0 records in

200000+0 records out

102400000 bytes transferred in 8.998 secs (11380306 bytes/sec)

# dd if=./random.txt of=/dev/null

200000+0 records in

200000+0 records out

102400000 bytes transferred in 7.648 secs (13389121 bytes/sec)

# dd if=./random.txt of=/dev/null

200000+0 records in

200000+0 records out

102400000 bytes transferred in 6.249 secs (16386621 bytes/sec)

# 


BEST SPEED ON EXTERNAL SDCARD FAT32 = 15.6 MB/S


# cd ./test

/data/test

# ls

# dd if=/dev/urandom bs=512 count=200000 of=./random.txt

200000+0 records in

200000+0 records out

102400000 bytes transferred in 125.916 secs (813240 bytes/sec)

# dd if=./random.txt of=/dev/null

200000+0 records in

200000+0 records out

102400000 bytes transferred in 9.105 secs (11246567 bytes/sec)

# dd if=./random.txt of=/dev/null

200000+0 records in

200000+0 records out

102400000 bytes transferred in 8.828 secs (11599456 bytes/sec)

# dd if=./random.txt of=/dev/null

200000+0 records in

200000+0 records out

102400000 bytes transferred in 7.507 secs (13640602 bytes/sec)

# dd if=./random.txt of=/dev/null

200000+0 records in

200000+0 records out

102400000 bytes transferred in 7.178 secs (14265812 bytes/sec)

# dd if=./random.txt of=/dev/null

200000+0 records in

200000+0 records out

102400000 bytes transferred in 6.956 secs (14721104 bytes/sec)


BEST SPEED ON INTERNAL ROM AREA = 13.6 MB/S

Link to comment
Share on other sites

Guest Calcvictim
Just finished running this test on four different parts of my phone, the internal sdcard, the external sdcard, the external ext4 partition, and the internal /data partition (the default area for our ROM stuff that we're moving to the ext partition).

I ran four reads of a random.txt file in each directory. There appears to be some kind of read cache-ing going on, since the tests consistently read faster at least the 2nd and 3rd time conducted, the 4th usually not the best speed, so what's up with that?

I noticed the speed change after running the test more then once but I am not sure if it's caching, I think if the file was cached then the read speed would be at least 1 order of magnitude bigger and not 10-20 percent.

If you want you can run the same test except before you read the file run this

dd if=/dev/zero of=/dev/null bs=512 count=524288

using the count of 524288 because (524288 x 512)=very close to exactly 256 MB.....which should flush out the cache

Link to comment
Share on other sites

Guest DistortedLoop
I noticed the speed change after running the test more then once but I am not sure if it's caching, I think if the file was cached then the read speed would be at least 1 order of magnitude bigger and not 10-20 percent.

If you want you can run the same test except before you read the file run this

dd if=/dev/zero of=/dev/null bs=512 count=524288

using the count of 524288 because (524288 x 512)=very close to exactly 256 MB.....which should flush out the cache

Not cacheing, per se, more likely something to do with the CFQ scheduling and where our test runs are placed in the scheduler's i/o queue. Running them back to back might be giving higher priority...?

On a related note, in the parent thread for this one (mimocan's real fix thread) someone's suggested that a better fix for this is simply forcing the scheduler to anticipatory rather than CFQ. He says his phone feels snappy without the moving of /data/data just by a few scheduler changes which can be done on the phone's terminal, and can be undone by simply rebooting the phone or using similar commands to switch back to cfq. Very intriguing.

Link to comment
Share on other sites

Guest DistortedLoop
I noticed the speed change after running the test more then once but I am not sure if it's caching, I think if the file was cached then the read speed would be at least 1 order of magnitude bigger and not 10-20 percent.

If you want you can run the same test except before you read the file run this

dd if=/dev/zero of=/dev/null bs=512 count=524288

using the count of 524288 because (524288 x 512)=very close to exactly 256 MB.....which should flush out the cache

Oh, another thought on this. Interesting that while we're getting reasonably consistent speeds (only 10-20% variance) running these read tests, I noticed that a couple of different Market apps to test sdcard speed give wildly varying speeds on the reads. I'll get anywhere from 4MB/s to 11MB/s with those. Hard to give them much credibility with that going on.

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.