首页 > 后端开发 > 正文

一个用JAVA写测算服务器响应速度程序(我的java排序算法程序,想计算运行时间,结果为0,求各路高手解答。)

2024-03-17 00:43:39 | 我爱编程网

一个用JAVA写测算服务器响应速度程序(我的java排序算法程序,想计算运行时间,结果为0,求各路高手解答。)很多朋友对这方面很关心,我爱编程网整理了相关文章,供大家参考,一起来看一下吧!

本文目录一览:

一个用JAVA写测算服务器响应速度程序(我的java排序算法程序,想计算运行时间,结果为0,求各路高手解答。)

一个用JAVA写测算服务器响应速度程序

任务描述

需要做一个程序 对某一服务器运行的web server进行测算 看对提出的request做出相应的时间 并且在多个request同时提出时的响应时间

计划

因为java sdk中包含有比较全面的class能够对等多种协议的处理方法进行了封装 用起来比较方便 能够在比较短的时间内快速开发出这一测算工具

需要 个功能

a 因为不是仅仅对一个web server或者一个form进行测算 所以需要程序能够灵活处理 完成各种工作 我采用了配置文件的形式 让程序从配置文件中读取数据 并作相应动作

b 需要采用多线程方式 对同一个web server提交多次request

开发过程

(读者可以跟随这一过程 自己动手写代码 到全文结束 就能有一个完整可用的程序了)

主要的工作都有TestThread来完成 代码如下           class TestThread implements Runnable { Parameter param; TestThread(Parameter par) { param = par; } public void run() { long time  = new Date() getTime(); try { URL target = param url; HttpURLConnection conn = (HttpURLConnection) target openConnection(); conn setRequestMethod(thod); int i; for( i =  ; i < param length; i++ ) { conn setRequestProperty(param key[i]  param value[i]); } nnect(); BufferedReader in = new BufferedReader( new InputStreamReader(conn getInputStream())); String inputLine; while( (inputLine = in readLine()) != null ); } catch(Exception e) { } long time  = new Date() getTime(); System out println(time    time ); } }         class TestThread implements Runnable 而不是用extends Thread 的好处是独立设计一个类 这个类还可以extends其它的class 而不是单独的extends Thread 另外一个好处是 可以把处理方法放在各个不同的方法中 然后在void run()中调用 程序结构比较清晰

程序工作如下

在初始化一个TestThread实例的时候 接受一个Parameter参数(稍候介绍) 并在线程启动时 计算开始的时间 向目标机器发送请求包 接受目标机器的返回结果 再次计算时间 并得到两次时间之差 这就是服务器的响应时间

具体程序可以自己看懂 就不多说了

class Parameter { URL url; String[] key; String[] value; String method; int length =  ; public void addPair(String k  String v) { Array set(key  length  k); Array set(value  length  v); length++; } }        是用来传递参数的一个类 参数是主程序从文件中读出来并存入这个类的一个对象里 然后通过初始化TestThread传递给它的对象

public class TestServer { static int loopTimes =  ; public Parameter readFromArgFile(String str){ FileInputStream fileInput; BufferedReader br; Parameter param = new Parameter(); try { fileInput = new FileInputStream(new File(str)); br = new BufferedReader( new InputStreamReader( fileInput )); String line; while( (line = br readLine()) != null ) { if( line startsWith( URL ) == true && line indexOf( = ) >=  ) { int f = line indexOf( = ); String urlstring = line substring(f+ ); urlstring trim(); param url = new URL(urlstring); } else if( line startsWith( METHOD ) == true && line indexOf( = ) >=  ) { int f = line indexOf( = ); String method = line substring(f+ ); method trim(); thod = method; } else if( line indexOf( = ) !=   ) { int f = line indexOf( = ); String key = line substring(  f ); String value = line substring(f+ ); param addPair(key trim()  value trim()); } } fileInput close(); br close(); } catch(FileNotFoundException e) { System out println( File   + str +   not found ); } catch(NullPointerException e) { } catch(IOException e) { System out println(e); } return param; } public static void main(String[] args) { int i; int j; Parameter param; TestServer tester = new TestServer(); for(i =  ; i < Array getLength(args); i++) { param = tester readFromArgFile(args[i]); for(j =  ; j < loopTimes; j++) { Thread th = new Thread(new TestThread(param)); th start(); } } } }         主程序main也比较简单 从命令行参数中读取文件名 并依次打开 读取其中的配置参数 创建Parameter对象 并传递给TestThread对象 然后启动TestThread线程 需要注意的是其中的错误处理 当发现某个文件读写错误的时候 是跳过这个文件而读取下一个文件 而不是简单的退出

就这么简单 (当然 适当的改写一下 就可以做一个加贴机或者灌水机之类的东东 那是你的爱好 和我无关 ))

程序全文列在最后 并附上了说明

lishixinzhi/Article/program/Java/hx/201311/27192我爱编程网

一个用JAVA写测算服务器响应速度程序(我的java排序算法程序,想计算运行时间,结果为0,求各路高手解答。)

我的java排序算法程序,想计算运行时间,结果为0,求各路高手解答。

因为你的数太少,现在的CPU运行速度很快的 你的代码没贴完整 我自己修改了下弄了个完整的 输入了10000个整数 运行时间大概是110毫秒。

public class Test5 {

public static void main(String[] args) {

long begin = System.currentTimeMillis();

int[] s_array = new int[10000];

int n = s_array.length;

for (int i = 0; i < n; i++) {

s_array[i] = i;

}

for (int i = 0; i < n - 1; i++) {

int k = i;

for (int j = i + 1; j < n; j++) {

if (s_array[j] < s_array[k])

k = j;

}

if (k != i) {

int temp;

temp = s_array[i];

s_array[i] = s_array[k];

s_array[k] = temp;

}

}

long end = System.currentTimeMillis();

System.out.println();

System.out.print("排序结果:");

for (int i = 0; i < n; i++) {

System.out.print(s_array[i] + " ");

}

System.out.println();

System.out.println("选择排序法用时为:" + (end - begin));

System.out.println("选择排序法比较次数为:" + (n * (n - 1)) / 2);

}

}

一个用JAVA写测算服务器响应速度程序(我的java排序算法程序,想计算运行时间,结果为0,求各路高手解答。)

java获取运行时间

很多朋友都想知道java怎么获取运行时间?下面就一起来了解一下吧~

第一种是以毫秒为单位计算的。

//伪代码 long startTime=System.currentTimeMillis(); //获取开始时间 doSomeThing(); //测试的代码段 long endTime=System.currentTimeMillis(); //获取结束时间 System.out.println("程序运行时间: "+(end-start)+"ms"); //伪代码 long startTime=System.currentTimeMillis(); //获取开始时间 doSomeThing(); //测试的代码段 long endTime=System.currentTimeMillis(); //获取结束时间 System.out.println("程序运行时间: "+(end-start)+"ms");

第二种是以纳秒为单位计算的。 //伪代码 long startTime=System.nanoTime(); //获取开始时间 doSomeThing(); //测试的代码段 long endTime=System.nanoTime(); //获取结束时间 System.out.println("程序运行时间: "+(end-start)+"ns"); //伪代码 long startTime=System.nanoTime(); //获取开始时间 doSomeThing(); //测试的代码段 long endTime=System.nanoTime(); //获取结束时间 System.out.println("程序运行时间: "+(end-start)+"ns");

以上就是我爱编程网为大家带来的一个用JAVA写测算服务器响应速度程序(我的java排序算法程序,想计算运行时间,结果为0,求各路高手解答。),希望能帮助到大家!
与“一个用JAVA写测算服务器响应速度程序(我的java排序算法程序,想计算运行时间,结果为0,求各路高手解答。)”相关推荐