CPDT Benchmark〉Storage, memory

2.84K reviews
Content rating
Screenshot image
Screenshot image
Screenshot image
Screenshot image
Screenshot image
Screenshot image
Screenshot image
Screenshot image

About this app

Note: only internal memory test is available on Android 11.

CPDT (Cross Platform Disk Test) is a performance benchmarking app that measures I/O speed of permanent storage (internal memory/NAND/NVMe/UFS/SD card) and system memory (RAM).

This app has Windows, macOS and Linux v̲e̲r̲s̲i̲o̲n̲s̲ which allow to consistently run tests across devices and operating systems. They can be download at the web site: https://maxim-saplin.github.io/cpdt_results/?download

In-app results database makes it possible to compare your phone’s performance to other Android smartphones (e.g. Samsung Galaxy Note 10, Xiaomi Redmi 7 etc.) and a wide variety of hardware (iPhones, Macs, Windows PCs, Android TV Players etc.)

The benchmarking suite includes the following 5 tests:

◉ Permanent storage tests

╰┄◎ Sequential write

╰┄◎ Sequential read

╰┄◎ Random write(4KB block)

╰┄◎ Random read (4KB block)

◉ RAM test

╰┄◎ Memory copy

- test results are given as throughput values measured in MB/s (megabytes per second).

Various settings are available in Options menu and let users control:

◉ Test file size

╰┄◎ 0.5GB ┄◎ 1GB ┄◎ 2GB ┄◎ 4GB ┄◎ 8GB ┄◎ 16GB

◉ Write buffering

╰┄◎ On ┄◎ Off

◉ In-memory file caching

╰┄◎ On ┄◎ Off

For sequential tests the app builds time-series graphs, for random tests - histograms. Test results can be exported to CSV for further analysis (each row containing block position in the test file and throughput measured).

How is CPDT different from other apps? Most popular benchmarks focus on CPU/GPU (such as Geekbench, AnTuTu) and completely ignore storage performance.

Storage and memory benchmarks rarely let users change any settings and limited to specifying test file size. Controlling buffering or caching is not possible (e.g Androbnech) or require device reloading (e.g. A1 SD).

Caching is a mechanism which significantly influences test results. If it is ON test results are affected by RAM speeds and it’s not possible to isolate permanent storage performance in such tests. Cold read scenarios (e.g. device boot or first-time application start) can not be described by cached reads. Same situation is with buffering which affects write tests. Buffering uses RAM for temporary storing data before persisting it to storage.

CPDT deals with both caching and buffering and by default those are OFF which makes it possible to consistently measure and compare permanent storage performance across devices and operating systems.

Why is storage and memory performance important? It directly affects the level of “perceived” performance. UI freezes can be described in many cases by stutters at storage level. E.g. displaying a loaded web page in browser when it requests data from disk, scrolling pictures in gallery app (imaging scrolling thousands of them), or going down an Instagram feed (previously loaded images will be requested from cache stored on disk).

Chromebook users can use this app after enabling Google Play. In order to access SD/Memory Card the app must be granted “Storage permission” in Google Play setting of Chrome OS.

!OTG Support is NOT guaranteed! If you plug an external card reader or USB flash drive into your device, it might work or it might not. E.g. Samsung Galaxy S8 with Android 8 and Note 10 with Android 10 work fine. Xiaomi Mi8SE (Android 9), Meizu 16th (Android 8.1) and LG Nexus 5x (Android 6) don't work (though you'll still be able to see the drive in the system). Why is that? Android OS doesn't have a consistent model working with externally connected storage devices. Some device manufacturers do a good job (such as Samsung) by properly mounting the device and making it available via default API (Context.getExternalFilesDir()). Others require tricks or implementing manufacture specific APIs.

The project is open-source and you're welcome to visit it's page at GitHub:
Updated on
Mar 27, 2023

Data safety

Safety starts with understanding how developers collect and share your data. Data privacy and security practices may vary based on your use, region, and age. The developer provided this information and may update it over time.
This app may share these data types with third parties
App activity and App info and performance
No data collected
Learn more about how developers declare collection
Data is encrypted in transit
Data can’t be deleted

Ratings and reviews

2.64K reviews
Rob Vonderhaar
January 29, 2021
Wonderful app! Does just what it promises, and gives solid results with a minimalistic UI. You clearly invested time on the *internals* of the app vs. a flashy UI that really wouldn't add any value here. It would be helpful to allow selection of a couple devices from the database, and a "compare" button that would present a simple results matrix with a column for each device. As is, it's hard to compare w/o a lot of scrolling around. (I cut/pasted results numbers into Excel, which is painful!)
36 people found this review helpful
Did you find this helpful?
A Google user
September 2, 2019
Ran perfectly, once. Tried a couple of other benchmarks, but they could not see cards and USB drives on my USB-C hub. This one sees everything, and can almost bench everything, except... It only ran perfectly the first time I used it. On that run, and that one only, it got through sequential write, sequential read, random write, and random read, and displayed everything it's supposed to. Every subsequent run gets through sequential write, sequential read, and random write, then crashes (like "poof! gone!") on random read. Restarted the app, uninstalled and reinstalled the app, no joy. But I can still get three numbers (sequential write, sequential read, and random write) if I watch the app and grab them before it crashes. That's more than any competing app has been able to do for me. The rest of the crowd gives just the two sequential numbers with no random read or write and no way to check the USB devices. --- Hi Maxim! It's a Samsung Galaxy S10+ Stock ROM Android 9 8 gigs of RAM --- And the write cache setting did it! I was able to figure out which USB-C hub was the best for my use, and how to use it. Thanks!
16 people found this review helpful
Did you find this helpful?
Maxim Saplin
September 2, 2019
Thanks Joseph! I suspect in your case we have a situation when Android kills the app due to high memory usage while cache purging befor READ test. This might happen more often on custom ROMs or on devices with low RAM. KIlling other apps might help. OR enabling mem-cache in options UPD: Glad it worked for you. Thanks for the review!
The Reaper
August 11, 2023
Not bad but maybe you should try adding a little description of each options? Like what the "write buffering" and "In memory cache" means and why you should turn it on or off. Also, the file size should be fully customizable since there's only a few options to choose from. If I remember correctly ½, 2, 4, 8 and 16 are all the options. This is just an app to test the read-write speed and there's a bunch of them on the store. So it's these little features that can make all the difference.
Did you find this helpful?
Maxim Saplin
August 11, 2023
There's exaustive description in About section if the app ([?])

What's new

- Updates to support new Android version
- Recent devices added to DB (Samsung Galaxy S22 and S23, Xiaomi 13)