探究JVM1.6与JVM1.5性能差距(1)

JVM启动流程 在运行Java XXX是,Java.exe会通过CheckJVMType来检查当前的JVM类型,Java可以通过两种参数的方式来指定具体的JVM类型,一种按照JVM.cfg文件中的JVM名称指定,第二种方法是直接指定,它们执行的方法分别是“Java -J”、“Java -XXaltJVM=”或“Java -J-XXaltJVM=”。如果是第一种参数传递方式,CheckJVMType函数会取参数‘-J’后面的JVM名称,然后从已知的JVM配置参数中查找如果找到同名的则去掉该JVM名称前的‘-’直接返回该值; 阅读详情

本文向大家描述一下JVM1.6与JVM1.5性能的差距,通过测试工具VolanoBenchMark,我们能清楚的看到两者的差距,以及新软件的进步。其实这本来是个WebChat的软件,制作者在ChatApp的功能基础上发展出这个对JVM性能测试的小软件,用来在不同硬件配置的机器上或者是不同Kernel的操作系统上对不同的JVM进行性能测试。它是通过对服务器建立多个客户端的连接来测量客户端程序广播批量信息所需要的时间,从而达到对JVM性能测试的结果。

横向对比JVM1.6与JVM1.5性能

其实这个软件能对服务器的以下方面性能进行评测:调度程序,TCP/IP及EthernetDriver的网络吞吐及响应,Pthreads线程,SMP(SymmetricMultiProcessing对称多处理)性能测量。

Benchmark的配置

CHAT房间数量:10

每个房间用户数量:20

每个用户信息量:1000

服务器和客户端都在同一台电脑

测试用到的JVM

SunClientJVM1.6.0-beta-b59g:

Jdk-6-beta-windows-i586

Optionsused:-server–Xmx128m(default)

SunClientJVM1.5.0_01-b08:

Jdk-1_5_0_01-windows-i586-p

Optionsused:-server–Xmx128m(default)

在这里我补充一下,JVM的启动Option我没有进行配置,因为这里做的只是在通常情况下Mustang(1.6)和Tiger(1.5)的对比,所以选用server还是Client/Hotspot、预分配Heap的大小是128M还是512M就不去讨论了。如果大家需要更深的讨论欢迎一起讨论,这里我个人感觉-server是比-Client(也就是Java选项中的Hotspot)快,启动会慢一点,但运行速度比较快。同时这里不使用Net模式进行测试,只使用Loop。

硬件配置

OS:MicrosoftWindowsXP[版本5.1.2600](ServicePack2)

CPU:AMDAthlon(tm)XP2200+Thoroughbred-BProcessor(0.13μm)

Memory:512MB

Cache:64+64KBL1Cache+258KBL2Cache

测试结果:

测试结果是以每秒信息数量来衡量的,测试结果取5次

测试去掉最高和最低后的平均值:

测试结果

测试结果:

MustangJVM1.6β:8969.667

TigerJVM1.5:9394

感觉有点不太对劲,重新启动电脑再试了一遍:

JVM测试结果


转载地址:http://developer.51cto.com/art/201009/227514.htm


Aeron Java与C++客户端深度对比:性能差异、API设计与选型指南 零拷贝(Zero-Copy)是一种高性能数据传输技术,其核心原理是允许应用程序直接访问内核缓冲区或共享内存,避免数据在用户空间与内核空间之间的冗余复制,从而大幅降低延迟并提升吞吐量。这项技术的价值在于能够突破传统I/O的性能瓶颈,实现接近硬件极限的通信效率,尤其适用于对延迟和吞吐量有极致要求的场景,如高频交易、实时风控和游戏服务器。在具体实现中,Java与C++客户端通过不同的内存模型和线程模型来落地零拷贝理念,例如Java依赖堆外内存和Unsafe类,而C++则直接使用系统调用和精细的缓存行对齐。本文聚焦 阅读详情

相关推荐

BurpSuite 2024.7.3专业版实测:性能与拦截功能深度优化评测

在应用安全测试领域,Web应用渗透测试与漏洞挖掘是核心工作流程,其效率高度依赖于专业工具的性能与精准度。工具的性能优化,如启动速度与内存管理,直接影响测试人员的实时操作体验与长时间工作的流畅度;而HTTP拦截功能的精准性,则决定了测试人员能否在海量网络流量中高效捕获目标请求,是手工测试与自动化测试结合的关键。本次评测聚焦于BurpSuite最新专业版的性能提升与拦截优化,通过对比测试量化了其在启动时间、内存占用、请求处理延迟及复杂规则匹配精度等方面的改进。这些底层优化旨在提升安全测试的工程实践效率,使测试人

weixin_34226182的博客 333

windows10 浏览器提示:您的浏览器没有获得JVM支持。请安装JVM1.5或以上版本--解决方案

选择IE浏览器,IE不是Microsoft Edge!!

黄笳倞的博客 13万+

JAVA1.5安装包

JAVA1.5安装包,下载后正常安装就可以用啦

您的浏览器没有获得JVM支持。请安装JVM1.5或以上版本--解决方案

进学校内网的时候报的提示,搜了很多方法都是让登IE,可是现在新电脑IE都换成Edge了,最后找到了比较合适的解决方案。3、再次打开网页,上方会出现一个啥推荐使用edge,不要管就行(好容易从IE进的,你还让我还回去?1、打开Edge右上角三个点,找到设置,输入Internet Explorer。“允许IE模式下重新加载”,点击允许;把登录网址添加进“IE模式页面”中。然后你就发现你正常登录了!2、右侧下拉,找到兼容性。...

m0_67401270的博客 4552

JVM 2.17.8V1.5.xmind

尚硅谷周阳的JVM课程文档,我是根据视频中展现的文档手动编写的。不是整个文档,但是视频中讲解的东西里面都有。

java的jre1.5

Sun公司的最新的Java虚拟机,可以让你的网页安全、流畅的运行Applet

电脑和服务器java程序性能差距,探究JVM1.6与JVM1.5性能差距

本文向大家描述一下JVM1.6与JVM1.5性能的差距,通过测试工具VolanoBenchMark,我们能清楚的看到两者的差距,以及新软件的进步。其实这本来是个WebChat的软件,制作者在ChatApp的功能基础上发展出这个对JVM性能测试的小软件,用来在不同硬件配置的机器上或者是不同Kernel的操作系统上对不同的JVM进行性能测试。它是通过对服务器建立多个客户端的连接来测量客户端程序广播批量...

weixin_32561279的博客 355

java JDK1.5,1.6版本,和安装

JAVA JDK1.5,1.6,版本下载,和安装说明,注意事项,非常安全 ,正版的,我刚好需要安装,所以分享给各位同志(本来还有1.7的,上传资源上限,分开传了)

java jvm 1.6,探究JVM1.6与JVM1.5性能差距(1)

本文向大家描述一下JVM1.6与JVM1.5性能的差距,通过测试工具VolanoBenchMark,我们能清楚的看到两者的差距,以及新软件的进步。其实这本来是个WebChat的软件,制作者在ChatApp的功能基础上发展出这个对JVM性能测试的小软件,用来在不同硬件配置的机器上或者是不同Kernel的操作系统上对不同的JVM进行性能测试。它是通过对服务器建立多个客户端的连接来测量客户端程序广播批量...

weixin_39531178的博客 213

machinelearning-jvm-1.5.0.jar

machinelearning-jvm-1.5.0.jar

Ubuntu20.04下运行VINS系列:VINS-Mono、VINS-Fusion和GVINS

安装好了VINS-Mono所需的ROS noetic、Eigen3.4.0、Ceres2.10和OpenCV4.2.0等。VINS-Mono是在ROS melodic以及Ceres1的环境下开发的,因此需要适配高版本的环境。

zardforever123的博客 2万+

探究JVM1.6与JVM1.5性能差距(2)

JVM1.6与JVM1.5测试结果: MustangJVM1.6β:9011.333 TigerJVM1.5:9335.333 JVM1.5的还是比JVM1.6β的性能好。个人有点不是很理解,当然这里没有去考虑使用Server还是Client以及其他因素,但作为一个普通的应用程序开发者,β版的1.6JVM的效能并没有让我们看到惊喜。 横向对比JVM1.6与JVM1.5性能后

developerFBI的专栏 1614

sysbench安装(在线&离线)

sysbench下载、安装、编译和异常处理方法

m0_61066945的博客 8753

Java8 中用法优雅的 Stream,性能也"优雅"吗?

点击上方“朱小厮的博客”,选择“设为星标”做积极的人,而不是积极废人来源:https://dwz.cn/pSW0u0QrJava8的Stream API可以极大提高Jav...

朱小厮的博客 1322

手把手教你用Simulink搭建级联H桥储能变流器仿真模型(附SOC均衡分析)

本文详细介绍了如何使用Simulink搭建级联H桥储能变流器仿真模型,并附有SOC均衡分析。从仿真环境准备、单相H桥单元建模到多模块级联方案和SOC均衡策略实现,逐步指导读者完成复杂系统的构建与优化。通过关键仿真结果分析和工程实践问题排查,帮助读者掌握级联H桥储能变流器的核心技术与应用方法。

weixin_42524226的博客 445

YOLOV8多模态(可见光+红外光目标检测任务,基于Ultralytics官方代码实现)

torch 2.3.1 torchvision 0.18.1 Python 3.8.19 tensorrt 8.5.3.1DroneVehicle数据集下载地址DroneVehicle 数据集由无人机采集的 56,878 张图像组成,其中一半是 RGB 图像,其余是红外图像。我们为这 5 个类别制作了丰富的注释,其中包含定向边界框。其中,汽车在 RGB 图像中有 389,779 个注释,在

Mjy的博客 7585

Java 8中用法优雅的Stream,性能也"优雅"吗?

之前的文章中我们介绍了Java 8中Stream相关的API,我们提到Stream API可以极大提高Java程序员的生产力,让程序员写出高效率、干净、简洁的代码。 那么,Stream API的性能到底如何呢,代码整洁的背后是否意味着性能的损耗呢?本文我们对Stream API的性能一探究竟。 为保证测试结果真实可信,我们将JVM运行在-server模式下,测试数据在GB量级,测试机器采用常见...

360linker 253

硅谷刷屏的ClawdBot,让Mac mini卖爆了!创始人爆料:一人开发、100% AI 写代码

这两天,个人 AI 助手 ClawdBot 席卷硅谷,国内外社交平台上全是关于它的讨论。 在试用后,网友们纷纷给出了很高的评价。“它是迄今为止最伟大的 AI 应用,相当于你 24 小时全天候专属 AI 员工。”Creator Buddy 创始人兼 CEO Alex Finn 盛赞道,“这就是他们 (Anthropic) 希望 Claude Cowork 呈现的样子。”

技术引领业务创新 1584

Java 8+ 排序API性能对比:Arrays.sort() vs Collections.sort() 在10万数据下的耗时差异

本文对比了Java 8+中Arrays.sort()和Collections.sort()在10万数据下的性能差异,发现Arrays.sort()平均耗时44毫秒,比Collections.sort()快约30%。文章深入分析了两者的底层实现原理,探讨了TimSort算法和额外转换开销对性能的影响,并提供了数据结构选择、排序优化等实用建议,帮助开发者在不同场景下做出更高效的技术决策。

csdn864883的博客 360

《QGIS快速入门与应用基础》293:色带调整与透明设置

详细讲解了QGIS中遥感影像色带调整与透明设置的核心技术,帮助用户将遥感成果从基础合成提升到专业出图标准。主要内容包括: 色带精细化调整: 多波段真/假彩色合成的优化技巧(Gamma校正、色彩平衡、色阶端点校准) 单波段栅格数据的伪彩色规范设置(行业标准色带选择与分类方法) 透明设置: 研究区黑边/白边的消除方法 多图层叠加时的透明融合技巧 特定地物的差异化半透明显示 实用建议: 提供行业标准参数模板和效果对比图 标注新手操作红线和常见问题排查 强调符合遥感行业规范的可视化要求。

LuckyHanMo的博客 354

Android 车载应用之快速入门

车载 Android 系统也被称为 Android Automotive OS,是对原始 Android 系统的一个功能扩充版本。与手机系统一样,Android Automotive OS 源代码完全开放,第三方供应商和汽车制造商可以官方源码的基础上自行开发和拓展,无论是编程语言还是各项接口,都与 Android 系统保持了一致。

xiangzhihong8的专栏 1110

牛逼哄洪的 Java 8 Stream,性能也牛逼么?

点击上方“方志朋”,选择“设为星标”回复”666“获取新整理的面试资料Java8的Stream API可以极大提高Java程序员的生产力,让程序员写出高效率、干净、简洁的代码。那么,Str...

方志朋的博客 96

手把手教你使用YOLOv11完成人脸分类识别,YOLOv11人脸识别,解决中文乱码问题,全网最详细教程

手把手教你使用YOLOv11完成人脸分类识别,YOLOv11人脸识别,解决中文乱码问题,全网最详细教程

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 4444

iOS运行Minecraft Java版:PojavLauncher技术架构与实战指南

Java虚拟机(JVM)作为跨平台应用的核心运行环境,其原理是通过将Java字节码解释或编译为特定硬件架构的机器指令,实现“一次编写,到处运行”的技术愿景。在移动开发领域,如何在ARM架构的iOS设备上运行传统的x86桌面Java应用,是一个极具挑战性的系统兼容性问题。PojavLauncher项目通过整合OpenJDK的ARM原生移植、系统调用转译层以及图形API映射(如OpenGL到Metal/Vulkan)三大技术支柱,构建了一个在iOS沙盒内运行的微型PC环境。这项技术的工程价值在于为移动端运行庞大

weixin_33957648的博客 424

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

上一篇: JVM内存调优设置原理
下一篇: 探究JVM1.6与JVM1.5性能差距(2)
developerFBI
博客等级 码龄15年 174粉丝 105原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值