【问题标题】:Sending a large amount of Requests to the server向服务器发送大量请求
【发布时间】:2017-04-21 03:50:45
【问题描述】:

我正在测试接收 Job 对象的服务器应用程序,为此我创建了一个虚拟客户端,该客户端向我的服务器应用程序发送尽可能多的 Job 对象,为此我创建了一个如下所示的 Timer 类来发送 Job对象不断地向服务器发送。例如每秒 2000 个对象。但是当我每秒超过 2000 个作业时,我的客户变得很慢。

还有其他方法可以将大量固定数量的作业发送到服务器吗?

如果我创建了许多 Timer 实例,那么我必须同步 Socket,这再次使事情变慢。

有没有更好的解决方案可以帮助我将数千个作业发送到服务器而不会使事情变慢?

这里给出的代码是 Job 等的骨架,我只是想知道其他替代方案。

package comeOn;

import java.awt.event.ActionListener;
import javax.swing.Timer;
import java.io.*;
import java.awt.event.ActionEvent;
public class LoadGenerator extends Timer implements ActionListener{
    ObjectOutputStream outStream=null;
    int rndNumber;

    public static void main(String[] args) {
        // TODO Auto-generated method stub

    }
public LoadGenerator(int interval,  ObjectOutputStream outStream,int rndNumber){
    super(interval,null);
    this.outStream=outStream;
    this.rndNumber=rndNumber;
    addActionListener(this);
    //this.setInitialDelay(1000);//start this timer afer 1 second.
}


@Override
public void actionPerformed(ActionEvent e){
    try {
        for(int i=1;i<=rndNumber;i++){
            Job job=new Job(100);
                outStream.writeObject(job);
                outStream.reset();
                outStream.flush();



            }

        }
    catch(Exception ex){}
}
class Job{
    int amount;
    Job(int amount){
        this.amount=amount;
    }
}
}

【问题讨论】:

标签: java multithreading performance


【解决方案1】:

我用谷歌搜索了我的问题,我在这里找到了答案http://www.drdobbs.com/jvm/increase-java-serialization-performance/240159166?pgno=1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-20
    • 1970-01-01
    • 1970-01-01
    • 2014-10-26
    • 2018-10-04
    • 2012-12-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多