Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » 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: 566
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: 566
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
Andreas Hoegger is currently offline Andreas HoeggerFriend
Messages: 185
Registered: February 2010
Senior Member
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: Sun Oct 22 01:19:27 GMT 2017

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

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