【问题标题】:Java based Thread Pool: How to test performance? [closed]基于 Java 的线程池:如何测试性能? [关闭]
【发布时间】:2016-03-19 01:41:59
【问题描述】:

我用 JAVA 编写了一个线程池系统,它根据请求频率(每秒请求数)动态增长和收缩。每个请求都是一个 Runnable 对象,它会在随机时间间隔内休眠以模拟磁盘 I/O。我需要将我的线程池性能与 Java 的 ThreadPoolExecutor 进行比较。请在以下几点帮助我。

  1. 是否有任何模拟工具/基准工具可用于测试这些线程池。
  2. 如果不是,我将如何使用 Java 的 ThreadPoolExecutor 测试我的线程池的性能?
  3. 我可以在这种情况下使用 Jmeter 吗?
  4. 我可以将我的线程池嵌入到 Tomcat 中,以便将其性能与 Tomcat 的 ExecutorService 进行比较?

【问题讨论】:

  • 当你有这么多问题时,你确定你甚至有能力写一个线程池吗?
  • 你能解释一下为什么这个问题再次被选为-1吗?这个问题无效吗?
  • 这不是一个很好的问题。你有 4 个问题,你已经设法编写了一个线程池,但不知道如何测试它……寻求工具方面的建议……其中很多是关闭的基础。
  • 参加the tour,看看什么是好问题。
  • 感谢上帝,像 Dmitri T 这样的人在 stackoverflow 上

标签: java multithreading tomcat threadpool threadpoolexecutor


【解决方案1】:

您可以将代码编译为 .jar 并将其添加到 JMeter 的类路径中。

然后您可以使用JSR223 Sampler 调用您的方法,并将它们与使用JMeter Listeners 的ThreadPoolExecutor 进行比较,例如Aggregate Report

在开发代码时,请确保:

  • 使用“groovy”作为一种语言(您还需要类路径中的 groovy-all.jar)
  • 为每个采样器设置“编译键”

您也可以考虑从Java Request Sampler 调用您的代码,但调试和更改会更加困难,因为您每次都必须重新编译它,而使用 JSR223 和 groovy 您将能够看到Beanshell vs JSR223 vs Java JMeter Scripting: The Performance-Off You've Been Waiting For!了解更多详情。

【讨论】:

    猜你喜欢
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-15
    • 1970-01-01
    • 2010-11-29
    相关资源
    最近更新 更多