[ https://issues.apache.org/jira/browse/CB-12085?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Nikita Matrosov resolved CB-12085. ---------------------------------- Resolution: Won't Fix > FileReader#readAsArrayBuffer reads whole file > --------------------------------------------- > > Key: CB-12085 > URL: https://issues.apache.org/jira/browse/CB-12085 > Project: Apache Cordova > Issue Type: Bug > Components: cordova-plugin-file > Affects Versions: 4.3.0 > Environment: Android > Reporter: Damian Senn > Assignee: Nikita Matrosov > Priority: Critical > Labels: performance > > Reading a File with > ```js > let fr = new FileReader > fr.onload = () => done(fs.result) > fr.readAsArrayBuffer(blob) > ``` > Is very slow, I'm assuming this is because it reads the whole file, then > transfers this via base64 to the JS world, where it is converted to an > ArrayBuffer. My use-case involves reading some media metadata in JS-World, > this usually involves reading several bytes (maybe around 100b to 1kb) of 2mb > to 50mb files. > I noticed this by profiling via Chrome-DevTools where the most time is being > spent in the `atob` function in `cordova/base64.toArrayBuffer`. > So parsing some hundreds of bytes on a 3mb file may take around 3 to 4 > seconds on my Samsung Galaxy S4 and around 1 second on my Samsung Galaxy S6. > (This is without trying to read the actual metadata from the file). > My guess is that this also has a very negative impact on memory usage and > garbage collection. -- This message was sent by Atlassian JIRA (v6.4.14#64029) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@cordova.apache.org For additional commands, e-mail: issues-h...@cordova.apache.org