首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >避免jvm预热

避免jvm预热
EN

Stack Overflow用户
提问于 2010-12-03 13:31:20
回答 4查看 5.1K关注 0票数 9

如果我正在设计一个关于排序算法的测试,我可以这样做以避免JVM预热吗?谢谢!

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
double count = 0;
double start, end;
for(int r = 0; r < warmup; r++) {
    // do test
}
for(int t = 0; t < runs; t++){
    start = System.nanoTime();
    // do test
    end = System.nanoTime();
    count += start - end;
}
double avg = count/avg
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-12-03 13:34:07

JVM预热通常指的是JVM查找热点和JIT这些代码部分所需的时间。如果你运行你的实际测试几百次(实际上我相信是几千次),你应该可以运行的相当好。

然而,你应该知道,即使你这样做了,也不能保证。您必须试验您的特定JVM,以弄清楚在关键部分被JITed等之前必须做多少工作。

this little case study中,在1700次调用之后开始进行即时编译。

票数 8
EN

Stack Overflow用户

发布于 2010-12-03 14:16:30

如果我正在设计一个关于排序算法的测试,我可以这样做以避免JVM预热吗?

先说些卖弄学问的话。您不应该避免JVM预热。这是必须要发生的。您要做的是防止JVM预热扭曲您的基准测试结果。

为了回答你的问题,这种方法大体上是正确的,但很难预测在初始循环中需要进行多少次测试。这很可能取决于测试代码、JVM版本和JVM调优参数……除此之外,可能还有其他事情。

我通常做的就是打印原始的计时,过滤掉初始的“热身”迭代,“用眼睛”看起来有异常的计时值,然后手工计算平均值。它很笨拙,但它给了我一些信心,我已经考虑到了预热和其他可能的异常来源。

票数 4
EN

Stack Overflow用户

发布于 2010-12-03 16:12:59

这是一个非常大的领域,但这里有几个提示:

1)确保您的完整测试(包括迭代循环)位于重复调用的子例程中。因此,您的测试在"parent“方法中有for()循环。将它下推到一个“孩子”,并重复调用它。这使得各种即时技术可以真正进行全面的优化,而不必进行动态代码替换(dynamic loop transfer等)。

2)确保测试在长时间预热后长时间运行。如果可能的话,在同样长的热身之后,实际测量期的最短时间是30秒。例如,SPECjbb等。对于多次迭代,每次迭代运行几分钟。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4345999

复制
相关文章
如何在技术和业务中保持平衡?
如果时间退回到十多年以前,新兴互联网公司的技术人员几乎都是从「业务开发」开始自己的职业生涯的。然而到了今天,不知道你有没有发现,业务开发和纯技术的开发已经有了明显的分野。
木东居士
2020/02/21
1.5K0
如何在基于Bytom开发过程中集成IPFS
比原相关资料:https://github.com/Bytom-Community/Bytom_Docs
比原链Bytom
2019/01/28
4370
如何在基于Bytom开发过程中集成IPFS
如何在基于Bytom开发过程中使用Bigchaindb
上期我们讲了在基于比原开发过程中链外存储可以用分布式存储IPFS,这期我们还给大家介绍另外一种链外存储的解决方案。bigchaindb:https://www.bigchaindb.com,下面我们讲一下集成过程。
比原链Bytom
2019/02/26
4420
如何在基于Bytom开发过程中集成IPFS
比原相关资料:https://github.com/Bytom-Community/Bytom_Docs
比原链Bytom
2019/01/18
7340
如何在基于Bytom开发过程中集成IPFS
如何在基于Bytom开发过程中使用Bigchaindb
上期我们讲了在基于比原开发过程中链外存储可以用分布式存储IPFS,这期我们还给大家介绍另外一种链外存储的解决方案。bigchaindb:https://www.bigchaindb.com,下面我们讲一下集成过程。
比原链Bytom
2019/01/25
4920
如何在基于Bytom开发过程中使用Bigchaindb
基于 Webpack 提升构建速度和保证构建质量详解
有一个很简单的划分方式,就是以构建(build)为分界线,分成前向治理和后向治理:
winty
2021/05/18
7090
基于 Webpack 提升构建速度和保证构建质量详解
ServiceOps:在DevOps中平衡速度和风险
CrowdStrike 的停机事件突出了当今业务运营的互联性,其中单个错误可能会影响许多组织和人员。CrowdStrike发生的事件 可能会发生在任何公司,即使是那些拥有良好变更控制和发布实践的公司,尤其是在组织中不同的开发团队采用不同的发布实践来加速软件交付时。缺乏统一的软件发布方法会增加引入错误或性能问题的风险。
云云众生s
2024/08/25
1100
ServiceOps:在DevOps中平衡速度和风险
敏捷过程中如何保证代码质量
本文目录: 一、为什么要做代码质量分析 二、常见的代码质量分析工具 三、DevOps平台中的代码质量分析 四、DevOps平台中如何为代码质量提供保障 一、为什么要做代码质量分析 在软件开发过程中,当
yuanyi928
2018/04/02
2K0
敏捷过程中如何保证代码质量
如何在开发生命周期之初改善软件质量
先人一步的企业正开始采用安全编程方法和工具,在软件开发生命周期的早期阶段处理安全问题。MaaS360 by Fiberlink公司的信息安全官David Lingenfelter说:“如果企业组织在软
静一
2018/03/22
9970
如何在开发生命周期之初改善软件质量
QUIC 如何在速度和安全性方面取代 TCP?
原文链接:How QUIC Is Displacing TCP for Speed and Security
萝卜要努力
2025/03/07
1080
QUIC 如何在速度和安全性方面取代 TCP?
如何平衡研发与开发
对于程序员来讲,很多时候会纠结一个问题,我做了这么多项目,除了上线了产品,自己的逻辑、对产品的设计进步了哪些,这一点对前端、后端其实都是一样的具有迷惑性。
RobinsonZhang
2018/08/28
5280
如何在windows下和linux下获取文件(如exe文件)的详细信息和属性
最近在项目开发中,由cs开发的exe的程序,需要自动升级,该exe程序放在linux下,自动升级时检测不到该exe程序的版本号信息,但是我们客户端的exe程序需要获取服务器上新程序的版本号信息。最后由我用java实现linux上exe文件的版本号读取功能。下面是详细代码:
业余草
2019/01/21
6K0
如何在windows下和linux下获取文件(如exe文件)的详细信息和属性
精度、速度完美平衡,最新图像分割SOTA模型重磅发布!!!
支撑影视人像抠图、医疗影像分析、自动驾驶感知等万亿级市场背后的核心技术是什么?那就要说到顶顶重要的图像分割技术。相比目标检测、图像分类等技术,图像分割需要将每个像素点进行分类,在精细的图像识别任务中不可替代,也是智能视觉算法工程师拥有关键核心竞争力的关键!
计算机视觉
2022/05/24
1.6K0
精度、速度完美平衡,最新图像分割SOTA模型重磅发布!!!
如何在序列标注过程中打标?
英文打标,token可以是一个单词(e.g. awesome),也可以是一个字符(e.g. a)。
伊泽瑞尔
2022/06/01
3610
如何在序列标注过程中打标?
我们如何在Elasticsearch 8.6, 8.7和8.8中提升写入速度
一些用户已经注意到Elasticsearch 8.6、8.7 和 8.8 在很多不同类型数据写入时速度都获得了可观的提升,从简单的Keywords到复杂的KNN向量,再到一些负载比较重的写入处理管道都是这样。写入速度涉及到很多方面:运行写入处理管道、反转内存中的数据、刷新段、合并段,所有这些通常都需要花费不可忽略的时间。幸运的是,我们在所有这些领域都进行了改进,这为端到端的写入速度带来了很不错的提升。例如,在我们的基准测试里面,8.8比8.6写入速度提升了13%,这个基准测试模拟了真实的日志写入场景,其中包含了多种数据集、写入处理管道等等。请参见下图,您可以看到在这段时间内,实施了这些优化措施后写入速率从 ~22.5k docs/s 提升到了 ~25.5k docs/s。
点火三周
2023/07/11
1.3K0
我们如何在Elasticsearch 8.6, 8.7和8.8中提升写入速度
企业如何在采购过程中做好成本控制?
学会降低成本是有效采购的其中一个重要方面。单是这个因素,就能决定是几乎没有盈利,还是大赚一笔。但是在降低成本的时候,企业要牢记一点——不能牺牲质量。降低成本很重要,但前提是保证质量,企业的供应品需要始终保持足够好的质量,而且需要按时交付。
数商云市场营销总监
2022/03/16
7320
在网络端口扫描期间寻找速度和准确度之间的平衡点
侦察是每个bug bounty或渗透测试中最为重要的阶段之一。侦察工作做得到不到位,可能会对最终的结果产生直接影响。侦察可以分为两类:即主动和被动侦察。在主动侦察中端口扫描是最常用的方法之一。通过端口扫描渗透测试人员或漏洞猎人可以确定在目标主机或网络上打开的端口,以及识别在这些端口上运行的服务。
FB客服
2019/08/30
1.8K0
在网络端口扫描期间寻找速度和准确度之间的平衡点
C#百万对象序列化深度剖析:如何在网络传输中实现速度与体积的完美平衡
在网络通信中,数据序列化是将对象状态转换为可存储或可传输的形式的过程,这对于TCP网络传输尤为关键。在项目中,当需要处理几十万条数据的传输时,传统的Json序列化方式由于其冗余的字段名和字符串格式,导致了二进制包体积庞大,且序列化与反序列化的效率低下。为了解决这些问题,我考虑采用更加高效的序列化方法,以减少包大小并提升处理速度。本文将探讨自定义二进制序列化、BinaryWriter/BinaryReader、MessagePack[1]和ProtoBuf[2]等4种序列化方法,并通过比较它们的性能,为大家提供我目前认为的最佳实践指南。
沙漠尽头的狼
2023/12/13
5110
C#百万对象序列化深度剖析:如何在网络传输中实现速度与体积的完美平衡
如何在 CI/CD 过程中实施高效的自动化测试和部署
在持续集成(CI)和持续交付(CD)过程中,自动化测试和部署是提高软件交付速度和质量的关键。本文将详细介绍如何选择适合的CI/CD工具,配置自动化构建和测试流程,制定全面的测试策略,并确保部署环境的稳定性,采用蓝绿部署等策略降低风险。
Swift社区
2024/08/01
3730
如何在 CI/CD 过程中实施高效的自动化测试和部署
栈平衡和栈迁移
程序的运行需要数据,而数据就存放在内存中。首选的存放地址肯定是寄存器中(运行速度快),但是寄存器也就几个,数据很多,所以就把数据存放在了堆栈中。
ly0n
2020/11/04
1.2K0
栈平衡和栈迁移

相似问题

按钮禁用在IE 10中不起作用

20

JavaScript函数调用在IE中不起作用

13

对javascript中函数的调用在IE中不起作用

10

使用在chrome中不起作用的javascript启用按钮

22

禁用javascript中的按钮在IE中不起作用

40
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文