gpt4 book ai didi

Java多线程变得更慢

转载 作者:行者123 更新时间:2023-12-01 11:11:43 25 4
gpt4 key购买 nike

我们有运行几个线程的代码。在线程的 run 事件中,我们调用 2 个 Web 服务。当迭代次数达到 2000 时,我们遇到了性能问题。每个 Web 服务调用的进程运行时间约为 600 毫秒,如果继续下去,可能会达到近 60 秒...

每个Web服务的实际执行保持一致,但端口创建速度变慢:

long preStartTime = System.currentTimeMillis();

ServicePortType winPort = (ServicePortType) this.getConnector().getFactory().create();

long preEndTime = System.currentTimeMillis();
LOGGER.debug("@@@Web Service Prep work (1st service) took => " + (preEndTime - preStartTime) + "ms");

这将在开始时大约 80 毫秒记录,并且随着进程继续运行,在 2000 次迭代时可能会长达 50 秒:

(iteration 1)    @@@Web Service Prep work (1st service) took => 80ms
(iteration 2000) @@@Web Service Prep work (1st service) took => 524421ms

这是连接器设置:

    @Override
public void init(Properties prop) {
LOGGER.info("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@");
LOGGER.info("@@@@@@ Starting HTTPConnector @@@@@@@@@@@@@@");
LOGGER.info("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@");
try {
factory = new JaxWsProxyFactoryBean();
factory.setServiceClass(ServicePortType.class);
LOGGER.debug("@@@URL : " + prop.getProperty("service.url"));
factory.setAddress(prop.getProperty("service.url"));
factory.getInInterceptors().add(new LoggingInInterceptor());
factory.getOutInterceptors().add(new LoggingOutInterceptor());
} catch (Exception ex) {
LOGGER.error(ex);
}

LOGGER.info("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@");
LOGGER.info("@@@@@@ End HTTPConnector @@@@@@@@@@@@@@@@@@@");
LOGGER.info("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@");
}

有人可以指导我吗?

编辑

我将每次调用的这部分更改为静态,并且仅创建一次。现在性能很好,但不知道这是否会对其他方面产生影响。

从此:

ServicePortType winPort = (ServicePortType) this.getConnector().getFactory().create();

对此:

private static UVSInterfaceExtendPortType winPort;
if (winPort == null)
{
winPort = (UVSInterfaceExtendPortType) this.getConnector().getFactory().create();
}

最佳答案

对我来说,解决方案是仅实例化 portType 一次,而不是每次(如我的编辑中所述)。

我们每天处理大约 10 万笔交易,整个交易的速度保持在一秒以下,其中包括 2 个 Web 服务调用和几个数据库调用。

关于Java多线程变得更慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32287501/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com