GitHub user jasongin opened a pull request:

    https://github.com/apache/cordova-plugin-file/pull/168

    CB-7862: FileReader reads large files in chunks with progress

    I added support in FileReader for reading large files in chunks and 
reporting progress for each chunk. Previously, the Cordova FileReader would 
always read files as a single chunk (resulting in OOM exceptions for files > 10 
MB or so), and would NEVER invoke the onprogress callback. With this change, 
it's possible to read files with sizes up to the actual available application 
memory: I have verified with files over 500 MB. 
    
    The default chunk size of 256 KB is based on some non-scientific timing 
tests I did: it yields only minor overhead from multiple exec() calls while 
still providing frequent-enough progress reports for large files. Much smaller 
chunk sizes could cause large file reads to take significantly longer due to 
the numerous exec() calls (and progress callbacks).
    
    The FileReader.READ_CHUNK_SIZE value is exposed and may be adjusted by app 
code, though I don't expect that is something that would need to be changed 
normally so I didn't add it to the plugin documentation. The added test case 
however does use that capability so that it can verify chunking and progress 
behavior without having to generate a very large file.


You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/jasongin/cordova-plugin-file CB-7862

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/cordova-plugin-file/pull/168.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #168
    
----
commit 30f4a8810586dd048e17311f991a9b29315e7fde
Author: Jason Ginchereau <[email protected]>
Date:   2016-03-08T21:11:21Z

    CB-7862: FileReader reads large files in chunks with progress

----


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to