domaframework / doma

DAO oriented database mapping framework for Java
https://doma.readthedocs.io/
Apache License 2.0
447 stars 70 forks source link

Cannot compile class entity generated by doma-processor in version > 2.28.0 #420

Closed ldcuong closed 4 years ago

ldcuong commented 4 years ago

My eclipse max 8GB memory but cannot finish compiler task. Out of memory error when compile entity from .apt_generated. Can you optimize generated class by doma-processor?

My project have 199 entity. Each entity have min 200 column and max 500 column.

nakamura-to commented 4 years ago

Hi. Could you tell me more details?

ldcuong commented 4 years ago

Thank you for reply. @nakamura-to

Which version of Java do you use? -> I using Java 8 Which version of Eclipse do you use? -> Eclipse version 2018-09(4.9.0) Build 20180917-1800 Do you build your project with Gradle? -> Yes I build project with Grade version 5.5.1 And does it work without OutOfMemoryError? -> It's working on version DOMA 2.19.2 but OutOfMemory on latest version (2.34.0) Where do you think the bottleneck is? Is the constructor of the generated class too long? -> I think because my entity have large column size so class entity generated by DOMA new many Object => OOM. (My eclipse setting 8GB memory for compile)


I try apply DOMA version 2.34.0 to small project and sample project on https://github.com/domaframework/simple-boilerplate. Both of them compile is OK and working normal but cannot compile in large project.

If you need more information, please inform me.

Thanks

nakamura-to commented 4 years ago

Thanks for your information.

I was able to reproduce the problem. I will investigate the cause.

nakamura-to commented 4 years ago

I found the ClassName::new syntax was slow. This fix will be included in next version.

ldcuong commented 4 years ago

@nakamura-to Wow, very fast. Thank you for your hard working. I waiting next version for using Criteria API.