Take the 2-minute tour ×
Android Enthusiasts Stack Exchange is a question and answer site for enthusiasts and power users of the Android operating system. It's 100% free, no registration required.

I've been struggling to get decent USB transfer speeds with my Ubuntu computer, which I've asked about on the Ask Ubuntu site.

The answers there have helped me improve USB speeds overall, but it seems my phone is still much slower than other devices. For example, I can transfer to my Sony video camera at about 17.5MB/s, but transferring files to my Android phone (Samsung Galaxy 2 with ICS) is running at about 2MB/s.

How can I determine if 2MB/s is a normal transfer speed for my Android phone? In other words, what do I need to know about it's SD card (it has two, internal and external) specifications or other details in order to determine if I am getting the maximum performance or if it is still hobbled?

share|improve this question
    
I'm not entirely sure that there's an established "normal" speed that you can really point to. Are you transferring data to the phone's internal storage, or to a microSD card? –  eldarerathis Jul 12 '12 at 18:14
add comment

2 Answers

up vote 7 down vote accepted

There's no such thing as normal USB transfer speed. It depends on several factors including but not limited to:

  • Class of the sdcard
  • USB speed (1.1 vs 2.0)
  • Performance and load of the the computer

Out of these three the one with the most influence is the class of the sdcard. The class describes the minimum write speed of the card in MB/s. For example a Class 10 card has a minimum writing speed of 10MB/s.
Based on this your sdcard is most likely a Class 2.


If you can't locate your sdcard Class, there's a free tool (only for windows users) that gives you the transfer rate of your sdcard:

H2testw 1.4

After you've finished verifying your unit you will be able to see the exact time it took for the operation to complete, the number of megabytes tested, and, of course, the writing / reading speed.


As a side note: The cache that Abdul mentions has nothing to do with this. That's for reading and only applies if the card is mounted in the phone.

share|improve this answer
    
I've proposed an edit with a windows app that reports the sdcard speed. Seems relevant! By the way, +1 for you :) –  Zuul Jul 12 '12 at 22:27
    
Thanks for this answer, as it made me realize my question could have been phrased better. I guess what I need to know is, how do I determine what class my SD cards are (the GS2 has two, internal and external) and then what should I expect from them. I've updated my question accordingly. –  Dave M G Jul 13 '12 at 2:40
add comment

The transfer speed majorly depends on the 'class' of your SD card.

micro-sd-cards-smartphones-speed-class-explained

Edit:

I googled about this issue and it appears that the slow transfer speeds is due to the Cache size for reading from SD Card. It's set to 128 KB in most cases. You can check it by running the following command.

adb shell cat /sys/devices/virtual/bdi/179:0/read_ahead_kb

To change this value you must have root access. Also the changes will be reset on reboot. Developers at xda have made scripts to make this change persist, check this link for a detailed explanation.

share|improve this answer
    
That cache I for reads –  Richard Borcsik Jul 12 '12 at 20:41
    
OfCourse, the transfer speed majorly depends on the 'class' of the sdcard and thats what my answer was. The Edit was just some more info on the issue the OP was facing i.e. slow transfer speeds. –  Abdul Karim Memon Jul 13 '12 at 7:23
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.