{ "id": "172826", "key": "TIMOB-26699", "fields": { "issuetype": { "id": "6", "description": "gh.issue.epic.desc", "name": "Epic", "subtask": false }, "project": { "id": "10153", "key": "TIMOB", "name": "Titanium SDK/CLI", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [], "resolution": null, "resolutiondate": null, "created": "2019-01-08T01:03:11.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [], "versions": [ { "id": "20238", "description": "", "name": "Release 7.5.0", "archived": false, "released": true, "releaseDate": "2018-11-15" } ], "issuelinks": [ { "id": "57091", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "inwardIssue": { "id": "172048", "key": "TIMOB-26292", "fields": { "summary": "Windows: Switching to JsRT (Chakra) for better performance", "status": { "description": "The issue is open and ready for the assignee to start work on it.", "name": "Open", "id": "1", "statusCategory": { "id": 2, "key": "new", "colorName": "blue-gray", "name": "To Do" } }, "priority": { "name": "High", "id": "2" }, "issuetype": { "id": "6", "description": "gh.issue.epic.desc", "name": "Epic", "subtask": false } } } } ], "assignee": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "updated": "2019-03-08T02:08:07.000+0000", "status": { "description": "The issue is open and ready for the assignee to start work on it.", "name": "Open", "id": "1", "statusCategory": { "id": 2, "key": "new", "colorName": "blue-gray", "name": "To Do" } }, "components": [ { "id": "12642", "name": "Windows", "description": "Windows authoring support" } ], "description": "Peformance has been the issue on Windows for a long time. From what I observed, some basic JavaScript operations (like calling constructor, accessing properties and functions) against Titanium proxy objects are simply slow. For instance, creating 200 proxy objects on Windows (Titanium 7.4.0.GA) takes about 2 seconds on Windows locally for me.\r\n\r\n{code:javascript}\r\nvar win = Ti.UI.createWindow({ backgroundColor: 'green' });\r\n\r\nwin.addEventListener('open', function() {\r\n var start = +new Date();\r\n for (var i = 0; i < 200; i++) {\r\n win.add(Ti.UI.createView({\r\n width: 50, height: 50, left: i * 10, top: i * 10\r\n }));\r\n }\r\n // setTimeout() effectively push tasks on UI thread.\r\n // This can be useful when you need to see actual UI response time.\r\n setTimeout(function() {\r\n alert((+new Date() - start) + ' m seconds elapsed');\r\n }, 0)\r\n});\r\nwin.open(); \r\n{code}\r\n\r\nWe might be able to \"gradually\" improve performance by fixing following areas:\r\n\r\n* UI rendering engine ... I expect there could be some redundant rendering calls that can be optimized.\r\n* Optimize WinRT API call ... Passing WinRT boundaries are horribly slow. We want to eliminate the calls as much as we can\r\n* HAL ... It is heavy weight framework that is not quite efficient. We might be able to make it more lightweight.\r\n", "attachment": [], "flagged": false, "summary": "Windows: Runtime Performance Improvement", "creator": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "kiguchi", "key": "kota", "displayName": "Kota Iguchi", "active": false, "timeZone": "America/Los_Angeles" }, "environment": null, "comment": { "comments": [], "maxResults": 0, "total": 0, "startAt": 0 } } }