电子商务网站建设侧重点绵阳网站建设费用

张小明 2026/1/12 21:22:43
电子商务网站建设侧重点,绵阳网站建设费用,简约ins风工作室名字,微信公众号开通商城前文分享了几种性能测试中常用到的生成全局唯一标识的案例#xff0c;虽然在文中我猜测了几种方案设计的性能#xff0c;并根据自己的经验给出了适用的场景。 但对于一个性能测试工程师来讲#xff0c;有真是测试数据才更有说服力。这让我想起来之前学过的Java微基准测试框…前文分享了几种性能测试中常用到的生成全局唯一标识的案例虽然在文中我猜测了几种方案设计的性能并根据自己的经验给出了适用的场景。但对于一个性能测试工程师来讲有真是测试数据才更有说服力。这让我想起来之前学过的Java微基准测试框架JMH所以不妨一试。JMH简介JMH (Java Microbenchmark Harness)是一个用于编写和运行Java基准测试的工具。它被广泛用于评估Java应用程序的性能,并帮助开发人员发现和优化性能瓶颈。JMH的主要特点包括:高可信度:JMH提供了多种机制来消除测试过程中的噪音和偏差,确保测试结果的可靠性。易用性:JMH提供了丰富的注解和API,使编写和运行基准测试变得相对简单。灵活性:JMH支持多种测试模式,如简单的吞吐量测试、微基准测试以及更复杂的测试场景。可扩展性:JMH允许用户自定义测试环境,如GC策略、编译器选项等,以满足特定的性能评估需求。广泛应用:JMH被广泛应用于Java生态系统中,包括JDK自身的性能优化、第三方开源库的性能评估等。JMH是Java开发者评估应用程序性能的强大工具,有助于提高Java应用程序的整体质量和性能。同样地对于性能测试而言也可以通过JMH测试评估一段代码在实际执行当中的表现。实测除了使用分布式服务生成GUID这个方案以外其他四种方案其中两种是我自己常用的均参与测试。原因是分布式服务需要网络交互这个一听就不高性能还有我暂时没条件测试这个。下面有限展示实测结果总结使用线程共享和线程独享的方案性能均远远高于UUID和雪花算法。为了省事儿以下测试均预热2次预热批次大小2测试迭代次数1次迭代批次大小也是1次。配置如下.warmupIterations(2)//预热次数.warmupBatchSize(2)//预热批次大小.measurementIterations(1)//测试迭代次数.measurementBatchSize(1)//测试批次大小.build();PSJMH貌似还不支持Groovy所以我用Java写了这个用例。下面是运行1个线程的测试结果UniqueNumberTest.exclusive thrpt 203.146 ops/usUniqueNumberTest.share thrpt 99.860 ops/usUniqueNumberTest.snow thrpt 4.096 ops/usUniqueNumberTest.uuid thrpt 11.758 ops/us下面是运行10个线程的测试结果Benchmark Mode Cnt Score Error UnitsUniqueNumberTest.exclusive thrpt 1117.347 ops/usUniqueNumberTest.share thrpt 670.141 ops/usUniqueNumberTest.snow thrpt 10.925 ops/usUniqueNumberTest.uuid thrpt 3.608 ops/usPS此时机器的性能基本跑满了。下面是40个线程的测试结果Benchmark Mode Cnt Score Error UnitsUniqueNumberTest.exclusive thrpt 1110.273 ops/usUniqueNumberTest.share thrpt 649.350 ops/usUniqueNumberTest.snow thrpt 8.908 ops/usUniqueNumberTest.uuid thrpt 4.205 ops/us可以看出跟10个线程结果差不多。本机配置12核心以上的测试结果单位是微秒把结果乘以100万就是每秒的处理量各位在使用不同方案时可以适当参考。测试用例下面是我的测试用例测试结果我就不进行可视化了。package com.funtest.jmh;import com.funtester.utils.SnowflakeUtils;import org.openjdk.jmh.annotations.*;import org.openjdk.jmh.infra.Blackhole;import org.openjdk.jmh.results.format.ResultFormatType;import org.openjdk.jmh.runner.Runner;import org.openjdk.jmh.runner.RunnerException;import org.openjdk.jmh.runner.options.Options;import org.openjdk.jmh.runner.options.OptionsBuilder;import java.util.UUID;import java.util.concurrent.TimeUnit;import java.util.concurrent.atomic.AtomicInteger;BenchmarkMode(Mode.Throughput)//Warmup(Ω 3, time 2, timeUnit TimeUnit.SECONDS)//预热次数,含义是每个测试会跑多久//Measurement(iterations 3, time 5, timeUnit TimeUnit.SECONDS)//测试迭代次数,含义是每个测试会跑多久//Threads(1)//测试线程数//Fork(2)//fork表示每个测试会fork出几个进程也就是说每个测试会跑几次State(value Scope.Thread)//默认为Scope.Thread,含义是每个线程都会有一个实例OutputTimeUnit(TimeUnit.MICROSECONDS)public class UniqueNumberTest {SnowflakeUtils snowflakeUtils new SnowflakeUtils(1, 1);ThreadLocalInteger exclusive ThreadLocal.withInitial(() - 0);AtomicInteger share new AtomicInteger(0);Benchmarkpublic void uuid() {UUID.randomUUID();}Benchmarkpublic void snow() {snowflakeUtils.nextId();}Benchmarkpublic void exclusive(Blackhole blackhole) {Integer i exclusive.get();i;blackhole.consume(i );}Benchmarkpublic void share(Blackhole blackhole) {blackhole.consume(share.incrementAndGet() );}public static void main(String[] args) throws RunnerException {Options options new OptionsBuilder().include(UniqueNumberTest.class.getSimpleName())//测试类名.result(long/result.json)//测试结果输出到result.json文件.resultFormat(ResultFormatType.JSON)//输出格式.forks(1)//fork表示每个测试会fork出几个进程也就是说每个测试会跑几次.threads(40)//测试线程数.warmupIterations(2)//预热次数.warmupBatchSize(2)//预热批次大小.measurementIterations(1)//测试迭代次数.measurementBatchSize(1)//测试批次大小.build();new Runner(options).run();}}感谢每一个认真阅读我文章的人礼尚往来总是要有的虽然不是什么很值钱的东西如果你用得到的话可以直接拿走这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴上万个测试工程师们走过最艰难的路程希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

金融服务网站建设潍坊哪里做网站好

Linux 系统使用与管理全解析 1. 系统基础操作 1.1 系统访问与账户管理 在 Linux 系统中,访问各类资源和进行账户管理是基础操作。可以通过以下方式进行操作: - 账户操作 :安装 Linux 后可创建新账户,也能禁用账户。使用 adduser 工具添加用户, userdel 命令删除…

张小明 2026/1/11 22:09:15 网站建设

泰州手机网站制作可以做淘宝推广的网站

想要在观看外语视频时不再为理解字幕而烦恼?PotPlayer字幕翻译插件结合百度翻译服务,为你提供智能的字幕翻译解决方案。本文将带你从基础配置到高级优化,全面掌握这款实用工具的使用技巧。 【免费下载链接】PotPlayer_Subtitle_Translate_Bai…

张小明 2026/1/11 17:12:08 网站建设

北京网站备案流程企业信用信息公示系统查询

《黑镜》第七季《玩物》里的《群落》游戏,曾让无数观众直呼细思极恐:玩家起初如同“造物主”,为数字生命投喂数据、搭建文明框架,可随着数字生命实现自我进化,它们竟冲破虚拟边界——入侵人类网络后,将代码…

张小明 2026/1/10 14:50:11 网站建设

公司网站的维护企业建设网站的规定

最近,你的群聊是不是被一只戴着墨镜、打着领结的“高雅人士”企鹅刷屏了呢?这抽象的舞姿,不仅在国内掀起一番热舞的风潮,也跨越重洋,让外国友人也争相模仿这只企鹅,原本是国外图片素材网站Shutterstock的创…

张小明 2026/1/10 9:30:11 网站建设

宁夏 网站制作网站运营需要哪些人员

TweakPNG终极指南:深入掌握PNG文件编辑的5个关键步骤 【免费下载链接】tweakpng A low-level PNG image file manipulation utility for Windows 项目地址: https://gitcode.com/gh_mirrors/tw/tweakpng PNG编辑工具是每个图像处理爱好者必备的利器&#xff…

张小明 2026/1/11 22:05:01 网站建设

网页跳转到其它网站建设网站西丽

物联网平台 - Thinglinks-iot ## 🌟 项目简介 一个功能完备、高可扩展的物联网平台,提供完整的设备接入、管理和数据处理解决方案。支持多种网络协议,具备强大的消息解析和实时告警能力,帮助企业快速构建物联网应用。 该项目现已…

张小明 2026/1/11 17:10:25 网站建设