mysema/querydsl — pull request #464 by oehme (2013-07-30 20:24:52+00:00)
Title: Improve performance of QBean.newInstance()

I am currently introducing QueryDSL to a large financial batch processing application. During profiling sessions I stumbled upon a performance problem:

When selecting large entities (like 100-200 columns), the method QBean.newInstance() amounts to about 30% of the whole runtime. Specifically, the time is spent in ImmutableList.indexOf().

I have improved on this by using a simple indexed loop over the "bindings" map. I also changed it from Map to ImmutableMap and got rid of the "args" field, since this can be cheaply created from the immutable map.