Uploaded image for project: 'Titanium SDK/CLI'
  1. Titanium SDK/CLI
  2. TIMOB-26699

Windows: Runtime Performance Improvement

    Details

    • Type: Epic
    • Status: Open
    • Priority: High
    • Resolution: Unresolved
    • Affects Version/s: Release 7.5.0
    • Fix Version/s: None
    • Component/s: Windows
    • Labels:
      None
    • Epic Name:
      Windows Runtime Performance Improvement
    • Story Points:
      23

      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.

      var win = Ti.UI.createWindow({ backgroundColor: 'green' });
       
      win.addEventListener('open', function() {
          var start = +new Date();
          for (var i = 0; i < 200; i++) {
              win.add(Ti.UI.createView({
                  width: 50, height: 50, left: i * 10, top: i * 10
              }));
          }
          // setTimeout() effectively push tasks on UI thread.
          // This can be useful when you need to see actual UI response time.
          setTimeout(function() {
              alert((+new Date() - start) + ' m seconds elapsed');
          }, 0)
      });
      win.open(); 
      

      We might be able to "gradually" improve performance by fixing following areas:

      • UI rendering engine ... I expect there could be some redundant rendering calls that can be optimized.
      • Optimize WinRT API call ... Passing WinRT boundaries are horribly slow. We want to eliminate the calls as much as we can
      • HAL ... It is heavy weight framework that is not quite efficient. We might be able to make it more lightweight.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                kiguchi Kota Iguchi
                Reporter:
                kiguchi Kota Iguchi
              • Watchers:
                1 Start watching this issue

                Dates

                • Created:
                  Updated:

                  Backbone Issue Sync

                  • Titanium SDK/CLI <> Titanium Mobile
                    Synced with:
                    TIMOB-6806
                    Sync status:
                    ERROR
                    Last received:
                    Last sent:

                    Git Source Code