Eclipse scout performance

100 views Asked by At

Good morning, I'm using Scout Java version framework, with Oracle Java 17 e Tomcat 9.0.70 on Debian 11, when populating tables, TablePage, with many rows, 10,000-50,000 or more, from Postgresql database, cpu usage by Java, exceeds 100% and execution is slow.

I've made many attempts to optimize both Java and Tomcat with little success.

With ScoutJS, do I solve the problem? Or at least get a performance boost?

Any suggestions are welcome.

Thanks for the attention.

1

There are 1 answers

0
kadom On BEST ANSWER

The SqlService helper classes use reflection a lot. This is why they can be very inefficient in these cases. I gained a ~70% time improvement by changing from

        SQL.selectInto(sqlString, new NVPair("page", pageData));

to

        Object[][] result = SQL.select(sqlString);
        for (Object[] line : result) {
            PersonTableRowData row = new PersonTableRowData();
            if (line[0]!=null) row.setId((Long)line[0]);
            if (line[1]!=null) row.setName((String)line[1]);
            if (line[2]!=null) row.setPhone((String)line[2]);
            // ....

            pageData.addRow(row);
        }

Of course you loose flexibility here, like when changing the model you also have to your code here.