性能

【汇】Web前端优化(雅虎、谷歌最佳实践手册)

限于喜欢 提交于 2020-03-02 09:22:24
一篇伯乐在线的综述性(且自带相关链接)的文章 Web前端优化最佳实践及工具集锦 ###Google 原汁: https://developers.google.com/web/fundamentals/ 伯乐在线翻译: http://blog.jobbole.com/45574/ ###Yahoo 原汁: https://developer.yahoo.com/performance/ 中文: Fenng博客 erichan博客 来源: oschina 链接: https://my.oschina.net/u/2248036/blog/619639

消息队列性能比较

本秂侑毒 提交于 2020-03-02 03:49:57
RabbitMQ,ActiveMq,ZeroMq比较 ==结论==:ZeroMq 最好,RabbitMq 次之, ActiveMq 最差。 ==来源==: http://blog.x-aeon.com/2013/04/10/a-quick-message-queue-benchmark-activemq-rabbitmq-hornetq-qpid-apollo/ ==测试环境==: Model: Dell Studio 1749 CPU: Intel Core i3 @ 2.40 GHz RAM: 4 GB OS: Windows 7 64 bits 测试都是采用软件的 默认配置 。 ==测试结果==: 横轴为各个MQ,纵轴为时间,单位秒(s), 时间越少越好 。 ==比较==: 持久性 zeroMq不支持,activeMq和rabbitMq都支持 技术点:可靠性、灵活的路由、集群、事务、高可用的队列、消息排序、problem tracker、可视化管理工具、插件系统、社区 RabbitMq最好,ActiveMq次之,ZeroMq最差。当然ZeroMq也可以做到,不过自己必须手动写代码实现,代码量不小。++可靠性中的: 持久性 、 投递确认 、 发布者证实 和 高可用性 ++。 高并发 从实现语言来看,RabbitMQ最高,原因是它的实现语言是天生具备高并发高可用的erlang语言

10倍提升应用性能的10个建议

孤人 提交于 2020-02-29 22:22:04
提升Web应用的性能从未像今天这样刻不容缓。在线经济活动的比例日益提高,就连发展中国家和地区的经济活动都已经有5%以上在线进行了(相关数据请参考本文后面的资源)。在这个超级链接、随时在线的现代世界,用户的期望也远非昔日可比。如果你的网站不能马上响应,你的应用不能立即运行,用户转身就会投奔你的竞争对手。 亚马逊大约10年前的一项研究表明,页面加载时间减少1/10秒,能够使其营收增长1%。另一项近期的调查也显示,一多半受访站点所有者提到因为自己应用的性能不佳导致了收入减少或者用户流失。 一个网站到底多快才行?页面加载每花1秒钟,就有大约4%的用户走掉。排名最靠前的电商站点的首次交互时间为1至3秒,这个区间的转换率最高。显而易见,Web应用性能的重要性与日俱增。 提升性能其实不难,难的是怎么看到结果。本文给出能够提升大约10倍网站性能的10个建议供大家参考。如此全面地涵盖各种性能优化技术,这还是头一回,但这些建议可能需要NGINX的一点支持。除了性能,这些建议也会涉及提升安全性。 建议一:使用反向代理服务器让应用更快更安全 如果你的Web应用只跑在一台机器上,那要提升其性能非常简单:换一台更快的,多配几个处理器,多加几条内存,磁盘阵列也要高速的。换了以后,这台机器上跑的WordPress服务器、Node.js或Java应用速度都会加快。(要是应用还会访问另一台数据库服务器,那也简单

Web服务器Nginx多方位优化策略

纵饮孤独 提交于 2020-02-29 21:44:49
Nginx(读音engine x)服务器由于性能优秀稳定、配置简单以及跨平台,被越来越多的公司和个人所采用,现已成为市场份额继Apache之后的第二大Web服务器。各大小网站论坛博客也介绍说明了Nginx从安装到优化的各种配置。不过看了很多这些相关Nginx的文档之后,发现一个比较大的问题,就是这些文档基本也就从两个方面着手,一是修改Nginx的配置文件,二是调整操作系统的相关内核参数;而且文档说明也不够明了,缺乏比较系统级别的优化。本文将从Nginx源码编译安装开始,到修改配置文件,调整系统内核参数以及架构四个方面着手分别介绍如何优化。 一. 安装 (1) 精简模块 Nginx由于不断添加新的功能,附带的模块也越来越多。很多操作系统厂商为了用户方便安装管理,都增加了rpm、deb或者其他自有格式软件包,可以本地甚至在线安装。不过我不太建议使用这种安装方式。这虽然简化了安装,在线安装甚至可以自动解决软件依赖关系,但是安装后软件的文件布局过于分散,不便管理维护;同时也正是由于存在软件包之间的依赖关系,导致当有安全漏洞、或者其它问题,想要通过更新升级Nginx新版本时却发现yum、deb源还未发布新版本(一般都落后于官网发布的软件版本)。最重要的是采用非源码编译安装的方式,默认会添加入许多模块,比如邮件相关、uwsgi、memcache等等,很多网站运行时这些模块根本未用到

微软工程师建议的11条数据库设计准则

主宰稳场 提交于 2020-02-29 05:41:11
从MOsky的博客中阅读本文 简介 作者:Shivprasad koirala 前微软ASP/ASP.NET的MVC工程师,现在印度当CEO。如果你认为本文有些地方翻 译不准确,可以去 译译网对应的贴子 参与本贴的翻译。 引言 在你开始读这篇文章之前,我可要事先声明,我可不是什么数据库设计方面的大师什么的。这11条设计准则,都是我从实际项目中,从经验中,从阅读和学习之中总结而来的。我个人认为,如我来设计数据库,遵循这11条准则,会让我受益良多。请多指教。 我之所以要写这么一篇详尽的文章,那是因为,我发现很多developer对“三范式”笃信不疑,而不顾自己的实际情况如何。他们认为,“三范式”就是数据库设计的唯一选项!随着项目进度不断推进,这些抱着这种观点的人,终归会碰壁的。 如果你对于“范式”没什么印象,可以点击 这里 。这篇视频教程手把手地教你“三范式”是怎么一回事。 译者注: 视频教程贴在youtube,如果不翻墙可能看不到。如果不想翻墙,或者不想听英语,可以谷歌“数据库范式”。 说到底,“范式”是非常重要的准则,但是,奉为圭臬,则总归要吃亏。因此,我将列出我所认为数据库设计最重要的11条准则。 准则一:应用的类型是什么?是OLTP还是OLAP? 当你开始设计数据库的时候,第一件事,就是分析,你设计的数据库,是为那种类型的数据库提供服务的。具体来说,到底是 事务型

PlayFramework 2.1 技巧-性能调优实战

不打扰是莪最后的温柔 提交于 2020-02-28 13:52:06
转载请注明出处,保持署名 作者:joymufeng 1. 为什么要调优? 1.1 实验:一个简单的示例 Play Framework2.1的基本设计思想是能够快速处理大量耗时较少的请求,比较耗时的请求采用异步方式完成。为了很好地说明这一点,让我们来看一个例子,编写控制器代码如下: public static AtomicInteger count = new AtomicInteger(0); public static Result test(Long id) { if(id!=0){ try { System.out.println("sleeping...:"+count.addAndGet(1)); Thread.currentThread().sleep(1000000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } }else{ System.out.println("no sleep"); } return ok("good."); } 在conf/routes文件中添加如下路由: GET /:id controllers.Application.test(id:Long) 执行play run启动项目

用十条命令在一分钟内检查Linux服务器性能

怎甘沉沦 提交于 2020-01-09 20:15:59
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 如果你的Linux服务器突然负载暴增,告警短信快发爆你的手机,如何在最短时间内找出Linux性能问题所在?来看Netflix性能工程团队的这篇 博文 ,看它们通过十条命令在一分钟内对机器性能问题进行诊断。 概述 通过执行以下命令,可以在1分钟内对系统资源使用情况有个大致的了解。 uptime dmesg | tail vmstat 1 mpstat -P ALL 1 pidstat 1 iostat -xz 1 free -m sar -n DEV 1 sar -n TCP,ETCP 1 top 其中一些命令需要安装sysstat包,有一些由procps包提供。这些命令的输出,有助于快速定位性能瓶颈,检查出所有资源(CPU、内存、磁盘IO等)的利用率(utilization)、饱和度(saturation)和错误(error)度量,也就是所谓的 USE方法 。 下面我们来逐一介绍下这些命令,有关这些命令更多的参数和说明,请参照命令的手册。 uptime $ uptime 23:51:26 up 21:31, 1 user, load average: 30.02, 26.43, 19.02 这个命令可以快速查看机器的负载情况。在Linux系统中,这些数据表示等待CPU资源的进程和阻塞在不可中断IO进程

如何用十条命令在一分钟内检查Linux服务器性能

☆樱花仙子☆ 提交于 2020-01-09 19:25:08
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 如果你的Linux服务器突然负载暴增,告警短信快发爆你的手机,如何在最短时间内找出Linux性能问题所在?来看Netflix性能工程团队的这篇博文,看它们通过十条命令在一分钟内对机器性能问题进行诊断。 通过执行以下命令,可以在1分钟内对系统资源使用情况有个大致的了解。 uptime dmesg | tail vmstat 1 mpstat -P ALL 1 pidstat 1 iostat -xz 1 free -m sar -n DEV 1 sar -n TCP,ETCP 1 top 其中一些命令需要安装sysstat包,有一些由procps包提供。这些命令的输出,有助于快速定位性能瓶颈,检查出所有资源(CPU、内存、磁盘IO等)的利用率(utilization)、饱和度(saturation)和错误(error)度量,也就是所谓的USE方法。 下面我们来逐一介绍下这些命令,有关这些命令更多的参数和说明,请参照命令的手册。 uptime $ uptime 23:51:26 up 21:31, 1 user, load average: 30.02, 26.43, 19.02 这个命令可以快速查看机器的负载情况。在Linux系统中,这些数据表示等待CPU资源的进程和阻塞在不可中断IO进程(进程状态为D)的数量

JavaScript 位运算笔记

我与影子孤独终老i 提交于 2020-01-08 16:33:43
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 之前一直以为,在js的位运算中,双精度浮点数在内部会先被转成32位整数,再执行位运算,然后再转为64位数值,因此效率极低。今天实验发现,对浮点执行位运算只会导致数值不准确,而不会导致效率低下,相比乘法,左移位要快66%(其实就是浮点运算与整数运算的差距)。 以下结果在 IE 7 ~ IE 10 上测试得出 技巧1:移位运算比乘除法快(当因数是2的幂数) <!-- lang: js --> b = a << 1; 大概快 6.8% 技巧2:奇偶判断 <!-- lang: js --> b = a & 1; 0位与1相与,相比于 x % 2,大概快 35% 技巧3:判断两个数符号是否相同 <!-- lang: js --> (a ^ b) >= 0 相比于 <!-- lang: js --> if ( a == 0 ) return 1; else if ( a > 0 ) return b >= 0; else return b <= 0; 其效率基本一样,但更简洁。 相比于 <!-- lang: js --> (a * b) >= 0; 不会有溢出问题。 技巧4:判断一个数是否为2的幂 <!-- lang: js --> (a & (a - 1)) == 0; 来源: oschina 链接: https:/

提升Web应用程序性能的最佳实践

拟墨画扇 提交于 2019-12-19 12:40:36
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 导读: 作为开发人员,Web页面加载或刷新的速度对其网站至关重要。在浏览器中调整性能问题比在Java应用程 序中更难。开发人员在各种浏览器中调试JavaScript的方法要少得多。比如,在Mozilla Firefox中,可以使用Firebug调试JavaScript,但仍然不能调整很多性能问题,如浏览器呈现消耗时间。为了解决这些问题,有必要开发 浏览器插件来监控时间响应,以及确定其他对应解决方案如部分呈现或延时加载。 本文节选自IBM developerWorks 提升Web应用程序的性能 的系列文章,该文通过Web应用程序性能的最佳实践案例,帮助开发者更好地理解影响Web应用程序性能的因素,学习如何诊断Web应用程序中的性能问题,找到客户端内容中的瓶颈,并确定解决方案。 一、提升Web应用程序性能的6种基本方式 1.减少HTTP请求数 每个HTTP请求都有开销,包括查找DNS、创建连接及等待响应,因此削减不必要的请求数可减少不必要的开销。要减少请求数: 合并文件。 将总是同时使用的脚本合并到同一个文件中,不会减小总大小,但将会减少请求数。还可以同样方法合并CSS文件和图片。可以实现文件自动合并: 在构建阶段。 用<concat>标记,通过运行Ant合并文件。 在运行时阶段。 启用mod_concat模块