在多线程读58万数据处理后写入到另外一张表中性能调优实例遇到第一个问题就是drools的性能瓶颈,对CPU消耗比加大,那么如何优化呢?

从下图看到i5-8250U的计算能力应该不行,这个时候终于知道cpu好,会能起到什么效果了。

使用arthas可以定位到,有两个地方耗费时间Results results = kieHelper.verify();和KieBase kieBase = kieHelper.build(config);
public KieSession decodeToSession(String... drl) {
KieHelper kieHelper = new KieHelper();
String[] var3 = drl;
int var4 = drl.length;
for(int var5 = 0; var5 < var4; ++var5) {
String s = var3[var5];
kieHelper.addContent(s, ResourceType.DRL);
}
Results results = kieHelper.verify();
if (results.hasMessages(new Level[]{
Level.WARNING, Level.ERROR})) {
List<Message> messages = results.getMessages(new Level[]{
Level.WARNING, Level.ERROR});
Iterator var11 = messages.iterator();
while(var11.hasNext()) {
Message message = (Message)var11.next();
this.logger.error("Error: {}", message.getText());
}
throw new IllegalStateException("Compilation errors.");
} else {
KieBaseConfiguration config = kieHelper.ks.newKieBaseConfiguration();
if (EventProcessingOption.STREAM.getMode().equalsIgnoreCase(this.getMode())) {
config.setOption(EventProcessingOption.STREAM);
} else {

最低0.47元/天 解锁文章
2977

被折叠的 条评论
为什么被折叠?



