ICEfaces
  1. ICEfaces
  2. ICE-7573

ACE partial state saving of row specific properties

    Details

    • Type: Improvement Improvement
    • Status: Open
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: 3.0.RC1
    • Fix Version/s: None
    • Component/s: ACE-Components
    • Labels:
      None
    • Environment:
      ACE

      Description

      With our ACE components, we have special getter and setter methods that control storing the tag attribute specified value of a component property (which can also be specified programmatically in Java), as well as the property value for any and all clientIds that the component may have, as it is iteratively stamped out in any iterative container. Something that might save memory is if instead of simply storing the row specific property value, we see if it differs from the tag attribute specified property value, and only storing different values. There will be a slightly higher CPU cost from having to access the tag attribute specified value and use equals() on each property set, so we should verify that we're saving some tangible amount of memory.

        Activity

        Mark Collette created issue -
        Hide
        Mark Collette added a comment -

        As well, the tag specified value, and any row specific value, need only be saved if they differ from the hard-coded default value.

        Show
        Mark Collette added a comment - As well, the tag specified value, and any row specific value, need only be saved if they differ from the hard-coded default value.
        Mark Collette made changes -
        Field Original Value New Value
        Salesforce Case []
        Fix Version/s 3.1 [ 10312 ]
        Description With our ACE components, we have special getter and setter methods that control storing the default value of a component property, as specified in the tag or programmatically, as well as the property value for any and all clientIds that the component may have, as it is iteratively stamped out in any iterative container. Something that might save memory is if instead of simply storing the row specific property value, we see if it differs from the default property value, and only storing different values. There will be a slightly higher CPU cost from having to access the default value and use equals() on each property set, so we should verify that we're saving some tangible amount of memory.
        With our ACE components, we have special getter and setter methods that control storing the tag attribute specified value of a component property (which can also be specified programmatically in Java), as well as the property value for any and all clientIds that the component may have, as it is iteratively stamped out in any iterative container. Something that might save memory is if instead of simply storing the row specific property value, we see if it differs from the tag attribute specified property value, and only storing different values. There will be a slightly higher CPU cost from having to access the tag attribute specified value and use equals() on each property set, so we should verify that we're saving some tangible amount of memory.
        Assignee Mark Collette [ mark.collette ]
        Ken Fyten made changes -
        Salesforce Case []
        Fix Version/s 3.2 [ 10338 ]
        Fix Version/s 3.1 [ 10312 ]
        Hide
        Ken Fyten added a comment - - edited

        Need to review and consider current Mojarra and MyFaces JSF behaviours when looking at this.

        Show
        Ken Fyten added a comment - - edited Need to review and consider current Mojarra and MyFaces JSF behaviours when looking at this.
        Migration made changes -
        Fix Version/s 3.3 [ 10370 ]
        Fix Version/s 3.2 [ 10338 ]
        Hide
        Mark Collette added a comment -

        No need to consider Mojarra or MyFaces. The savings would really just be from less clientId keys in the property map, as it would not store a per-row value if it matched what the component's typical value would be, which is one of either the tag's attribute's value, or if none was specified then the property's default value. This would be a generator change to the ACE property setter method generation. It wouldn't affect properties bound to EL expressions at all.

        Show
        Mark Collette added a comment - No need to consider Mojarra or MyFaces. The savings would really just be from less clientId keys in the property map, as it would not store a per-row value if it matched what the component's typical value would be, which is one of either the tag's attribute's value, or if none was specified then the property's default value. This would be a generator change to the ACE property setter method generation. It wouldn't affect properties bound to EL expressions at all.
        Hide
        Ken Fyten added a comment -

        Consider for 4.0.

        Show
        Ken Fyten added a comment - Consider for 4.0.
        Ken Fyten made changes -
        Fix Version/s 4.0 [ 10671 ]
        Fix Version/s 3.3 [ 10370 ]
        Assignee Mark Collette [ mark.collette ]
        Ken Fyten made changes -
        Fix Version/s 3.4 [ 10770 ]
        Fix Version/s 4.0 [ 10671 ]
        Ken Fyten made changes -
        Fix Version/s 4.1 [ 11375 ]
        Fix Version/s 4.0.BETA [ 10770 ]
        Ken Fyten made changes -
        Fix Version/s 4.1 [ 11375 ]

          People

          • Assignee:
            Unassigned
            Reporter:
            Mark Collette
          • Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

            • Created:
              Updated: