java – Linux JVM的JAX WS Server实现性能问题?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – Linux JVM的JAX WS Server实现性能问题?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2269字,纯文字阅读大概需要4分钟。
内容图文
![java – Linux JVM的JAX WS Server实现性能问题?](/upload/InfoBanner/zyjiaocheng/963/dc1b4e325b534becb2c41a3e45c1872a.jpg)
我遇到了一个非常奇怪的问题.内置的JAX WS服务器实现在Linux机器上运行速度慢100倍,然后在Mac OS X或Windows上运行.
我创建并共享了一个JMH测试:https://github.com/Andremoniy/linuxjvmjaxwstest
基本上它执行以下操作:
>使用一个SOAP方法启动JAX WS:
endpoint = Endpoint.publish(“http://localhost:8888/”,new FooServiceImpl());
>对此方法执行客户端请求:
String result = state.client.foo(state.foo);
在具有2核英特尔酷睿i7的Mac OS X上它给了我:
# JMH version: 1.19
# VM version: JDK 1.8.0_151, VM 25.151-b12
# VM invoker: /Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home/jre/bin/java
...
Result "test.openjdk.MyBenchmark.testMethod":
3077.813 ±(99.9%) 51.818 ops/s [Average]
(min, avg, max) = (1718.347, 3077.813, 3315.271), stdev = 219.400
CI (99.9%): [3025.995, 3129.630] (assumes normal distribution)
# Run complete. Total time: 00:06:49
Benchmark Mode Cnt Score Error Units
MyBenchmark.testMethod thrpt 200 3077.813 ± 51.818 ops/s
同一台机器,没有CPU限制的docker:
# JMH version: 1.19
# VM version: JDK 1.8.0_151, VM 25.151-b12
# VM invoker: /usr/java/jdk1.8.0_151/jre/bin/java
...
Result "test.openjdk.MyBenchmark.testMethod":
19.882 ?(99.9%) 0.169 ops/s [Average]
(min, avg, max) = (10.031, 19.882, 20.104), stdev = 0.715
CI (99.9%): [19.714, 20.051] (assumes normal distribution)
# Run complete. Total time: 00:07:01
Benchmark Mode Cnt Score Error Units
MyBenchmark.testMethod thrpt 200 19.882 ? 0.169 ops/s
我已经尝试过docker openjdk:8u151以及OracleJava.我也尝试在VirtualBox Ubuntu 16.04上运行它,在AWS EC2 Ubuntu实例上 – 在linux机器上它总是大约20 ops / s.
但是当我将服务器实现更改为Jetty时:
ContextHandlerCollection contextHandlerCollection = new ContextHandlerCollection();
server.setHandler(contextHandlerCollection);
JettyHttpServerProvider.setServer(server);
HttpContext context = new JettyHttpServerProvider().createHttpServer(new InetSocketAddress(8888), 5).createContext("/");
Endpoint endpoint = Endpoint.create(new MyBenchmark.FooServiceImpl());
endpoint.publish(context);
server.start();
Linux和其他操作系统的性能差异消失了.这意味着内置的HTTP Server服务器实现中存在一些针对Linux的JRE / OpenJDK的错误.或者我错过了什么?
解决方法:
这被Java开发人员支持团队认为是一个错误:
https://bugs.openjdk.java.net/browse/JDK-8193236
内容总结
以上是互联网集市为您收集整理的java – Linux JVM的JAX WS Server实现性能问题?全部内容,希望文章能够帮你解决java – Linux JVM的JAX WS Server实现性能问题?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。