zoukankan      html  css  js  c++  java
  • CXF几种客户端调用性能

    public static void invokeMethod1() {
      long s=new Date().getTime();
      UserServiceImplService serivce = new UserServiceImplService();
      UserServiceImpl impl = serivce.getUserServiceImplPort();
      User u = new User();
      impl.addUser(u);
      long s1=new Date().getTime();
      System.out.println(s1-s);
      //第一次去调用1297
      //1437 1062 1063 1078 1047
     }

     public static void invokeMethod2() {
      long s=new Date().getTime();
      JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
      factory.setAddress("http://localhost:8088/abc");
       QName SERVICE = new QName("http://liaomin", "UserServiceImplService");
       factory.setServiceName(SERVICE);
      factory.setServiceClass(UserService.class);
      UserService us = (UserService) factory.create();
      User u = new User();
      // us.addUser(u);
      us.addUser(u);
      long s1=new Date().getTime();
      System.out.println(s1-s);
      //第一次去调用1265
      //1047 1047(比较稳定)
     }

     public static void invokeMethod3() throws MalformedURLException {
      long s=new Date().getTime();
         QName SERVICE = new QName("http://liaomin", "UserServiceImplService");
         QName UserServiceImplPort = new QName("http://liaomin", "UserServiceImplPort");
      URL url = new URL("http://localhost:8088/abc?wsdl");
      ServiceDelegate dele=Provider.provider().createServiceDelegate(url,SERVICE,Service.class);
      UserService us = (UserService) dele.getPort(UserServiceImplPort,UserService.class);
      User u = new User();
      us.addUser(u);
      long s1=new Date().getTime();
      System.out.println(s1-s);
      //第一次去调用 1281
      //1047 1031 1047 1016 1032
     }
     public static void invokeMethod4()
     {
      long s=new Date().getTime();
      ClientProxyFactoryBean factory = new ClientProxyFactoryBean();
            factory.setServiceClass(UserService.class);
            factory.setAddress("http://localhost:8088/abc");
           // factory.getServiceFactory().setDataBinding(new AegisDatabinding());
            UserService client = (UserService) factory.create();
            User u = new User();
            client.addUser(u);
            long s1=new Date().getTime();
      System.out.println(s1-s);
      //第一次去调用 1188
      //调用一次后   1016 1000 1016 1015
     }

    通过实践去测试 只有第四种调用耗费的时间最少的

    如果在频繁取数据的系统中 能优化100ms的速度 对性能就会有大大的提高

    比如我调用 100次webservice发送消息  每发送一次 是 1200ms(1.2s) 总共耗时 120s

    如果采用第四种 只需要 1000ms(1s) 总共耗时 100s  那么优化了20s时间 20s是个什么概念

    假如是调用 1000 10000次发送了  优化的效率就更大

  • 相关阅读:
    Linux基础命令:crontab
    linux基础命令:su和sudo
    Linux基础知识:文件权限管理以及umask
    Linux基础命令:useradd和groupadd
    Linux基础命令:more和less
    Linux基础命令:ln
    Linux基础命令:chattr和lsattr
    Linux基础命令:who和w
    vue项目1-pizza点餐系统6-路由精讲之复用router-view
    vue项目1-pizza点餐系统5-全局守卫
  • 原文地址:https://www.cnblogs.com/liaomin416100569/p/9331762.html
Copyright © 2011-2022 走看看