bench

Yaconf-1.1 40%速度提升版

荒凉一梦 提交于 2020-03-23 19:30:49
3 月,跳不动了?>>> 本文地址: https://www.laruence.com/2020/03/12/5521.html 转载请注明出处 Yaconf是一个高性能的PHP配置容器, 它在PHP启动的时候把格式为INI的配置文件Parse后存储在PHP的常驻内存中,不需要每次请求的时候都来分析配置文件,并且在获取配置项的时候"zero-copy",具体的介绍可以看我2015年发布的时候写的介绍: Yaconf - 一个高性能的配置管理扩展 。 Yaconf在微博被大量使用,也稳定运行了这么多年,但是2015年发布后基本也没有什么大的变化。 最近因为疫情,我对Yaconf做了一系列的重构,主要是减少取过程中的内存使用,基本重写了整体的逻辑,那性能优化的结果如何呢? 我们来做个简单的测试。 首先测试配置文件如下: name="yaconf" version="1.1.0" [author] name="Laruence" blog.address="https://www.laruence.com" [developer : author] projects.yaf.repo="https://github.com/laruence/yaf" 测试脚本如下: <?php function bench($key) { $count = 1000000; $start =

yum install 与 yum groupinstall 的区别

别来无恙 提交于 2019-12-29 20:54:23
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> yum 提供二种安装软件的方式 1,yum install 它安装单个软件,以及这个软件的依赖关系 2,yum groupinstall 它安装一个安装包,这个安装包包涵了很多单个软件,以及单个软件的依赖关系。 举例说明一下--装mysql yum install mysql 或者 yum groupinstall "MySQL Database" 这二个都是可以安装mysql的 [root@tank ~]# yum groupinfo "MySQL Database" Loading "security" plugin Loading "rhnplugin" plugin Setting up Group Process rhel-x86_64-server-5 100% |=========================| 1.4 kB 00:00 Group: MySQL Database Description: This package group contains packages useful for use with MySQL. Mandatory Packages: mysql Default Packages: unixODBC mysql-server MySQL-python

Apach Bench 压测工具

扶醉桌前 提交于 2019-12-16 11:01:54
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> Apach Bench 压测工具  本篇主要讲解Apach Bench的基本使用 包括基本命令 和 对返回结果参数的详解,它可以很轻松的发送一些并发请求 ,ab命令可以创建很多的并发访问线程,模拟多个访问者同时对某一URL地址进行访问 是一款非常好用的工具。  1.Mac版本无需下载  如果你是Mac用户 那么恭喜 Mac电脑自带了Apach Bench工具,如果你是Windos用户那么请你面向百度 查询如何安装吧,我这里不做解释。  2.基本命令讲解   Apache Bench 用法  Usage: ab [options] [http[s]://]hostname[:port]/path  options 有很多可选项这里我先说常用的几个(最下面会贴出所有的 options ) -n 发起的总请求数 -c 并发数(模拟多少客户端同时请求) -t 测试所进行的最大秒数,限制测试在某时间内  测试: 向百度发送 2000个请求,并发数200 ab -c 200 -n 2000 https://www.baidu.com/ johnny[@localhost](https://my.oschina.net/u/570656):~$ ab -c 200 -n 2000 https://www.baidu.com/

go benchmark 性能测试

ぃ、小莉子 提交于 2019-12-05 23:49:49
go 性能测试 基准测试 基准测试主要是通过测试CPU和内存的效率问题,来评估被测试代码的性能,进而找到更好的解决方案。 编写基准测试 func BenchmarkSprintf(b *testing.B){ num:=10 b.ResetTimer() for i:=0;i<b.N;i++{ fmt.Sprintf("%d",num) } } 基准测试的代码文件必须以_test.go结尾 基准测试的函数必须以Benchmark开头,必须是可导出的 基准测试函数必须接受一个指向Benchmark类型的指针作为唯一参数 基准测试函数不能有返回值 b.ResetTimer是重置计时器,这样可以避免for循环之前的初始化代码的干扰 最后的for循环很重要,被测试的代码要放到循环里 b.N是基准测试框架提供的,表示循环的次数,因为需要反复调用测试的代码,才可以评估性能 ➜ go test -bench=. -run=none BenchmarkSprintf-8 20000000 117 ns/op PASS ok flysnow.org/hello 2.474s 使用 go test 命令,加上 -bench= 标记,接受一个表达式作为参数, . 表示运行所有的基准测试 因为默认情况下 go test 会运行单元测试,为了防止单元测试的输出影响我们查看基准测试的结果,可以使用 -run=

Golang单元测试入门实践总结

梦想与她 提交于 2019-12-04 03:58:09
背景: 之前很长一段时间再写Golang程序时,不会有意识去写单元测试,直到后来写了独立项目后,慢慢才发现给一个功能编写对应的单元测试是多么高效和方便,接下来就再一起复习下Golang中的测试. UnitTest(单元测试) 单元测试是程序开发者适用一段代码来验证另外一段代码写的是否符合预期的一种相对高效的自我测试方法。 还记得最早开始搞运维时,写的程序基本上是通过 main 程序去调用具体的功能函数,然后通过具体的输出来主观验证结果是否符合预期,这种方式对于搞正统的软件开发者而言会感觉很傻,但这对于运维领域来说却很实用,很有效,因为通常运维工作中需要的一些开发都不会是逻辑较为复杂的程序,所以没有必要专门去写测试程序去测试另外一个程序是否符合预期。 但是随着工作内容和运维需求的变化,不得不使用一些正规软件工程领域的相关方法来进行测试,因为对于程序开发来说,经过长期的积累和方法总结,单元测试是一种比较好的开发程序验证方式,而且能够提高程序开发的质量。而在 Golang 语言中内置了一系列的测试框架,加下来就主要讲讲 UnitTest 单元测试的相关知识点。 UnitTest的编写 注意: 在Golang中,对于单元测试程序来说通常会有一些重要约束,主要如下: 单元测试文件名必须为 xxx_test.go (其中xxx为业务逻辑程序) 单元测试的函数名必须为 Testxxx

米联客 ZYNQ/SOC 精品教程 S04-CH03搭建仿真验证平台ImageLoad 实验

爱⌒轻易说出口 提交于 2019-11-29 10:03:12
软件版本:VIVADO2017.4 操作系统:WIN10 64bit 硬件平台:适用米联客 ZYNQ系列开发板 米联客(MSXBO)论坛: www.osrc.cn 答疑解惑专栏开通,欢迎大家给我提问!! 3.1 概述 通过前面的学习,我们已经基本熟悉了HLS的开发流程,那么在HLS上进行算法开发,算法实现综合后我们需要对算法的正确性进行验证,那么我们如何得到我们想要的视频图像数据流,对算法模块进行测试呢? 本章介绍了3种HLS仿真中最常用的获取仿真数据流的方法,并对图像、视频数据流以及外部摄像头调用进行了验证。在接下来的算法设计中,我们就即将用到本章介绍的这3种方法,对设计的功能进行仿真,掌握好这一章的内容以便完成接下来的算法设计。 3.2 图片数据的获取 当我们进行前期算法验证的时候,需要读取图片进行仿真,那么关键的一步就是如何加载图片进行测试,在HLS中比较基础的两种加载图片的方法如下: 第一种,通过 cvLoadImage 函数 加载图片 cvLoadImage 函数 格式 : 通过cvLoadImage函数加载图片格式如下 IplImage* src = cvLoadImage(INPUT_IMAGE); cvShowImage("src",src); 函数原型 : IplImage* cvLoadImage(const char*filename,int iscolor