繁体   English   中英

Java后端服务的性能测试

[英]Performance Testing for a back-end service in Java

我有一个Java后端服务,我需要测试它的性能。 它没有暴露于网络,也可能永远都没有。 我想知道如何在大量流量(每秒超过10万次调用)下测试此多线程服务(仅是带有公共方法的类)的性能。

如果您要说要由您的程序每秒创建100K +次调用,则可以使用ThreadExecutor创建要在您的调用中测试公共方法的最大线程数。 例如,以下代码使用1000个线程同时调用您的公共方法

ExecutorService executor = Executors.newFixedThreadPool(1000);
         List<YourClass> callingList = new ArrayList<YourClass>();
         for (int i = 0; i < 1000; i++) {
             EntryPoint Impl = new EntryPoint (YourClass);
             callingList.add(Impl);
         }

 private Class EntryPoint implements Callable<Object>{
          private YourClass example;
     EntryPoint (YourClass  class) {
                this.example =  class;

            }
public List onCall() throws InterruptedException {
example.yourPublicMethod(); 

如果要测量每个线程为每种方法花费的时间,请使用AspectJ作为拦截器。您可以在调用1000个线程的过程中将每个方法花费的时间记录在列表中。最后,您可以再次遍历列表以获取花费的时间每种方法都有。如果您要寻找工具,则可以使用VisualVM或Jconsole。您可以获取有关CPU使用率,内存使用率,线程状态,垃圾收集器,创建的对象数和由对象占用的字节数以及装入的类和对象的信息。还有很多 。

JMeter可以很好地进行负载测试。

http://jmeter.apache.org/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM