1.问题及分析

流程使用dom4j获取getXmlReader(),堆栈和耗时信息如下。最终会调用com.tongweb.container.webresources.StandardRoot.getResourcesInternal这个方法,该方法通过arthas监控可以看出耗时需要5700ms左右,严重影响流程界面的发布、查询等功能。

根据debug分析,该方法每次都会扫描所有的jar包,导致耗时很长。

2.对比Tomcat内置容器(Tomcat没有该问题)

调用堆栈信息如下:

对比发现 tomcat-embed中org.apache.catalina.webresources. StandardRoot 中的allResources中jarResources为空;

而tongWeb中com.tongweb.container.webresources.StandardRoot中allResources中的jarResources为305。

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐