Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Eclipse Scout » TablePage / TableField performance problems when removing a large number of rows
TablePage / TableField performance problems when removing a large number of rows [message #1467960] Mon, 10 November 2014 13:00 Go to next message
Urs Beeli is currently offline Urs BeeliFriend
Messages: 573
Registered: October 2012
Location: Bern, Switzerland
Senior Member
The problem below manifests itself with the SWT client, I have not tried to see how it behaves with Swing.

I have a table page which contains 10 columns. The first one is AbstractColumn<Entity>, one is AbstractTimeColumn and the other 8 are AbstractStringColumns.

Depending on the search criteria in the search form (or the lack thereof) this table page sometimes contains between 5 and 50 rows, but can go up to 2000-6000 rows.

Interestingly, displaying a large number of rows does not take much time (running a query yielding 2000 rows takes a few seconds from DB through the server to the client until the number of records is shown below the table, then roughly another 3-5 seconds until the 2000 rows are shown in the table itself).

However, going back from this 2000 row table back to a table displaying only 5 rows is where I run into a huge performance hit. It takes less than one second until the summary line below the table changes to 5 records but then it takes more then 45 seconds with a wait cursor and the application "Not responding" until the table is cleared of the old rows and the 5 new rows are displayed.

I've tried to debug this using JProfiler but could not find anything telling me where this time is spent. While the update is running the method createAndRunWorkbench() is consuming most of the CPU time but it does not seem to call any methods that spend a lot of time (at least not as far as I could determine). The heap graph creates several peaks that I don't understand but so far I've been unable to understand where it is that something expensive takes place.
index.php/fa/19823/0/

I've been able to reproduce the problem with the attached minimal scout application. Steps to reproduce the problem:
- unpack zip
- import into workspace
- set target
- build
- start server
- start client
- in search form enter 5 + press search -> 5 entries are shown very fast
- in search form enter 2000 + press search -> 2000 entries are shown within a few seconds
- in search form enter 5 + press search -> it takes several dozens of seconds for the table to be updated

The application does not make use of any services, the data is created on the fly in the table page based on the input in the search form in order to demonstrate that the issue is purely client side.

Is this a known bug? Intended behaviour? Or am I doing something pathological?
Re: TablePage / TableField performance problems when removing a large number of rows [message #1467988 is a reply to message #1467960] Mon, 10 November 2014 13:33 Go to previous messageGo to next message
Urs Beeli is currently offline Urs BeeliFriend
Messages: 573
Registered: October 2012
Location: Bern, Switzerland
Senior Member
And just because I was curious if this had anything to do with my use of this PerfEntity class, I've changed the code creating the table rows to use strings directly:

      List<Object> row = new ArrayList<Object>();
//      PerfEntity entity = new PerfEntity(i);

//      row.add(entity);
//      row.add(entity.getName());
//      row.add(entity.getFieldA());
//      row.add(entity.getFieldB());
//      row.add(entity.getFieldC());
//      row.add(entity.getFieldD());
//      row.add(entity.getFieldE());
//      row.add(entity.getFieldF());
//      row.add(entity.getFieldG());
//      row.add(entity.getFieldH());

      row.add(null);
      row.add("name " + i);
      row.add("field a " + i);
      row.add("field b " + i);
      row.add("field c " + i);
      row.add("field d " + i);
      row.add("field e " + i);
      row.add("field f " + i);
      row.add("field g " + i);
      row.add("field h " + i);


But this change has no significant effect.
Re: TablePage / TableField performance problems when removing a large number of rows [message #1515775 is a reply to message #1467988] Thu, 18 December 2014 11:10 Go to previous message
Eclipse UserFriend
This issue has been resolved with BUG 453986. Thank you Urs for reporting and analyzing.

-andreas
Previous Topic:Smart-Field - re-initialize
Next Topic:Editable table data loading performance issue
Goto Forum:
  


Current Time: Thu Apr 25 07:01:01 GMT 2024

Powered by FUDForum. Page generated in 0.02626 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top