{"id":27547,"date":"2014-11-21T08:41:35","date_gmt":"2014-11-21T13:41:35","guid":{"rendered":"http:\/\/www.opensource.im\/?p=27547"},"modified":"2014-11-21T08:41:35","modified_gmt":"2014-11-21T13:41:35","slug":"encryption-and-storage-performance-in-android-5-0-lollipop","status":"publish","type":"post","link":"https:\/\/euvolution.com\/open-source-convergence\/encryption\/encryption-and-storage-performance-in-android-5-0-lollipop.php","title":{"rendered":"Encryption and Storage Performance in Android 5.0 Lollipop"},"content":{"rendered":"<p><p>    As alluded to in our Nexus 6 review, our normal storage    performance benchmark was no longer giving valid results as of    Android 5.0. While Androbench was not a perfect benchmark by    any stretch of the imagination, it was a reasonably accurate    test of basic storage performance. However, with the Nexus 5 on    Androids developer preview, we saw anywhere between 2-10x    improvement to Androbenchs storage performance results with no    real basis in reality. It seems that this is because the way    that the benchmark was written relied upon another function for    timing, which has changed with Android 5.0.  <\/p>\n<p>    While we havent talked too much about AndEBench, it has a    fully functional storage test that we can compare to our    Androbench results. While were unsure of the 256K sequential    and random read results, it seems that the results are    equivalent to Androbench on Android 4.4 when a 1.7x scaling    factor is applied. However, AndEBench results should be    trustworthy as we saw no difference in results when updating    devices from 4.4 to 5.0. In addition, the benchmark itself uses    low level operations that shouldnt be affected by updates to    Android.  <\/p>\n<p>    As you can see, the results show a degree of improvement that    is well beyond what could realistically be accomplished with    any sort of software optimizations. The results for the random    write test are the most notable, with a result that suggests    the performance is over 17x faster on Android Lollipop, which    could not be the case. This required further investigation,    andit's one of the reasons why we were hesitant to    post any storage benchmarks in the Nexus 6 review.  <\/p>\n<p>    The other factor affecting the results of the benchmarks on the    Nexus 6 specifically is Android Lollipop's Full Disk Encryption    (FDE). Android has actually had this ability since Android    3.0Honeycomb, but Lollipop is the first time it's being    enabled by default on new devices. When FDE is enabled, all    writes to disk have the informationencrypted before it's    committed, and all reads have the information decrypted before    they're returned to the process. The key to decrypt is    protected by the lockscreen password, which means that the data    should be safe from anyone who takes possession of your device.        However, unlike SSDs, which often have native encryption,    eMMC has no such standard. In addition, most SoCs don't have    the type of fixed-function blocks necessary to enable FDE with    little to no performance penalty.  <\/p>\n<p>    As a result, we've observed significant performance penalties    caused by the use of FDE on the Nexus 6. Motorola was kind    enough to reach out and provide a build with FDE disabled so we    could compare performance, and we've put the results in the    graphs below. For reference, the Nexus 5 (Lollipop) numbers are    run using Andebench, while the original values are read out    from Androbench on Android 4.4. The Nexus 5 is also running    without FDE enabled, as it will not enable itself by default    when updating to Lollipop via an OTA update.  <\/p>\n<\/p>\n<\/p>\n<p>    As you can see, there's a very significant performance penalty    that comes with enabling FDE, with a 62.9% drop in random read    performance, a 50.5% drop in random write performance, and a    staggering 80.7% drop in sequential read performance. This has    serious negative implications for device performance in any    situation where applications are reading or writing to disk.    Google's move to enable FDE by default also may not be very    helpful with real world security without a change in user    behaviour, as much of the security comes from the use of a    passcode.This poses a problem, because the users that    don't use a passcode doesn't really benefit from FDE, but    they're still subject to the penalties.  <\/p>\n<p>    When the Nexus 6 review was published, I commented that there    were performance issues that weren't present on the Nexus 5    running Android Lollipop. Many users commented that the FDE may    have been to blame. Like I mentioned earlier, Motorola provided    us with a build of Android with FDE disabled. Unfortunately, I    haven't noticed any improvements to many of the areas where    there are significant frame rate issues such as Messenger and    Calendar. I speculated in the Nexus 6 review that the    performance issues may simply be the result of insufficient GPU    performance or memory bandwidth to drive the QHD display.  <\/p>\n<p><!-- Auto Generated --><\/p>\n<p>Read the original here:<br \/>\n<a target=\"_blank\" href=\"http:\/\/www.anandtech.com\/show\/8725\/encryption-and-storage-performance-in-android-50-lollipop\/RK=0\/RS=UeNmap6tTL5eVlv7_impYyWw._E-\" title=\"Encryption and Storage Performance in Android 5.0 Lollipop\">Encryption and Storage Performance in Android 5.0 Lollipop<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p> As alluded to in our Nexus 6 review, our normal storage performance benchmark was no longer giving valid results as of Android 5.0. While Androbench was not a perfect benchmark by any stretch of the imagination, it was a reasonably accurate test of basic storage performance. However, with the Nexus 5 on Androids developer preview, we saw anywhere between 2-10x improvement to Androbenchs storage performance results with no real basis in reality. <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[45],"tags":[],"class_list":["post-27547","post","type-post","status-publish","format-standard","hentry","category-encryption"],"_links":{"self":[{"href":"https:\/\/euvolution.com\/open-source-convergence\/wp-json\/wp\/v2\/posts\/27547"}],"collection":[{"href":"https:\/\/euvolution.com\/open-source-convergence\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/euvolution.com\/open-source-convergence\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/euvolution.com\/open-source-convergence\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/euvolution.com\/open-source-convergence\/wp-json\/wp\/v2\/comments?post=27547"}],"version-history":[{"count":0,"href":"https:\/\/euvolution.com\/open-source-convergence\/wp-json\/wp\/v2\/posts\/27547\/revisions"}],"wp:attachment":[{"href":"https:\/\/euvolution.com\/open-source-convergence\/wp-json\/wp\/v2\/media?parent=27547"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/euvolution.com\/open-source-convergence\/wp-json\/wp\/v2\/categories?post=27547"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/euvolution.com\/open-source-convergence\/wp-json\/wp\/v2\/tags?post=27547"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}