목차
简单的php性能注意点,简单php性能
백엔드 개발 PHP 튜토리얼 简单的php性能注意点,简单php性能_PHP教程

简单的php性能注意点,简单php性能_PHP教程

Jul 12, 2016 am 09:01 AM
php

简单的php性能注意点,简单php性能

什么情况,可能遇到性能问题:

1.php语法使用的不恰当

2.使用php语言做了它不擅长做的事

3.用php语言连接的服务不给力

4.php自身的短板

5.我也不知道的问题

一般情况:php性能问题不超过二分之一(一般30%~40%)

 

php性能问题解决方向:

php语言级的性能优化—>php周边问题的性能优化(连接的服务,网络环境)—>php语言自身分析和优化

 

(php语言级)

优化点:少写代码,多用php自身能力

问题:自写代码冗余较多,可读性不佳,导致性能低

为什么低:php代码需要编译解析为底层语言,这一过程每次请求都会处理一遍,开销大

方法:多使用php内置变量、常量、函数

 

优化点:php内置函数的性能优劣

情况描述:php内置函数,之间依然存在快慢差异

建议:多去了解php内置函数的时间复杂度

 

 

优化点:尽可能少用魔法函数

情况描述:php提供的魔法函数,性能不佳

为什么性能低:为了为php程序员省事,php语言为你做了很多

好的方法:尽可能规避使用php魔法函数

 

优化点:产生额外开销的错误抑制符@

实际逻辑:在代码开始前,设置报错级别最高,结束后,再回复设置报错级别。增加Opcode,忽略报错

 

优化点:合理使用内存

情况描述:php有内存回收机制保底,但也请小心使用内存

建议:利用unset()及时释放不适用的内存(注:unset()出现注销不掉的情况)

 

 

优化点:尽量少的使用正则表达式

情况描述:正在表达式的回溯开销较大,“没有金刚钻别揽陶瓷活”

建议:利用字符串处理函数,实现相同逻辑

 

优化点:避免在循环内做运算

情况描述:循环内的计算式将会被重复计算

$str="hello world";

//strlen($str)放在外面

for($i=0;$i

  //do something

}

?>

 

优化点:减少计算密集型业务

情况描述:php不适合密集型运算的场景

为什么?php语言特性决定了php不适合做大数据量运算

php适合场景:适合衔接Webserver与后端服务、UI呈现

 

优化点:务必使用带引号字符串做键值

情况描述:php会将没有引号的键值当作常量,产生查找常量的开销

建议:严格使用引号作为键值

 

--------------------------------------------

(php周边问题的性能优化)-

运行环境,文件储存,数据库,缓存,网络

 

减少文件类操作

常见php场景的开销次序:

读写磁盘、读写数据库、读写内存、读写网络数据

读写内存

 

优化网络请求

网络请求的坑:

1.对方接口的不确定因素

2.网络稳定性

如何优化网络请求?

1、设置超时时间

   a)连接超时  200ms

   b)读超时    800ms

   c)写超时    500ms

2、将串行请求并行化

   a)使用curl_multi_*()

   b)使用swoole扩展

 

压缩php接口输出

 

缓存重复计算内容

  什么情况下做输出内容的缓存?

  多次请求,内容不变情况

 

 

重叠时间窗口思想

旁路方案

 

分析php自身分析和优化:

用工具测试

 

PHP性能瓶颈解决方法:

Opcode cache(代码编译的最后一个环节进行缓存)PHP扩展APC做Opcode缓存用的

 

 

 

 

补充压力测试软件使用说明:

Ab -h

 

apache Benchmark(ab)由Apache提供的压力测试软件,安装apache服务器时会自带该压测软件

使用:./ab  -n1000     -c100      http://www.baidu.com/

            -n请求数   -c并发数   url目标压测地址

 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1087374.htmlTechArticle简单的php性能注意点,简单php性能 什么情况,可能遇到性能问题: 1.php语法使用的不恰当 2.使用php语言做了它不擅长做的事 3.用php语言连接...
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

CakePHP 프로젝트 구성 CakePHP 프로젝트 구성 Sep 10, 2024 pm 05:25 PM

이번 장에서는 CakePHP의 환경 변수, 일반 구성, 데이터베이스 구성, 이메일 구성에 대해 알아봅니다.

Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드 Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드 Dec 24, 2024 pm 04:42 PM

PHP 8.4는 상당한 양의 기능 중단 및 제거를 통해 몇 가지 새로운 기능, 보안 개선 및 성능 개선을 제공합니다. 이 가이드에서는 Ubuntu, Debian 또는 해당 파생 제품에서 PHP 8.4를 설치하거나 PHP 8.4로 업그레이드하는 방법을 설명합니다.

CakePHP 날짜 및 시간 CakePHP 날짜 및 시간 Sep 10, 2024 pm 05:27 PM

cakephp4에서 날짜와 시간을 다루기 위해 사용 가능한 FrozenTime 클래스를 활용하겠습니다.

CakePHP 파일 업로드 CakePHP 파일 업로드 Sep 10, 2024 pm 05:27 PM

파일 업로드 작업을 위해 양식 도우미를 사용할 것입니다. 다음은 파일 업로드의 예입니다.

CakePHP 라우팅 CakePHP 라우팅 Sep 10, 2024 pm 05:25 PM

이번 장에서는 라우팅과 관련된 다음과 같은 주제를 학습하겠습니다.

CakePHP 토론 CakePHP 토론 Sep 10, 2024 pm 05:28 PM

CakePHP는 PHP용 오픈 소스 프레임워크입니다. 이는 애플리케이션을 훨씬 쉽게 개발, 배포 및 유지 관리할 수 있도록 하기 위한 것입니다. CakePHP는 강력하고 이해하기 쉬운 MVC와 유사한 아키텍처를 기반으로 합니다. 모델, 뷰 및 컨트롤러 gu

PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 Dec 20, 2024 am 11:31 AM

VS Code라고도 알려진 Visual Studio Code는 모든 주요 운영 체제에서 사용할 수 있는 무료 소스 코드 편집기 또는 통합 개발 환경(IDE)입니다. 다양한 프로그래밍 언어에 대한 대규모 확장 모음을 통해 VS Code는

CakePHP 유효성 검사기 만들기 CakePHP 유효성 검사기 만들기 Sep 10, 2024 pm 05:26 PM

컨트롤러에 다음 두 줄을 추가하면 유효성 검사기를 만들 수 있습니다.

See all articles