Announcement

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

    Huge time delay difference between 3.0 and 3.1p

    1. SmartGWT 3.1p 2012-12-18.
    2. FireFox 17.0.1
    3. com.isomorphic.jpa.JPA2DataSource implementation.

    We have complex DataSource with several foreign keys. Complete fetch request contains about 10 joins and 100 fields. We shrink data size to 75 records (limit 0,75).
    Database returns data in about 100 ms. The data appears in a grid only in 7 seconds. It's very sad for 75 records.

    We tested the same data structure and the request with SmartGWT 3.0 2012-09-25. Result is about 2 seconds to show the grid with data.

    We got some debug that could be useful to understand the problem.

    SmartGWT 3.1p 2012-12-18:
    Code:
    [#|2012-12-26T16:55:30.146+0300|INFO|glassfish3.1.2|javax.enterprise.system.std.com.sun.enterprise.server.logging|_ThreadID=79;_ThreadName=Thread-2;|=== 2012-12-26 16:55:30,146 [0(1)] DEBUG Timing - Time to convert java.util.ArrayList to JS Object: 4953ms
    SmartGWT 3.0 2012-09-25:
    Code:
    [#|2012-12-29T12:03:46.311+0300|INFO|glassfish3.1.2|javax.enterprise.system.std.com.sun.enterprise.server.logging|_ThreadID=82;_ThreadName=Thread-2;|=== 2012-12-29 12:03:46,311 [0(3)] DEBUG Timing - Time to convert java.util.ArrayList to JS Object: 714ms
    So we have difference of performance about 7 times.
    Last edited by vold_by; 29 Dec 2012, 02:46.

    #2
    This isn't nearly enough to troubleshoot the issue, or even to suggest a behavior difference in SmartGWT.. We'd recommend looking at the returned results using the RPC tab, the difference is probably different JPA definitions in the two environments where you are testing causing more data to be returned.

    Note, in general we recommend SQLDataSource over JPA as it doesn't have any of the eager fetching problems that probably underly this issue, nor does it require pointless creation of nested bean structures when retrieving results of complex joins.

    Comment


      #3
      We'd recommend looking at the returned results using the RPC tab, the difference is probably different JPA definitions in the two environments where you are testing causing more data to be returned.
      The returned results are equal. In fact we just replaced libraries in the same project to the 3.0 version so we had the same request to the same database and all other conditions were the same.
      Last edited by vold_by; 30 Dec 2012, 10:41.

      Comment


        #4
        There's not much we can with this report with so little information. You're showing a small amount of time difference (not the entire delta) in the time taken for a method that mostly calls getter methods on your beans (it has very little of its own execution time).

        So, despite assurances of an identical environment, the only data we have suggests time differences outside of SmartGWT code.

        If you really believe it's a framework performance regression, the best thing to do is create a runnable test case that shows a large time difference from 3.0 to 3.1.

        Comment

        Working...
        X