Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
Clear All
new posts

    Performance Issue for listGrid with many columns

    Hi,

    We have a performance issue from our client for ListGrid with many columns when "fixedRecordHeights" is false: the mouse over and mouse click actions on records are very slow. If "fixedRecordHeights" is true, these actions perform well.

    This can be reproduced on SmartClient_v83p_2014-10-18_PowerEdition on any browser.

    Please try the following standalone.

    Thanks!

    Code:
    var num = 131,	
    	ds = new Array(),	
    	name = "name";
    	
    for (var i=0 ; i< num; i++) {
    	var dsObj = {};
    	dsObj[name] = 'pk'+i;
    	dsObj['type'] = 'text';
    	dsObj['title'] = 'PK'+i;
    	ds[i] = dsObj;
    }
    
    var rawData = new Array();
    
    for (var i =0; i<num; i++) {
    	var dataObj ={};
    	for (var j=0; j<num; j++) {	
    		var key = 'pk'+ j;
    		dataObj[key] = 'Raw Data '+j;
    	}
    	rawData[i] = dataObj;
    }
    
    
    var fieldData = new Array();
    
    for (var i=0; i<num; i++) {
    	var fieldObj = {};
    	fieldObj['name'] = 'pk'+i;
    	fieldObj['width'] = 100;
    	fieldData[i] = fieldObj;
    }
    		
    isc.DataSource.create({
        ID:"orderItemLocal2",
        clientOnly:true,
        testData:rawData,
        fields:ds
    });
    		
    isc.ListGrid.create({
        ID: "companyList",
    	top: 50,
    	left:100,
        width:800, height: 500,
        autoFetchData:true,
        dataSource:orderItemLocal2,
        fields:fieldData,
    	fixedRecordHeights:false,
    	headerHeight:45
    });

    #2
    Thanks for the test case.
    This actually looks like an issue which has been resolved already in more recent SmartClient branches.
    Is upgrading to 10.0p (or even 9.1p) an option for you?

    Thanks
    Isomorphic Software

    Comment


      #3
      Actually a follow up - we've been able to port a performance fix for this issue back to the 8.3 branch so if upgrading isn't possible at this time, you should be able to work with the 8.3p nightly dated Oct 23rd tomorrow morning.
      (However we of course recommend you consider moving to the latest as soon as convenient, and certainly if you're doing new development, attempting to work on an old branch is a bad idea!)

      Regards
      Isomorphic Software

      Comment


        #4
        Thanks for the quick response!

        We tried the latest 8.3p build and it works fine on FF and Chrome. The performance on IE9 is increased by it is still slow. Is it due to the Native behavior of IE? Is there any way we can handle this? Thanks!

        Comment


          #5
          Before we spend more time on this can we verify:
          - If you run the same test against the latest 10.0p build, does performance seem acceptable for you? How about 9.1p?
          - Is an upgrade to 9.1p or 10.0p an option for you?

          Regards
          Isomorphic Software

          Comment


            #6
            Thanks for the quick response!

            We tried on 9.1p_2014_10_10 build and the performance on IE is the same as that on 8.3p_2014_10_23.

            For this branch we are currently not able to upgrade from 8.3p to 9.1p.

            Thanks!
            Robin

            Comment


              #7
              We've spent a little time investigating and profiling and there's not a lot of "low hanging fruit" here to improve performance beyond that initial boost.

              The basic problem is that when fixed record heights are false, we can't take advantage of incremental rendering as we need to know the height of every cell's content, so we end up rendering out the entire row, and updating the styling of each cell in the row as the user interacts with the grid.
              The work we do per cell is not that onerous but happens to be enough to cause a visible lag in IE9, especially as a lag in this kind of interaction is visually obvious to a user.

              We could potentially spend some more time on this and come up with some refactoring to improve performance on this browser in this particular use case, but this really goes beyond standard support, (and typically we'd want to apply such changes to our active development codebase rather than backporting to an older branch - especially one which is now 2 iterations behind).

              One option to improve user interaction might be to disable rollOver styling for this particular grid configuration?

              Regards
              Isomorphic Software

              Comment

              Working...
              X