Return-Path: X-Original-To: apmail-incubator-callback-dev-archive@minotaur.apache.org Delivered-To: apmail-incubator-callback-dev-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 4A1DAD49D for ; Mon, 24 Sep 2012 22:18:10 +0000 (UTC) Received: (qmail 77410 invoked by uid 500); 24 Sep 2012 22:18:09 -0000 Delivered-To: apmail-incubator-callback-dev-archive@incubator.apache.org Received: (qmail 77352 invoked by uid 500); 24 Sep 2012 22:18:08 -0000 Mailing-List: contact callback-dev-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: callback-dev@incubator.apache.org Delivered-To: mailing list callback-dev@incubator.apache.org Received: (qmail 77167 invoked by uid 99); 24 Sep 2012 22:18:08 -0000 Received: from arcas.apache.org (HELO arcas.apache.org) (140.211.11.28) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 24 Sep 2012 22:18:08 +0000 Date: Tue, 25 Sep 2012 09:18:08 +1100 (NCT) From: "Curtiss Howard (JIRA)" To: callback-dev@incubator.apache.org Message-ID: <431658724.119152.1348525088778.JavaMail.jiratomcat@arcas> In-Reply-To: <59735999.116425.1348491427617.JavaMail.jiratomcat@arcas> Subject: [jira] [Commented] (CB-1530) Alleviate PluginManager.exec() performance concerns MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 [ https://issues.apache.org/jira/browse/CB-1530?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13462197#comment-13462197 ] Curtiss Howard commented on CB-1530: ------------------------------------ Hi Andrew, thanks for the quick response. As far as using another JSON library is concerned, we're essentially forced to do so because one particular plugin method can take an enormous argument payload and org.json just isn't cut out for that. We're using Jackson so we can stream everything in. But I think for 99% of cases something like org.json is fine since argument arrays tend to be small and simple, hence why the patch is structured the way it is (I don't want to burden users with having to parse the JSON themselves unless they have to). > Alleviate PluginManager.exec() performance concerns > --------------------------------------------------- > > Key: CB-1530 > URL: https://issues.apache.org/jira/browse/CB-1530 > Project: Apache Cordova > Issue Type: Improvement > Components: Android > Affects Versions: Master > Environment: Android > Reporter: Curtiss Howard > Assignee: Andrew Grieve > Fix For: Master > > > IPlugin and PluginManager use org.json.JSONArray for passing in plugin arguments. When a large JSON object is provided as an argument, performance is very poor as org.json is an eager, in-memory parser. Users should have the ability to bypass PluginManager's automatic JSONArray parsing and instead receive the raw JSON argument string so that a faster JSON library can be leveraged. > The proposed patch includes an IRawPlugin interface containing an exec() method that takes the raw argument string instead of the pre-parsed one. Any plugin that wants to take advantage of this behavior needs to implement IRawPlugin, so current plugins aren't affected. > There is a pull request with the proposed change at https://github.com/apache/incubator-cordova-android/pull/49 -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira