基准测试

十、单元测试与基准测试

℡╲_俬逩灬. 提交于 2020-03-17 09:01:01
Go 提供了 test 工具用于代码的单元测试,test 工具会查找包下以_test.go 结尾的文件,调用测试文件中以 Test 或 Benchmark 开头的函数并给出运行结果 单元测试指的是功能测试 基准测试指的是性能测试 1. Test 函数 测试函数需要导入 testing 包,并定义以 Test 开头的函数,参数为 testing.T 指针类型,在测试函数中调用函数进行返回值测试,当测试失败可通过 testing.T 结构体的 Error*函数抛出错误 测试文件名为go_test.go 2.测试覆盖率 这里的测试覆盖率表示测试代码 能测试代码的百分比 go test -v -coverprofile=cover.out test/gotest 这里的100%表示测试代码能测试多少代码 go tool cover -html cover.out 这个可以用web页面来观察 绿色代表可以测试的,如果没有被覆盖那么会是红色 3.基准测试 基准测试常用于代码性能测试,函数需要导入 testing 包,并定义以Benchmark 开头的函数,参数为 testing.B 指针类型,在测试函数中循环调用函数多次 测试文件名为bench_xxx.go 来源: CSDN 作者: 来自万古的忧伤 链接: https://blog.csdn.net/weixin_45413603

springboot使用jmh基准测试评估json反序列化、实体转换的性能差异

╄→尐↘猪︶ㄣ 提交于 2020-03-04 13:02:49
1、背景 笔者经常把一些经常使用的数据放到redis缓存,方便程序进行读取。 比如按照不同的键名将数值存储到hash值类型中。示例如下 hash hashkey hashValue snapshot 999 "{\"id\":999,\"distId\":999,\"distName\":\"玄武区\",\"confirm\":7,\"suspect\":0,\"dead\":0,\"heal\":2,\"weight\":6.6,\"level\":\"area\",\"mapId\":\"c320100_2\",\"updateTime\":\"2020-03-03 07:20:39\"}" snapshot1 999 {"confirm":7,"dead":0,"heal":2,"weight":6.6,"mapId":"c320100_2","updateTime":"2020-03-03 07:20:39","name":"玄武区"} 以上数据分别2052条 分别将snapshot1,snapshot转换成实体,现在将对他们进行基准测试,以评测两种存储方式的性能差异 2、基准测试 2个独立进程,分别依1次热身/热加载,批量执行20次,总计40次 2.1、snapshot1相关测试 这里用的实体转换框架是 ModelMapper ,官网: http:/

HDFS的基准测试

喜你入骨 提交于 2020-03-01 19:43:35
实际生产环境当中,hadoop的环境搭建完成之后,第一件事情就是进行压力测试,测试我们的集群的读取和写入速度,测试我们网络带宽是否足够等一些基准测试 测试写入速度: 向HDFS文件系统中写入数据,10个文件,每个文件10MB,文件存放到/benchmarks/TestDFSIO中 hadoop jar /export/servers/hadoop-2.7.5/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.7.5.jar TestDFSIO -write -nrFiles 10 -fileSize 10MB 完成之后查看写入速度结果: hdfs dfs -text /benchmarks/TestDFSIO/io_write/part-00000 测试读取结果: 测试hdfs的读取文件性能 在HDFS文件系统中读入10个文件,每个文件10M hadoop jar /export/servers/hadoop-2.7.5/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.7.5.jar TestDFSIO -read -nrFiles 10 -fileSize 10MB 查看读取结果: hdfs dfs -text /benchmarks

mysql benchmark基准测试

青春壹個敷衍的年華 提交于 2020-02-27 01:26:17
git项目地址: https://github.com/akopytov/sysbench 利用sysbench很容易对mysql做性能基准测试(当然这个工具很强大,除了测试主流数据库性能,还能测试其它方面,详情自己看官网项目文档) mac上的用法: 一、安装 brew install sysbench 二、先在mysql上创建一个专门的测试数据库,比如test 三、利用sysbench先生成测试数据 sysbench --test=oltp --oltp-table-size=5000000 --oltp-table-name=t_test \ --mysql-table-engine=innodb \ --mysql-host=localhost \ --mysql-db=test \ --mysql-user=root \ --mysql-password=*** \ prepare 上面这一堆的意思,是在本机localhost的test数据库的t_test中创建500万条测试数据,表的数据库引擎为innodb. tips: 如果想知道还有哪些参数可用,可输入命令 sysbench --test=oltp help centos上如果用yum install sysbench安装的话,运行时可能会出现 FATAL: no database driver specified

基准测试与性能分析

人走茶凉 提交于 2020-02-27 01:25:07
基准测试与性能分析 benchmarking and profiling 基准测试 测试指标:时间单位的事务处理量(吞吐量)、响应时间或时延、扩展性、并发性。p52 这里的指标只作为参考,具体的性能测试要按用户类型和对其真正重要的。 设计和规划 标准基准测试(选择合适的测试方法)、设计专用。 设计专用: s1:获取生产数据集的快照。 s2:针对这些数据运行相关查询。 记录基准测试规划。tips:规划中应该包括测试数据、设置系统的步骤、以及“暖机”计划。 设计方法来归档测试和测试结果。(应该写脚本来分析测试结果。结果集可保存再表格或文本) 建立基准测试目录,并为每次运行建立相关子目录。也可以记录额外信息。比如CPU利用率、磁盘I\O信息、网络流量统计信息。 获得准确测试结果 t1: *是否选择正确基准测试? *是否搜集了相关数据? t2:测试结果是否可重复? t3:为测试过程可能改变数据或架构的测试保留全新的数据快照重置系统状态。 t4:额外负载 t5:配置参数。尽量少改变相关参数(“隔离可变因子”)。如果必须修改采用方法:对参数迭代修改(分治法)。 tips extra:对测试异常应格外注意。 运行基准测试和分析测试结果 基准测试工具(*****) 集成式测试工具: *ab.可测试HTTP服务器每秒最多处理多少web请求。缺点:一次只能测试一个url链接。 *http_load

SpringBoot集成JMH进行基准测试

百般思念 提交于 2020-02-26 10:36:54
基准测试时评估程序/接口性能的一个有效的方法。笔者早期在网上了解到 JMH 这个代码工具。由于之前找到的一些代码不具备项目 实践场景的说服力,通常是一项简单算法,独立小功能模块性的代码,便没有深入了解。 网址: https://openjdk.java.net/projects/code-tools/jmh/ 官方说明: JMH is a Java harness for building, running, and analysing nano/micro/milli/macro benchmarks written in Java and other languages targetting the JVM. 大意:JMH 是一种 Java代码工具,用于构建、运行和分析以 Java 和其他语言编写的以 JVM 为目标的纳米/微秒/毫秒/宏(黑人问号marco这里应该翻译成宏吗) 级基准框架。 笔者今晨忽然想起他和Springboot集合进行基准测试,于是找到了以下一篇文章。 Springboot整合JMH基准测试 转载地址: https://blog.csdn.net/peng_0129/article/details/100134320 直接上代码 pom.xml <dependency> <groupId>org.openjdk.jmh</groupId>

Hadoop--Hadoop基准测试(读/写)

*爱你&永不变心* 提交于 2020-02-25 22:20:53
Hadoop自带了几个基准测试,本文使用的是hadoop-2.6.0 一、Hadoop Test 的测试 [root@master hadoop-2.6.0]# hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-2.6.0-tests.jar An example program must be given as the first argument. Valid program names are: DFSCIOTest: Distributed i/o benchmark of libhdfs. DistributedFSCheck: Distributed checkup of the file system consistency. JHLogAnalyzer: Job History Log analyzer. MRReliabilityTest: A program that tests the reliability of the MR framework by injecting faults/failures SliveTest: HDFS Stress Test and Live Data Verification. TestDFSIO: Distributed i/o

MySQL基准测试

∥☆過路亽.° 提交于 2020-01-30 03:00:15
基准测试是一种测量和评估软件性能指标的活动用于建立某个时刻的性能基准,以便当系统发生软硬件变化时重新进行基准测试以评估变化对性能的影响,是针对系统设置的一种压力测试。 基准测试特点 直接、简单、易于比较,用于评估服务器的处理能力 可能不关心业务逻辑,所使用的查询和业务的真实性可以和业务环境没关系 压力测试特点 对真实的业务数据进行测试,获得真实系统所能承受的压力 需要针对不同主题,所使用的数据和查询也是真实用到的 基准测试是简化了的压力测试 基准测试的目的 建立MySQL服务器的性能基准线,确定当前MySQL服务器运行情况,确定优化之后的效果 模拟比当前系统更高的负载,已找出系统的扩展瓶颈,可以增加数据库并发,观察QPS(每秒处理的查询 数),TPS(每秒处理的事务数)变化,确定并发量与性能最优的关系 测试不同的硬件、软件和操作系统配置 证明新的硬件设备是否配置正确 如何进行基准测试 对整个系统进行基准测试: 优点 能够测试整个系统的性能,包括web服务器缓存、数据库等 MySQL并不总是出现性能问题的瓶颈,如果只关注MySQL可能忽略其他问题,能反映出系统中各个组件接口间的性能问题体现真实性能状况 缺点 基准测试最重要的就是简单,可能对不同的方案进行测试,找到最优的方案,基准测试进行的时间一定要短,否则就要花费大量的时间进行基准测试 测试设计复杂,消耗时间长

MySQL基准测试--innodb_buffer_pool_instances

醉酒当歌 提交于 2020-01-15 16:07:43
http://blog.chinaunix.net/uid-26896862-id-3345441.html 目的 根据现有硬件环境下,测试MySQL单实例下,在数据量小于innodb_buffer_pool_size大小的情况下,innodb_buffer_pool_instances的值对MySQL数据库的性能影响。 实验测试环境 1 、实验测试硬件环境 Summary: Dell R620, 1 x Xeon E5-2630 0 2.30GHz, 63GB / 64GB 1600MHz DDR3 System: Dell PowerEdge R620 (Dell 036FVD) Processors: 1 (of 2) x Xeon E5-2630 0 2.30GHz 7200MHz FSB (HT enabled, 6 cores, 24 threads) Memory: 63GB / 64GB 1600MHz DDR3 == 8 x 8GB, 16 x empty 2 、实验测试软件环境 实验测试的软件环境主要包括,操作系统、MySQL数据库以及测试工具,具体内容如下: 操作系统: CentOS 6.2 (Final), Linux 2.6.32-220.23.1.el6.x86_64 x86_64, 64-bit MySQL 版本: Percona Server 5.5

关于MySQL的基准测试

痴心易碎 提交于 2020-01-13 00:15:03
什么是基准测试 当我们对数据库进行优化后,只有进行测量系统性能才能知道优化是否有效,这种测量的方式就是基准测试。基准测试的定义如下: 基准测试是一种测量和评估软件性能指标的活动用于建立某个时刻的性能基准,以便当系统发生软/硬件变化时,重新进行基准测试以评估变化对性能的影响 我们可以这样认为: 基准测试是针对系统设置的一种压力测试,可以用来观察系统在不同压力下的行为。评估系统的容量,观察系统如何处理不同的数据。 但是基于测试不等同于压力测试: 基于测试:直接、简单、易于比较,用于评估服务器的处理能力。基准测试可能不关心业务逻辑,所使用的查询和业务的真实性可以和业务环节没有关系 压力测试:对真实的业务数据进行测试,获得真实系统所能承受的压力。压力测试需要针对不同的主题,所使用的数据和查询也是真实用到的 对MySQL进行基准测试的目的: 1、建立MySQL服务器的性能基准线,确定当前MySQL服务器的运行情况 2、模拟比当前系统更高的负载,以找出系统的扩展瓶颈。增加数据库的并发,观察QPS、TPS的变化,以确定并发量与性能最优的关系 3、测试不同的硬件、软件和操作系统配置 4、证明新的硬件设备是否配置正确 如何进行基准测试 通常来说,基准测试有两种方式: 1、对整个系统进行基准测试:从系统的入口进行测试(网站Web前端,手机APP前端) 优点:能够测试整个系统的性能,包括web服务器缓存