今天Java服务器端并发和压力测试结果。
2006-04-14 14:04
555 查看
局域网内测试。
机器:P42.8G 内存1G.
语言:Java 客户端连接:flash。
测试方法:客户端连接进来,根据CompanyID的不同,把连接进来的客户端的信息解析后发送到此企业的客服。
测试结果:
package Visit;
import java.net.*;
import org.apache.log4j.*;
public class MainThread
extends Thread {
private Socket socket;
public MainThread() {
}
static Logger lg = Logger.getLogger(MainThread.class.getName());
/**
* 线程方法
*/
public void run() {
while (true) {
if (!VisitServer.Links.isEmpty()) {
socket = (Socket) VisitServer.Links.firstElement();
Online c = new Online(socket,
String.valueOf(socket.getRemoteSocketAddress()),
"V", 0, "");
VisitServer.Onlines.addElement(c);
c.start();
VisitServer.Links.removeElementAt(0);
}
else {
try {
Thread.sleep(100);
}
catch (Exception e) {
lg.info("主后台处理线程MainThread在处理用户进入线程处理时出现错误:" + e.getMessage());
}
}
}
}
}
main方法里调用上面的方法()
/**
* 开启运行主线程
*/
MainThread mt = new MainThread();
mt.start();
上面这个MainThread是程序开始时运行的一个线程。这个线程就是用来判断Links这个队列,如果这个队列中有新的Socket连接进来的话,这个线程就负责开启一个新的线程来处理这个Socket连接。但是现在同时有6000多个(有时6106,有时5818等,但不达到7000.)Socket同时连接在线(同时处于连接状态,没有断)的时候,这个线程就停了。即使Links有新的Socket进入队列。这个也不执行了。当这个时候,我设置了断点。主线程还是正常继续执行(当然挺慢),这个MainThread 线程还是不执行。
_________________________________________________________
补充一下:
Linkst和Onlines都是Vector类型的变量。
static Vector Onlines = new Vector(100, 10); //在线用户
static Vector Links = new Vector(100, 10); //所有的连接
机器:P42.8G 内存1G.
语言:Java 客户端连接:flash。
测试方法:客户端连接进来,根据CompanyID的不同,把连接进来的客户端的信息解析后发送到此企业的客服。
测试结果:
package Visit;
import java.net.*;
import org.apache.log4j.*;
public class MainThread
extends Thread {
private Socket socket;
public MainThread() {
}
static Logger lg = Logger.getLogger(MainThread.class.getName());
/**
* 线程方法
*/
public void run() {
while (true) {
if (!VisitServer.Links.isEmpty()) {
socket = (Socket) VisitServer.Links.firstElement();
Online c = new Online(socket,
String.valueOf(socket.getRemoteSocketAddress()),
"V", 0, "");
VisitServer.Onlines.addElement(c);
c.start();
VisitServer.Links.removeElementAt(0);
}
else {
try {
Thread.sleep(100);
}
catch (Exception e) {
lg.info("主后台处理线程MainThread在处理用户进入线程处理时出现错误:" + e.getMessage());
}
}
}
}
}
main方法里调用上面的方法()
/**
* 开启运行主线程
*/
MainThread mt = new MainThread();
mt.start();
上面这个MainThread是程序开始时运行的一个线程。这个线程就是用来判断Links这个队列,如果这个队列中有新的Socket连接进来的话,这个线程就负责开启一个新的线程来处理这个Socket连接。但是现在同时有6000多个(有时6106,有时5818等,但不达到7000.)Socket同时连接在线(同时处于连接状态,没有断)的时候,这个线程就停了。即使Links有新的Socket进入队列。这个也不执行了。当这个时候,我设置了断点。主线程还是正常继续执行(当然挺慢),这个MainThread 线程还是不执行。
_________________________________________________________
补充一下:
Linkst和Onlines都是Vector类型的变量。
static Vector Onlines = new Vector(100, 10); //在线用户
static Vector Links = new Vector(100, 10); //所有的连接
相关文章推荐
- Java模拟并发操作进行压力测试代码
- Java、Scala和Go语言多线程并发对比测试结果和结论
- java模拟并发操作进行压力测试
- java模拟并发操作进行压力测试
- Java、Scala和Go语言多线程并发对比测试结果和结论
- java模拟并发操作进行压力测试
- Java、Scala和Go语言多线程并发对比测试结果和结论
- Java 模拟并发操作压力测试代码
- Java模拟并发操作进行压力测试代码
- java模拟并发操作进行压力测试
- Java模拟并发操作进行压力测试代码
- java并发:获取线程执行结果(Callable、Future、FutureTask)
- loadrunner 压力测试 平均响应时间20秒 100用户并发 jquery.easyui.min.js 和jquery.js占用时间最长
- Ubuntu 16.04/CentOS 6.9安装Apache压力(并发)测试工具ab
- JAVA 百万级的数据并发SOCKET编程(已经通过测试)
- Java并发专题 带返回结果的批量任务执行 CompletionService ExecutorService.invokeAll(转)
- [转]性能测试(并发负载压力)测试…
- Java并发专题 带返回结果的批量任务执行
- 性能测试(并发负载压力)测试分析-简要篇
- 性能测试(并发负载压力)测试分析-简要篇