Hibernate / JPA中注释字段或getter方法之间的性能差异
问题内容:
我很好奇是否有人在使用私有字段而不是公共获取方法注释实体之间的性能差异方面有任何困难的数字。我听说人们说字段变慢了,因为它们被称为“通过反射”,但是getter方法也是,不是吗?Hibernate需要它试图读它,我可以看到有一些前场的无障碍设置为true
轻微的
开销。但是,不是在Session范围内的Class级别上执行此操作,还是在读取Configuration并构建SessionFactory时仅执行一次?
只是好奇这是一个神话还是真的有道理?我个人发现对字段进行注释更具可读性。
问题答案:
将5000条记录加载到一个简单的3列表中。将两个类映射到该表,一个类使用带注释的私有字段,另一个使用带注释的公共获取方法。运行Spring的HibernateTemplate.loadAll(),然后运行HibernateTemplate.clear()进行30次,以清除会话缓存。结果以毫秒为单位…
方法总计:6510,平均:217
字段总数:6586,平均:219
在为每个类添加更多属性之后,我可能应该再刺一眼,但现在这种差异在统计上似乎并不明显。