首页IT科技hibernator-validator(hibernate validate工具,小心你的姿势不对)

hibernator-validator(hibernate validate工具,小心你的姿势不对)

时间2025-06-20 17:11:52分类IT科技浏览4355
导读:系统运营后台有个导入线下交易的功能。产品和运营反馈,当excel数据量超过8千条时,会变得超级慢,动辄要等三四十秒。...

系统运营后台有个导入线下交易的功能            。产品和运营反馈            ,当excel数据量超过8千条时                 ,会变得超级慢      ,动辄要等三四十秒                 。

哎!这么慢         ,搁谁能不闹心呢?

基于此                 ,这两天         ,我觉得优化一下      ,可是                 ,一来二去           ,从昨天周一到现在眼看两天了   ,对代码进行各种排查和调整                  ,还是没有达到理想的效果————至少              ,别让用户傻傻等待超过5秒吧,最次也不能超过10秒吧      。

这两天特殊时期               ,公司的保洁阿姨应该也阳了                 ,始终没来上班         。那么   ,卫生工作就得我们上班族自理了                 。

我四下张望一下            ,两个垃圾桶都满了         。再看小伙伴们都在安静的码代码      。我就收拾一下吧                 。在提着垃圾袋扔垃圾的路上                 ,突然灵光乍现           。是不是数据校验那块导致的呢?————校验用的是Hibernate的validation-api   。

完事回到工位      ,赶紧试试                  。

————峰回路转              。

果然         ,本地测试才惊人地发现                 ,用Hibernate的校验工具         ,8200条数据耗时47s      ,而直接用apache common的util类校验                 ,仅需1~2s。

why?

why?

why?

程序使用不当所致               。先贴出来关键代码:

当针对为数不多的对象来校验           ,发现不出来性能问题                 。但是   ,当达到上面的8000多条数据时                  ,那性能可以差太多了   。

细看控制台打印出来的log              ,可见一斑            。

问题出在 validatorFactory 和 validator 这两个局部对象的初始化上                 。尤其是初始化 validatorFactory调用Validation#buildDefaultValidatorFactory, 这个方法内部会涉及到xml文件的读取和类映射               ,可见                 ,每次都做这个事情   ,CPU表示很无辜!

问题即答案————>优化方案是将这2个对象的初始化放在类初始化时      。

声明:本站所有文章            ,如无特殊说明或标注                 ,均为本站原创发布         。任何个人或组织      ,在未征得本站同意时         ,禁止复制           、盗用                  、采集      、发布本站内容到任何网站        、书籍等各类媒体平台                 。如若本站内容侵犯了原著者的合法权益                 ,可联系我们进行处理         。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
马来西亚虚拟币交易受管制吗(马来西亚虚拟主机购买怎么用)