Return-Path: X-Original-To: apmail-cordova-dev-archive@www.apache.org Delivered-To: apmail-cordova-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 294A318263 for ; Fri, 11 Sep 2015 14:06:32 +0000 (UTC) Received: (qmail 92789 invoked by uid 500); 11 Sep 2015 14:05:57 -0000 Delivered-To: apmail-cordova-dev-archive@cordova.apache.org Received: (qmail 92746 invoked by uid 500); 11 Sep 2015 14:05:57 -0000 Mailing-List: contact dev-help@cordova.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cordova.apache.org Delivered-To: mailing list dev@cordova.apache.org Received: (qmail 92735 invoked by uid 99); 11 Sep 2015 14:05:57 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 11 Sep 2015 14:05:57 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 51887DFBAD; Fri, 11 Sep 2015 14:05:57 +0000 (UTC) From: vladimir-kotikov To: dev@cordova.apache.org Reply-To: dev@cordova.apache.org References: In-Reply-To: Subject: [GitHub] cordova-lib pull request: CB-9297 Parse xcode project syncronously... Content-Type: text/plain Message-Id: <20150911140557.51887DFBAD@git1-us-west.apache.org> Date: Fri, 11 Sep 2015 14:05:57 +0000 (UTC) Github user vladimir-kotikov commented on the pull request: https://github.com/apache/cordova-lib/pull/305#issuecomment-139556202 The `xcode`'s `parse` method uses `child_process.fork` API to run parser in a separate worker process, which then reports parsing result to parent process via `child_process.send`. However `send` became async in node v4 so this communication doesn't work properly now. Although, `parseSync` method is even more efficient (at least for small project) since it doesn't creates a a new instance of node process. From official `child_process` docs: > These child Node.js processes are still whole new instances of V8. Assume at least 30ms startup and 10mb memory for each new Node.js. That is, you cannot create many thousands of them. Also compare execution time for tests from https://github.com/MSOpenTech/cordova-lib/commit/81eef5f7d0ee46a88c2a6836fd87c6c1c1ab216d: ~0.9 seconds for this branch (sync parsing) and ~2.7 second if applied to current master (async). The difference IMO is caused by cost of spawning node processes. --- 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 infrastructure@apache.org or file a JIRA ticket with INFRA. --- --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscribe@cordova.apache.org For additional commands, e-mail: dev-help@cordova.apache.org