You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cordova.apache.org by "Tim Hambourger (JIRA)" <ji...@apache.org> on 2017/11/09 22:36:01 UTC
[jira] [Created] (CB-13559) Poor performance and crashes
marshalling large ArrayBuffers from JS to Native side on iOS
Tim Hambourger created CB-13559:
-----------------------------------
Summary: Poor performance and crashes marshalling large ArrayBuffers from JS to Native side on iOS
Key: CB-13559
URL: https://issues.apache.org/jira/browse/CB-13559
Project: Apache Cordova
Issue Type: Bug
Components: cordova-ios
Affects Versions: cordova-ios 4.5.0, cordova-ios@4.3.0, cordova-ios@4.4.0
Environment: iOS 10.3 Simulator
Using cordova-plugin-wkwebview-engine
Reporter: Tim Hambourger
Assignee: Suraj Pindoria
Priority: Critical
Attachments: iOS Exec timeline.png
I'm doing performance analysis on an application that's attempting to write an approx. 10 MB Blob to disk using the File plugin. The uint8ToBase64 function called by iOSExec looks like a particular bottleneck. I'm seeing large memory increases followed by GCs taking approx 1.5 secs. The attached screenshot has a typical Safari timeline.
After some initial testing, it looks like re-implementing uint8ToBase64 using String.fromCharCode and window.btoa, rather than string appending, might yield some improvements. Some alternate implementations at [https://github.com/github-tools/github/issues/137] and [https://stackoverflow.com/questions/9267899/arraybuffer-to-base64-encoded-string].
Is this something you would consider taking a look at? We're also weighing strategies to reduce our file size and the frequency of our writes, but a platform-level fix would be a huge help.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@cordova.apache.org
For additional commands, e-mail: issues-help@cordova.apache.org