性能优化

数据库性能优化-1

丶灬走出姿态 提交于 2020-02-16 07:13:29
出处: https://www.cnblogs.com/easypass/archive/2010/12/ 08/1900127.html 1.数据库访问优化法则 要正确的优化SQL,我们需要快速定位能性的瓶颈点,也就是说快速找到我们SQL主要的开销在哪里?而大多数情况性能最慢的设备会是瓶颈点,如下载时网络速度可能会是瓶颈点,本地复制文件时硬盘可能会是瓶颈点,为什么这些一般的工作我们能快速确认瓶颈点呢,因为我们对这些慢速设备的性能数据有一些基本的认识,如网络带宽是2Mbps,硬盘是每分钟7200转等等。因此,为了快速找到SQL的性能瓶颈点,我们也需要了解我们计算机系统的硬件基本性能指标,下图展示的当前主流计算机性能指标数据。 从图上可以看到基本上每种设备都有两个指标: 延时(响应时间):表示硬件的突发处理能力; 带宽(吞吐量):代表硬件持续处理能力。 从上图可以看出,计算机系统硬件性能从高到代依次为: CPU——Cache(L1-L2-L3)——内存——SSD硬盘——网络——硬盘 由于SSD硬盘还处于快速发展阶段,所以本文的内容不涉及SSD相关应用系统。 根据 数据库 知识,我们可以列出每种硬件主要的工作内容: CPU及内存:缓存数据访问、比较、排序、事务检测、SQL解析、函数或逻辑运算; 网络:结果数据传输、SQL请求、远程数据库访问(dblink); 硬盘:数据访问、数据写入

PHP性能优化

混江龙づ霸主 提交于 2020-02-15 11:44:00
PHP 性能优化: 总体介绍: 一、规范说明 性能是网站运行是否良好的关键因素, 网站的性能与效率影响着公司的运营成本及长远发展,编写出高质高效的代码是我们每个开发人员必备的素质 , 也是我们良好的职业素养。 二、影响性能的因素 A 、 商业需求 1. 需求合理性 2. 需求与系统的整合 3. 需求所带来的商业利益是否与需求开发的成本成正比 4. 需求所带来的风险 B 、 Web 服务器 1. 并发处理能力 2. 高负载的能力 3. 负载均衡的能力 4. 动态内容与静态内容的处理能力 5. Web 服务器部署 C 、 DataBase 服务器 1. 并发访问 2. 数据库服务器的部署 3. 数据库的 shema 架构与的表设计是否合理 4. 数据检索 D 、 操作系统 E 、 客户端请求 F 、 程序 / 语言 三、分析性能的指标 1. 程序的运行时间 microtime() 2. 程序的运行所消耗的内存 memory_get_usage() 3. 单位时间内的并行处理 4. 磁盘 IO 的处理 四、优化性能的目标 快速、并发、资源消耗低(内存、磁盘 IO 、 CPU 负载) 五、优化性能的原则 1. 服务器配配置最优化 2. 服务器部署合理化 3. 商业需求合理并与产出的商业价值成正比 4. 架构可用、可维护、可扩展 5. 程序的正确性、简单性、逻辑的合理性。 6.

Unity3D 游戏性能优化笔记

二次信任 提交于 2020-02-12 20:58:07
一、程序方面 1、尽量少new对象,减少GC的次数,可以使用对象池技术。 2、使用UGUI时,不要通过界面的z轴来做界面排序,这貌似会导致UGUI的批处理失效。 3、尽量少使用GetComponent(),频繁调用的可以用一个变量在开始时把component存起来。 4、不使用OnGui() 5、尽量少实例化游戏对象,同1,可使用对象池技术。 6、要构建字符串时,尽量使用StringBuilder代替string的默认相加操作,减少产生临时字符串。 7、将暂时不用的以后还需要使用的物体隐藏起来而不是直接Destroy掉。 二、渲染方面 1、尽量使用光照贴图,可以节省cpu性能,因为实时光照要一直计算,很耗费cpu性能。 2、尽量不使用mesh collider,因为mesh collider相比普通的collider包含大量顶点,计算量很大。 3、把多张小图打包成一张图集,减少draw call调用。 4、尽量使用共享材质,这样的话无论如何修改材质的属性,内存中都只会占用一份,但如果使用普通的材质,每次改动材质属性Unity都会new一个新的材质出来,并在这个材质上修改。这些材质会一直占用着内存,直到调用Resources.UnloadUnusedAssets()的时候才释放,会导致内存 泄露。 5、尽量少使用逐像素光,因为像素数远比顶点数要多,会很耗费性能。 6、使用LOD

Impala性能优化

折月煮酒 提交于 2020-02-10 17:47:44
  不多说,直接上干货! • 执行计划   – 查询sql执行之前,先对该sql做一个分析,列出需要完成这一项查询的详细方案   – 命令:explain sql、profile      要点:   • 1、SQL优化,使用之前调用执行计划   • 2、选择合适的文件格式进行存储   • 3、避免产生很多小文件(如果有其他程序产生的小文件,可以使用中间表)   • 4、使用合适的分区技术,根据分区粒度测算   • 5、使用compute stats进行表信息搜集   • 6、网络io的优化:     – a.避免把整个数据发送到客户端     – b.尽可能的做条件过滤     – c.使用limit字句     – d.输出文件时,避免使用美化输出   • 7、使用profile输出底层信息计划,在做相应环境优化   • 8、如果是刷新表的新增元数据要使用refresh 表名 来刷新,不要使用impala-shell -r 或 invalidate metadata   • 9、如果执行SQL的结果内容较多的话可以使用 impala-shell -B 将一些不必要的样式输出去掉 来源: https://www.cnblogs.com/zlslch/p/6785767.html

Impala 5、Impala 性能优化

亡梦爱人 提交于 2020-02-10 14:23:51
• 执行计划   – 查询sql执行之前,先对该sql做一个分析,列出需要完成这一项查询的详细方案   – 命令:explain sql、profile      要点:   • 1、SQL优化,使用之前调用执行计划   • 2、选择合适的文件格式进行存储   • 3、避免产生很多小文件(如果有其他程序产生的小文件,可以使用中间表)   • 4、使用合适的分区技术,根据分区粒度测算   • 5、使用compute stats进行表信息搜集   • 6、网络io的优化:     – a.避免把整个数据发送到客户端     – b.尽可能的做条件过滤     – c.使用limit字句     – d.输出文件时,避免使用美化输出   • 7、使用profile输出底层信息计划,在做相应环境优化   • 8、如果是刷新表的新增元数据要使用refresh 表名 来刷新,不要使用impala-shell -r 或 invalidate metadata   • 9、如果执行SQL的结果内容较多的话可以使用 impala-shell -B 将一些不必要的样式输出去掉 来源: https://www.cnblogs.com/raphael5200/p/5313494.html

redis服务器性能优化

断了今生、忘了曾经 提交于 2020-02-09 12:47:20
1、系统内存OOM优化 vm.overcommit_memory Redis会占用非常大内存,所以通常需要关闭系统的OOM,方法为将“/proc/sys/vm/overcommit_memory”的值设置为1(通常不建议设置为2) 也可以使用命令sysctl设置,如:sysctl vm.overcommit_memory=1,但注意一定要同时修改文件/etc/sysctl.conf,执行“sysctl - p”,以便得系统重启后仍然生效。 可选值:0、1、2 。 0: 表示内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程。 1: 表示内核允许分配所有的物理内存,而不管当前的内存状态如何。 2: 表示内核允许分配超过所有物理内存和交换空间总和的内存 # cat /proc/sys/vm/overcommit_memory 0 # echo vm.overcommit_memory = 1 >> /etc/sysctl.conf # sysctl -p 2、关闭透明大页(THP) 透明大页(THP)管理和标准/传统大页(HP)管理都是操作系统为了减少页表转换消耗的资源而发布的新特性。这二者的区别在于大页的分配机制,标准大页管理是预分配的方式,而透明大页管理则是动态分配的方式。有两种关闭方法: 方法1: 设置

nginx性能优化_压测

僤鯓⒐⒋嵵緔 提交于 2020-02-08 06:49:30
1、性能优化考虑点 (a)当前系统结构瓶颈 观察指标(top命令)、压力测试 (b)了解业务模式 接口业务类型、系统层次化结构 (c)性能与安全 2、压测工具ab接口测试 ab不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试。 ab是一个httpd自带的很好用的压力测试工具,ab命令会创建多个并发访问线程,模拟多个访问者同时对某一URL地址进行访问。 可以用来测试apache的负载压力,也可以用来测试nginx、lighthttp、tomcat、IIS等其它Web服务器的压力负载性能。 1、安装ab yum install httpd-tools 2、使用 Usage: ab [options] [http[s]://]hostname[:port]/path , 比如ab -n 2000 -c http://127.0.0.1/ -n 要执行请求数,默认会执行一个请求 -c 一次执行多个请求的数量,默认是一次一个请求。 -t 用于基准测试的最大秒数,使用它在固定的总时间内对服务器进行基准测试。默认情况下,没有时间限制。 -s 超时之前等待的最大秒数。 默认值是30秒。 -b TCP发送/接收缓冲区的大小,以字节为单位。 -B 进行传出连接时要绑定的地址。 -p 包含数据到POST的文件。 文件格式为gid=2&status=1,配合-T使用

性能调优概述,这是一篇最通俗易懂性能调优的总结!

拈花ヽ惹草 提交于 2020-02-07 21:51:44
1. 作者概述 2. 什么是性能调优?(what) 3. 为什么需要性能调优?(why) 4. 什么时候需要性能调优?(when) 5. 什么地方需要性能调优?(where) 6. 什么人来进行性能调优?(who) 7. 怎么样进行性能调优?(How) 8. 总结 硬件配置:CUP Xeon E5620 x 2 8核心, 内存 16G , 硬盘 RAID 10,操作系统: CentOS 6.4 x86_64(64位)。 概述 在这篇博文中,我不想用一些抽象的概念去说性能调优的问题,只想用最通俗的语言尽量来准确的表达我的想法。 由于本人小平有限,有什么不对或者不清楚的地方欢迎大家交流指正。为了更能通俗易懂的理解我们即将要的性能调优的话题,我在这里简单的和大家说一下我写这篇文章的写作方法 5w+1h方法。 注,5w+1h就是对所做工作进行科学的分析,对某一工作在调查研究的基础上: · 就其工作内容(What) · 责任者(Who) · 工作岗位(Where) · 工作时间(When · 怎样操作(How · 以及为何这样做(Why) 即”5W”、”1H”进行书面描述,并按此描述进行操作,达到完成职务任务的目标。(来源“百度百科”) 哈哈听过马哥课程的一定不陌生! 二、什么是性能调优?(what) 在说什么是性能调优之前我们先来说一下,计算机的体系结构。 如上图,简单来说包括三块:硬件

hbase性能优化初探

雨燕双飞 提交于 2020-02-07 01:37:17
表的设计 1. 考虑提前设置多个region‘ 2. 列族尽量少 3. raw key的设计:尽量短,有利于业务需求,尽量散列开 考虑提前设置多个region‘ 默认情况下,在创建HBase表的时候会自动创建一个region分区,当导入数据的时候,所有的HBase客户端都向这一个region写数据,直到这个region足够大了才进行切分。一种可以加快批量写入速度的方法是通过预先创建一些空的regions,这样当数据写入HBase时,会按照region分区情况,在集群内做数据的负载均衡。 列族尽量少 不要在一张表里定义太多的column family。目前Hbase并不能很好的处理超过2~3个column family的表。因为某个column family在flush的时候,它邻近的column family无论是否达到阀值,也会因关联效应被触发flush,最终导致系统产生更多的I/O,和更多的小文件,然后小文件增多再触发minor compaction raw key的设计:尽量短,有利于业务需求,尽量散列开 在HBase中,row key可以是任意字符串,最大长度64KB,实际应用中一般为10~100bytes,存为byte[]字节数组,一般设计成定长的。row key是按照字典序存储,因此,设计row key时,要充分利用这个排序特点,将经常一起读取的数据存储到一块

String字符串性能优化的几种方案

心已入冬 提交于 2020-02-06 20:16:10
String字符串是系统里最常用的类型之一,在系统中占据了很大的内存,因此,高效地使用字符串,对系统的性能有较好的提升。 针对字符串的优化,我在工作与学习过程总结了以下三种方案作分享: 一.优化构建的超大字符串 验证环境:jdk1.8 反编译工具:jad 1.下载反编译工具jad,百度云盘下载: 链接:https://pan.baidu.com/s/1TK1_N769NqtDtLn28jR-Xg 提取码:ilil 2.验证 先执行一段例子1代码: public class test3 { public static void main ( String [ ] args ) { String str = "ab" + "cd" + "ef" + "123" ; } } 执行完成后,用反编译工具jad进行反编译:jad -o -a -s d.java test.class 反编译后的代码: // Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov. // Jad home page: http://www.kpdus.com/jad.html // Decompiler options: packimports(3) annotate // Source File Name: test.java package