cordova-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Tim Hambourger (JIRA)" <>
Subject [jira] [Commented] (CB-13559) Poor performance and crashes marshalling large ArrayBuffers from JS to Native side on iOS
Date Fri, 10 Nov 2017 19:03:00 GMT


Tim Hambourger commented on CB-13559:

I also tested on an iPad Mini 2 running iOS 9.3.4. That's where I observed the crashes (specifically,
the WKWebView would reload unexpectedly). My testing on device and in simulator has all been
consistent w/ uint8ToBase64 being a bottleneck.

> Poor performance and crashes marshalling large ArrayBuffers from JS to Native side on
> -----------------------------------------------------------------------------------------
>                 Key: CB-13559
>                 URL:
>             Project: Apache Cordova
>          Issue Type: Bug
>          Components: cordova-ios
>    Affects Versions: cordova-ios@4.4.0, cordova-ios@4.3.0, cordova-ios 4.5.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 [] and [].
> 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

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message