Selenium修复了线程池性能问题

时间:2015-07-30 22:58:23

标签: java multithreading selenium

我目前正试图通过

启动大量的硒过程
ExecutorService executor = Executors.newFixedThreadPool(10);

我注意到性能问题。

我正在部署的代码我首先测试并保留一个运行该进程一次的TestModule的副本,并使用apache Stopwatch来监视运行单个线程所需的时间。

当我运行此代码时,我看到以下结果:

Stopwatch time: 00:00:11.043

这是从最初的driver.get(MY_WEBSITE_URL)到检查元素以及我希望完成的其他任务所花费的时间。

但是,如果我在代码中执行以下操作,结果会非常慢。

QueryAgent queryAgent = new QueryAgent();
queryAgent.startUp();
new Thread(queryAgent).start();

QueryAgent内部

 private ExecutorService executor = Executors.newFixedThreadPool(10);


MyPojo pojo = MyPojoImpl.doStuff();

“doStuff()”中的所有代码与我的测试模块中的代码相同。如果我正在运行10个线程,每个线程应该花费不超过20秒的时间来处理。我希望能在一分钟内完成约30次运行〜一小时内完成1800次。

然而,看着我的日志,我在一分钟内收到的请求不超过5个。

是否有更好的方法可以并行运行这些请求?

EDIT1:

在查看下面的评论并做一个“顶部”后,看来我曾经遇到大约4个幻影实例 - 我的CPU达到了100%

但我的内存使用率低于1GB。此时,瓶颈似乎是CPU。有什么想法吗?

0 个答案:

没有答案