AlittleabouttheappCPDTBenchmark〉Storage﹣Memory﹣RAМ﹣SDCPDT(CrossPlatformDiskTest)isaperformancebenchmarkingappthatmeasuresI/Ospeedofpermanentstorage(internalmemory/NAND/NVMe/UFS/SDcard)andsystemmemory(RAM).
ThisapphasWindows,macOSandLinuxv̲e̲r̲s̲i̲o̲n̲s̲whichallowtoconsistentlyruntestsacrossdeviceswithdifferentoperatingsystems.Theycanbedownloadatthewebsite:https://maxim-saplin.github.io/cpdt_results/?download
In-appresultsdatabasemakesitpossibletocompareyourphone’sperformancetootherandroidsmartphones(e.g.SamsungGalaxyNote10,XiaomiRedmi7etc.)andwidevarietyofdifferentdevicesondifferentplatforms(iPhones,Macs,WindowsPCs,AndroidTVPlayersetc.)
Thebenchmarkingsuiteincludesthefollowing5tests:
◉Permanentstoragetests
┊
╰┄◎Sequentialwrite
┊
╰┄◎Sequentialread
┊
╰┄◎Randomwrite(4KBblock)
┊
╰┄◎Randomread(4KBblock)
◉RAMtest
┊
╰┄◎Memorycopy
-testresultsaregivenasthroughputvaluesmeasuredinMB/s(megabytespersecond).
VarioussettingsareavailableinOptionsmenuandletuserscontrol:
◉Testfilesize
┊
╰┄◎0.5GB┄◎1GB┄◎2GB┄◎4GB┄◎8GB┄◎16GB
◉Writebuffering
┊
╰┄◎On┄◎Off
◉In-memoryfilecaching
┊
╰┄◎On┄◎Off
Forsequentialteststheappbuildstime-seriesgraphs,forrandomtests-histograms.TestresultscanbeexportedtoCSVforfurtheranalysis(eachrowcontainingblockpositioninthetestfileandthroughputmeasured).
HowisCPDTdifferentfromotherapps?MostpopularbenchmarksfocusonCPU/GPU(suchasGeekbench,AnTuTu)andcompletelyignorestorageperformance.
Storageandmemorybenchmarksrarelyletsuserschangeanytestsettingsandlimitedtospecifyingtestfilesize.Controllingbufferingorcachingisnotpossible(e.gAndrobnech)orrequiredevicereloading(e.g.A1SD).
Cachingisamechanismwhichsignificantlyinfluencestestresults.IfitisONtestresultsareaffectedbyRAMspeedsandit’snotpossibletoisolatepermanentstorageperformanceinsuchtests.Coldreadscenarios(e.g.devicebootorfirst-timeapplicationstart)canotbedescribedbycachedreads.Samesituationiswithbufferingwhichaffectswritetests.BufferingusesRAMfortemporarystoringdatabeforepersistingittopermanentstorage.
CPDTdealswithbothcachingandbufferingandbydefaultthoseareOFFwhichmakesitpossibletoconsistentlymeasureandcomparepermanentstorageperformanceacrossdevicesandoperatingsystems.
Whyisstorageandmemoryperformanceimportant?Itdirectlyaffectsthelevelof“perceived”performance.UIfreezescanbedescribedinmanycasesbystuttersatstoragelevel.E.g.displayingaloadedwebpageinbrowserwhenitrequestsdatafromit’scahce,scrollingpicturesingalleryapp(imagingscrollingthousandsofthem),orgoingdownInstagramfeed(previouslyloadedimageswillberequestedfromcachestoredondisk).
ChromebookuserscanusethisappafterenablingGooglePlay.InordertoaccessSD/MemoryCardtheappmustbegranted“Storagepermission”inGooglePlaysettingofChromeOS.
!OTGSupportisNOTguaranteed!IfyoupluganexternalcardreaderorUSBflashdriveintoyourdevice,itmightworkoritmightnot.E.g.SamsungGalaxyS8withAndroid8andNote10withAndroid10workfine.XiaomiMi8SE(Android9),Meizu16th(Android8.1)andLGNexus5x(Android6)don'twork(thoughyou'llstillbeabletoseethedriveinthesystem).Whyisthat?AndroidOSdoesn'thaveaconsistentmodelworkingwithexternallyconnectedstoragedevices.Somedevicemanufacturersdoagoodjob(suchasSamsung)byproperlymountingthedeviceandmakingitavailableviadefaultAPI(Context.getExternalFilesDir()).OthersrequiretricksorimplementingmanufacturespecificAPIs.Android10promisestoputanendtothismess.
Theprojectisopen-sourceandyou'rewelcometovisitit'spageatGitHub:
https://github.com/maxim-saplin/CrossPlatformDiskTest
Show More