Java StatefullSession重复加载类-导致性能问题

Java StatefullSession重复加载类-导致性能问题,java,multithreading,classloader,drools,Java,Multithreading,Classloader,Drools,我有一个获取请求并使用DROOLS评估请求的服务器 对于每个传入的请求,我创建一个新的statefull会话,插入事实(可以超过100个事实),触发所有规则并处理会话 我发现每次插入事实都会导致drools转到ProjectClassLoader.loadClasss(),这是同步的,并阻塞我的线程(我正在使用service executor运行可用的处理器线程,这会导致性能问题) 重要的是要说明所讨论的所有事实都是相同的。我们使用多个线程来评估几个不同的请求,这些请求具有与事实相同的代码。我们

我有一个获取请求并使用DROOLS评估请求的服务器

对于每个传入的请求,我创建一个新的statefull会话,插入事实(可以超过100个事实),触发所有规则并处理会话

我发现每次插入事实都会导致drools转到
ProjectClassLoader.loadClasss()
,这是
同步的
,并阻塞我的线程(我正在使用service executor运行可用的处理器线程,这会导致性能问题)

重要的是要说明所讨论的所有事实都是相同的。我们使用多个线程来评估几个不同的请求,这些请求具有与事实相同的代码。我们希望Drools不必一次又一次地重新加载类


您知道如何避免每次插入时都将口水流到
synchronized
loadClass()
代码中吗

您确定类X的第二个事实也会发生这种情况吗?为什么不在有状态bean的静态部分初始化Drools呢?为什么它是有状态的而不是单一的?一些代码会有帮助…Laune,与调试器和分析器一起工作-确保代码是重复的。Simon,我需要状态完整会话,但我使用singleton配置对象创建它,它不能解决问题。同时,在Drools开发者论坛上,我得到了一个回应,有一个瓶颈,打开了一个JIRA: