empire-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ivan Nemeth (JIRA)" <empire-db-...@incubator.apache.org>
Subject [jira] [Created] (EMPIREDB-213) DBReader performance improvement with field caching
Date Mon, 29 Sep 2014 06:12:34 GMT
Ivan Nemeth created EMPIREDB-213:
------------------------------------

             Summary: DBReader performance improvement with field caching
                 Key: EMPIREDB-213
                 URL: https://issues.apache.org/jira/browse/EMPIREDB-213
             Project: Empire-DB
          Issue Type: Improvement
            Reporter: Ivan Nemeth


DBReader can be much faster for resultsets with many columns if the getFieldIndex(ColumnExpr
c) method uses some kind of caching. The following code is 10 times faster for a resultset
with 20000 rows and 70 columns.

public class MyDBReader extends DBReader {

	private static final long serialVersionUID = 1L;
	
	private Map<ColumnExpr, Integer> fieldIndices = new HashMap<ColumnExpr, Integer>();

	@Override
	public int getFieldIndex(ColumnExpr column) {
		Integer i = fieldIndices.get(column);
		if (i == null){
			i = super.getFieldIndex(column);
			fieldIndices.put(column, i);
		}
		return i;
	}
	
}




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message