性能

go revel 简单性能测试

泪湿孤枕 提交于 2019-12-04 23:31:02
用revel创建的new创建了一个最简单的示例app,并用ab做简单的性能测试。设置并发数为1000。 结果如下: dev模式下运行:1200次/每秒 prod模式下运行:4800次/每秒 默认创建的app只能使用单个cpu,对多核多cpu服务器来说是个资源浪费,通过修改init.go 在其中添加如下代码: runtime.GOMAXPROCS(runtime.NumCPU()) 再次测试后,得到测试数据为:17500/每秒。 另:要做性能测试或者正式部署到生产环境之前别忘了把watch设置为false,开发状态下开启watch很爽,修改了代码不需要重启服务,revel发现代码发生了更改会自动重新编译,返回新的结果,但是带来的代价是性能剧降。我忘了关闭此功能做性能测试的结果是从18000次/每秒降到600次/每秒。 来源: oschina 链接: https://my.oschina.net/u/221218/blog/148365

写在前端性能优化之前你应该知道的

半城伤御伤魂 提交于 2019-12-04 14:59:33
前言 一直想写点关于前端性能的东西,后来感觉所谓的性能优化最基本的前提是你要知道浏览器是如何针对web页面工作的.后来由于过年以及换工作等原因耽搁下来,只好利用这个休息的周末写一下. 本来打算好好研究一下关于前端性能优化的一些内容,看了一些发现有的地方不是很明了.所以觉得先把浏览器加载渲染这个过程摸清楚,本文是多方总结和我自己的一点研究,如果有不对的地方,还请指出,谢谢. 加 载 首先我们要有一个概念,浏览器显示出一个页面,即使只拿前端抛开服务器和数据库,也是一个很复杂的过程.尽管它很复杂,但还是有一的步骤和流程的,了解这些步骤你才会清除的知道哪里耗费了过多的资源,从而进行人为的优化. 在一个页面上我们通常会看到种内容,HTML-CSS-Javascript.在一个文件中它们会通过各种方式引入,然后会被浏览器分别解析.当我们通过一个URL地址进入页面时,工作就开始了.首先浏览器将HTML解析为一个DOM-Tree,然后将CSS规则解析为一个CSS-Tree,最后则是Javascript的下载和执行. 在这个过程中,浏览器是按照一定顺序进行的,其中的任何一个步骤出现问题都可能导致页面无法显示. 解析 当完成了上面的解析过程后,浏览器引擎会根据这些解析的结果构建出Rendering-Tree,它会生成的规则将CSS样式应用到对应的element上,并且计算每个element的位置

Python vs PHP 冒泡排序和累加求和计算性能测试

て烟熏妆下的殇ゞ 提交于 2019-12-04 06:02:04
测试环境 : 处理器i5-3230M,64位Ubuntu 14.04 Python 2.7.6, PHP 5.4.39, PHP 7.0.0-dev(2015/04/21) 测试内容: 冒泡排序:对10个升序的数进行排序,降序输出,循环1百万次. 累加求和:0+1+2+3+...+99999999 冒泡排序测试结果对比: 程序: Python PHP5 PHP7 耗时: 16.910s 14.715s 8.011s 内存: 35.8m 9.0m 12.5m Python改用xrange后,内存占用为4.8MB,耗时为16.784s. 累加求和测试结果对比: 程序: Python PHP5 PHP7 耗时: 10.057s 3.855s 1.855s 内存: 3.039g 8.9m 12.5m 使用range时,Python内存占用达到3GB,改为xrange后,内存占用为4.8MB,耗时为9.460s. 结论: Python和PHP都是动态脚本语言,都没有JIT机制,所以测试是公平的. Python计算性能根本比不上PHP5,跟PHP7差距更大,所以就别黑PHP计算不如Python了. PHP是 自己编译的 ,启用了很多内建的功能,所以测试中内存占用会比Python多一些. 下面是详细测试过程: Python冒泡排序: def bubble_sort(lst): length =

TPS和QPS的区别

天大地大妈咪最大 提交于 2019-12-03 22:51:06
一、TPS:Transactions Per Second(每秒传输的事务处理个数),即服务器每秒处理的事务数。TPS包括一条消息入和一条消息出,加上一次用户数据库访问。(业务TPS = CAPS × 每个呼叫平均TPS) TPS是软件测试结果的测量单位。一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机在发送请求时开始计时,收到服务器响应后结束计时,以此来计算使用的时间和完成的事务个数。 一般的,评价系统性能均以每秒钟完成的技术交易的数量来衡量。系统整体处理能力取决于处理能力最低模块的TPS值。 二、QPS:每秒查询率QPS是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准,在因特网上,作为域名系统服务器的机器的性能经常用每秒查询率来衡量。 对应fetches/sec,即每秒的响应请求数,也即是最大吞吐能力。 一.系统吞度量要素: 一个系统的吞度量(承压能力)与request对CPU的消耗、外部接口、IO等等紧密关联。单个reqeust 对CPU消耗越高,外部系统接口、IO影响速度越慢,系统吞吐能力越低,反之越高。 系统吞吐量几个重要参数:QPS(TPS)、并发数、响应时间 QPS(TPS):每秒钟request/事务 数量 并发数: 系统同时处理的request/事务数 响应时间: 一般取平均响应时间 (很多人经常会把并发数和TPS理解混淆)

Oracle与MySQL性能比较

北战南征 提交于 2019-12-03 22:05:00
oracle优点: 1、处理速度快,非常快 2、安全级别高。支持快闪以及完美的恢复,即使硬件坏了 也可以恢复到故障发前的1s 3、几台数据库做负载数据库,可以做到30s以内故障转移 4、网格控制,以及 数据仓库方面 也非常强大 oracle缺点: 1.不开源 2.收费高 至于mysql: 1.号称世界最快的数据库,连yahoo、google都用它,又免费,前途无量 2.但是,mysql没有事务的概念 Oracle 数据库与 MySQL 数据库的主要区别如下: 0 . 组函数用法规则    mysql 中组函数在 select 语句中可以随意使用,但在 oracle 中 如果查询语句中有组函数,那其他列名必须是组函数处理过的,或者是 group by 子句中的列 否则报错    eg :    select name , count ( money ) from user ;这个放在 mysql 中没有问题 在 oracle 中就有问题了.............    2 . 自动增长的数据类型处理    MYSQL 有自动增长的数据类型,插入记录时不用操作此字段,会自动获得数据值。 ORACLE 没有自动增长的数据类型,需要建立一个自动增长的序列号,插入记录时要把序列号的下一个值赋于此字段。    CREATE SEQUENCE 序列号的名称 (最好是表名+序列号标记)

探索PHP7(一)--性能

守給你的承諾、 提交于 2019-12-03 03:29:43
#探索PHP7(一)--性能# ##前言## 在2015年12月2号,鸟哥的在开源中国发布的新闻 写在 PHP 7 发布之际一些话 ,小编意识到从8月份发布第一个公测版到现在经过了将近4个月的等待PHP7正式版本终于发布了,所以果断装上了一个玩玩,确实和之前所说的一样提升很大,进过了几天的测试,所以写下这篇博文希望能和大家有一个共同的了解. 注:已经有很多新闻博客分享了关于PHP7的一些讯息,我希望通过一名普通程序员的角度来看待它对我们带来的价值. 附上: 鸟哥:写在 PHP 7 发布之际一些话: http://www.oschina.net/news/68607/php-7-laruence-feeling PHP官方地址: http://www.php.net/ ##1. 简单粗暴的测试## 那么问题来了PHP7发布的最大的亮点是什么? 无疑是它带了了相当可观的性能提升,我们先从几个长使用的框架下手看看5.6和7之间的差距有多少,然后我们在通过具体的测试来对不同的操作具体产生了多大的影响 配置信息:服务器为:2核心2G(Centos6.5),LoadRunner压力机为4核4G,ab压力机为2核2G PHP版本信息:PHP 5.6.14 (cli) 和 PHP 7.0.0 (cli) 均开启opcache 在这里对于小编几个常用的框架**(PhalApi,ThinkPHP

PHP 性能分析与实验——性能的宏观分析

南楼画角 提交于 2019-12-02 23:50:20
【编者按】此前,阅读过了很多关于 PHP 性能分析的文章,不过写的都是一条一条的规则,而且,这些规则并没有上下文,也没有明确的实验来体现出这些规则的优势,同时讨论的也侧重于一些语法要点。本文就改变 PHP 性能分析 的角度,并通过实例来分析出 PHP 的性能方面需要注意和改进的点。 对 PHP 性能的分析,我们从两个层面着手,把这篇文章也分成了两个部分,一个是宏观层面,所谓宏观层面,就是 PHP 语言本身和环境层面,一个是应用层面,就是语法和使用规则的层面,不过不仅探讨规则,更辅助以示例的分析。 宏观层面,也就是对 PHP 语言本身的性能分析又分为三个方面: PHP 作为解释性语言性能有其天然的缺陷 PHP 作为动态类型语言在性能上也有提升的空间 当下主流 PHP 版本本身语言引擎性能 ##一、PHP 作为解释性语言的性能分析与提升 PHP 作为一门脚本语言,也是解释性语言,是其天然性能受限的原因,因为同编译型语言在运行之前编译成二进制代码不同,解释性语言在每一次运行都面对原始脚本的输入、解析、编译,然后执行。如下是 PHP 作为解释性语言的执行过程。 如上所示,从上图可以看到,每一次运行,都需要经历三个解析、编译、运行三个过程。 那优化的点在哪里呢?可以想见,只要代码文件确定,解析到编译这一步都是确定的,因为文件已不再变化,而执行,则由于输入参数的不同而不同。在性能优化的世界里

quartz在集群环境下解决方案

≯℡__Kan透↙ 提交于 2019-12-02 14:30:49
在集群环境下,大家会碰到一直困扰的问题,即多个 APP 下如何用 quartz 协调处理自动化 JOB 。 大家想象一下,现在有 A , B , C3 台机器同时作为集群服务器对外统一提供 SERVICE : A , B , C 3 台机器上各有一个 QUARTZ ,他们会按照即定的 SCHEDULE 自动执行各自的任务。 我们先不说实现什么功能,就说这样的架构其实有点像多线程。 那多线程里就会存在“资源竞争”的问题,即可能产生脏读,脏写,由于三台 APP SERVER 里都有 QUARTZ ,因此会存在重复处理 TASK 的现象。 一般外面的解决方案是只在一台 APP 上装 QUARTZ ,其它两台不装,这样集群就形同虚设了; 另一种解决方案是动代码,这样就要影响到原来已经写好的 QUARTZ JOB 的代码了,这对程序开发人员来说比较痛苦; 本人仔细看了一下 Spring 的结构和 QUARTZ 的文档,结合 Quartz 自身可以实例化进数据的特性找到了相关的解决方案。 本方案优点: 1. 每台作为集群点的 APP SERVER 上都可以布署 QUARTZ ; 2. QUARTZ 的 TASK ( 12 张表)实例化如数据库,基于数据库引擎及 High-Available 的策略(集群的一种策略)自动协调每个节点的 QUARTZ ,当任一一节点的 QUARTZ

php7达到最高性能的几个Tips

给你一囗甜甜゛ 提交于 2019-12-01 19:02:31
#参考: http://www.laruence.com/2015/12/04/3086.html 开启opcache,默认php7没有开启,在编译安装php7的的时候加上 --enable-opcache ,会在扩展文件夹内生成 opcache.so ,然后在ini的配置文件夹内加上opcache.ini,内容如下: [opcache] zend_extension=opcache.so opcache.enable=1 opcache.enable_cli=1 重启php-fpm后可以看到 Zend OPcache 设置 使用高版本编译安装php7,使用GCC 4.8以上, 因为只有GCC 4.8以上PHP才会开启Global Register for opline and execute_data支持, 这个会带来5%左右的性能提升,centos默认的gcc只有4.4左右,需要编译安装最新版本的gcc,gcc手工编译参考: https://teddysun.com/432.html #如果是在 x86_64 系统下编译的话,还需要安装 libgcc.i686 glibc-devel.i686 才行 yum install -y gcc texinfo-tex flex zip libgcc.i686 glibc-devel.i686 #先到 http://mirrors

PHP 性能分析与实验——性能的宏观分析

浪尽此生 提交于 2019-12-01 15:28:15
【编者按】此前,阅读过了很多关于 PHP 性能分析的文章,不过写的都是一条一条的规则,而且,这些规则并没有上下文,也没有明确的实验来体现出这些规则的优势,同时讨论的也侧重于一些语法要点。本文就改变 PHP 性能分析 的角度,并通过实例来分析出 PHP 的性能方面需要注意和改进的点。 对 PHP 性能的分析,我们从两个层面着手,把这篇文章也分成了两个部分,一个是宏观层面,所谓宏观层面,就是 PHP 语言本身和环境层面,一个是应用层面,就是语法和使用规则的层面,不过不仅探讨规则,更辅助以示例的分析。 宏观层面,也就是对 PHP 语言本身的性能分析又分为三个方面: PHP 作为解释性语言性能有其天然的缺陷 P HP 作为动态类型语言在性能上也有提升的空间 当下主流 PHP 版本本身语言引擎性能 ##一、PHP 作为解释性语言的性能分析与提升 PHP 作为一门脚本语言,也是解释性语言,是其天然性能受限的原因,因为同编译型语言在运行之前编译成二进制代码不同,解释性语言在每一次运行都面对原始脚本的输入、解析、编译,然后执行。如下是 PHP 作为解释性语言的执行过程。 如上所示,从上图可以看到,每一次运行,都需要经历三个解析、编译、运行三个过程。 那优化的点在哪里呢?可以想见,只要代码文件确定,解析到编译这一步都是确定的,因为文件已不再变化,而执行,则由于输入参数的不同而不同。在性能优化的世界里