Results 1 to 8 of 8

Thread: Dynamic Content

  1. #1
    Member
    Join Date
    Aug 2007
    Location
    Bangalore
    Posts
    11

    Dynamic Content

    If I want to modify the Stock List Demo to add or remove items from the UI, what are the options that I have? I see two.

    1. On every add/delete of an item, unsubscribe the current table, change the contents of items array and subscribe again - In this approach, the problem is even for adding a new item, I end up unsubscribing and resubscribing for the other items in the table. This is a huge problem if the list that I ve is huge.

    2. Create a new NonVisualTable for every item in my list and manually handle updating the data on the DataGrid. So everytime I add a new item, I ll create a new NonVisualTable and everytime I remove an item, I ll unsubscribe only that table - Again, the problem with this approach is when I create a huge list, I end up creating many nonVisualTables. When there are frequent updates for each of the item, the CPU usage and memory usage of the client goes high.

    Is there any other cleaner approach that I can follow to acheive this?

    - Venki

  2. #2
    Power Member
    Join Date
    Jul 2006
    Location
    Cesano Maderno, Italy
    Posts
    784
    Hi,

    I'm sorry but presently the 2 options shown are the only available.
    I advice to use option number 2.

    Quote Originally Posted by venkihere
    When there are frequent updates for each of the item, the CPU usage and memory usage of the client goes high.
    Do you mean that having five NonVisualTable with one item each updating the same grid is more expensive than having 1 VisualTable with five items?

  3. #3
    Member
    Join Date
    Aug 2007
    Location
    Bangalore
    Posts
    11
    Quote Originally Posted by Mone
    Do you mean that having five NonVisualTable with one item each updating the same grid is more expensive than having 1 VisualTable with five items?
    Yes.. I tried a page with about 25 nonVisualTables on my page with an average update rate of about 100 events per second per page. The CPU usage (IE alone) went above 90% and the page was using about 300 mb memory in about a couple of hours. I am not sure whether this behaviour is because of the number of nonVisualTables or the number of events.

  4. #4
    Power Member
    Join Date
    Jul 2006
    Location
    Cesano Maderno, Italy
    Posts
    784
    Did you see that -on the same PC- using a VisualTable with the same number of item/fields/updates is much better?

    How do you show new updates when you're using NonVisualTables?

  5. #5
    Member
    Join Date
    Aug 2007
    Location
    Bangalore
    Posts
    11
    Quote Originally Posted by Mone
    How do you show new updates when you're using NonVisualTables?
    I have an ArrayCollection backing up my Datagrid as a data provider. On every NonVisualItemUpdateEvent, the even listener method will update the appropriate position in the data provider depending on what column has been changed. This is done by iterating through all the columns that the client has subscribed for and do updateEvent.isFieldChanged(<<field>>) check.
    I also have a separate ArrayCollection to hold on to each of the nonVisualTables created.


    Quote Originally Posted by Mone
    Did you see that -on the same PC- using a VisualTable with the same number of item/fields/updates is much better?
    I have not checked this. I ll check it and I ll let you know today.

  6. #6
    Power Member
    Join Date
    Jul 2006
    Location
    Cesano Maderno, Italy
    Posts
    784
    Hi,

    how do you update your data provider?

    Our VisualTable class extends the core ArrayCollection class.
    Apart from the logic, to update the view we use something similar to this code:


    Hope that helps.

  7. #7
    Member
    Join Date
    Aug 2007
    Location
    Bangalore
    Posts
    11
    That with a couple of other changes helped in bringing down the cpu usage from 90% to 40%. Even a page that works with VisualTable takes same amount of cpu. But the memory usage was about 20% better than the NonVisualTable approach.

    But I still feel 40% cpu usage on the client side is bad in either approaches. What could be wrong?

  8. #8
    Power Member
    Join Date
    Jul 2006
    Location
    Cesano Maderno, Italy
    Posts
    784
    Hello,

    Most of the CPU is used to show data on video. You could remove visual effects (if any), reduce the number of updates per second and so on to try to get better performance.

    Please try to subscribe your NonVisualTables but remove every visual "notification" (i.e. just subscribe and use an empty NonVisualItemUpdateEvent listener). How much CPU is used?

    With the NonVisualTable approach more memory is used because each item must be handled by 2 objects (the ArrayCollection and the NonVisualTable) and so some data is kept by both. The VisualTable extends the ArrayCollection and is written so there is no redundancy on data.

    Moreover the Flash player uses a "step" approach to allocate memory from the system. See http://blogs.adobe.com/aharui/2007/0...nd_memory.html

 

 

Similar Threads

  1. Replies: 1
    Last Post: August 16th, 2010, 10:31 AM
  2. Replies: 1
    Last Post: August 16th, 2010, 10:31 AM
  3. Add dynamic data in Server and update it to Client
    By giangum in forum Client APIs
    Replies: 1
    Last Post: September 1st, 2009, 10:20 AM
  4. status change when the content length is reached
    By riwang in forum Client APIs
    Replies: 3
    Last Post: May 21st, 2009, 10:37 AM
  5. Returning dynamic list of stockItems
    By rsouissi in forum Adapter APIs
    Replies: 7
    Last Post: December 11th, 2006, 10:26 AM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
All times are GMT +1. The time now is 08:45 AM.