dubbo和S-HSF测试对比

今天没什么事,简单测试下RPC框架性能: HSF完胜dubbo

1.dubbo测试结果:

耗时:16.808 s
平均:0.16808 ms
TPS:5949.547834364588

测试数据:

public class TPS_TEST {

    public static void main(String[] args) throws InterruptedException {
    	final ClassPathXmlApplicationContext context = 
    			new ClassPathXmlApplicationContext(
    					new String[] {"file:E:/1-project_test/dubbox-master/dubbo-demo/dubbo-demo-consumer/src/main/resources/META-INF/spring/dubbo-demo-consumer.xml"});
		final HelloService helloService = (HelloService)context.getBean("helloService"); // get service invocation proxy
    	ExecutorService executorServicePool = Executors.newFixedThreadPool(200);
    	final int size = 100000;
    	final CountDownLatch cdl = new CountDownLatch(size);
    	long begin = System.currentTimeMillis();
		for (int i = 0; i < size; i++) {
			executorServicePool.execute(new Runnable() {
				@Override
				public void run() {
					try {
						
						String hello = helloService.hello("aa"); // do invoke!
						//System.out.println( hello ); // cool, how are you~
				        cdl.countDown();
					} catch (Exception e) {
						e.printStackTrace();
					}
				}
			});
		}
		//executorServicePool.shutdown();
		//executorService.awaitTermination(10, TimeUnit.MINUTES);
		cdl.await();//等待所有任务处理完
        long time = System.currentTimeMillis() - begin;
        System.out.println("耗时:" + (double) time / 1000 + " s");
        System.out.println("平均:" + ((double) time) / size +" ms");
        System.out.println("TPS:" + (double) size / ((double) time / 1000));              
   
    
    }

   
}



2.hsf 测试结果:

耗时:6.305 s
平均:0.06305 ms
TPS:15860.428231562253

测试数据:

public class Client {
	public static void main(String[] args) throws InterruptedException, ExecutionException {
		final int size = 100000;
		final CountDownLatch cdl = new CountDownLatch(size);

		// final TestService testService = ServiceProxyFactory.getRoundFactoryInstance(connector).wrapAsyncProxy(
		// TestService.class);
		
		HsfConnector connector = new HsfConnectorImpl();
		connector.connect(new InetSocketAddress("localhost", 8082));
		
		
		final TestService testService = ServiceProxyFactory.getRoundFactoryInstance(connector).wrapAsyncCallbackProxy(
				TestService.class, new AsyncCallback<Object>() {
					public void doCallback(Object data) {
						//System.out.println("received:" + data);
						cdl.countDown();
					};
					@Override
					public void doExceptionCaught(Throwable ex, HsfChannel channel, Object param) {
						System.out.println(ex);
						super.doExceptionCaught(ex, channel, param);
					}
				});
		ExecutorService executorServicePool = Executors.newFixedThreadPool(200);
		long begin = System.currentTimeMillis();
		for (int i = 0; i < size; i++) {
			executorServicePool.execute(new Runnable() {
				@Override
				public void run() {
					try {
						testService.test("aa");
					} catch (Exception e) {
						e.printStackTrace();
					}
				}
			});
		}
		//executorServicePool.shutdown();
		//executorService.awaitTermination(10, TimeUnit.MINUTES);
		cdl.await();//等待所有任务处理完
        long time = System.currentTimeMillis() - begin;
        System.out.println("耗时:" + (double) time / 1000 + " s");
        System.out.println("平均:" + ((double) time) / size +" ms");
        System.out.println("TPS:" + (double) size / ((double) time / 1000));
        
	}

}






已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐
  • —软件人才免语言低担保 赴美带薪读研!—



你可能感兴趣的:(测试,DUBBO,hsf)