本篇文章给大家带来的内容是关于php性能优化的理论知识讲解,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
什么情况下,遇到了PHP性能问题?
1 PHP语法使用的不恰当
2 使用PHP语言做不了它不擅长做的事
3 用php语言连接的服务不给力
4 PHP自身的短板
5 我也不知道的问题
性能问题解析
PHP的性能问题,占整个项目性能问题的比例 不到50%
性能优化项目,不要局限于仅优化PHP
php语言级的性能优化
|
|
|
php周边问题的性能优化
|
|
|
php语言自身分析,优化
PHP 压力测试工具ab简介
Apache Benchmark(ab)(可以自行下载)
ab是由Apache提供的压力测试软件,安装apache服务器时会自带该压测软件。
如何使用?
./ab -n1000 -c100 http://www.baidu.com/
-n请求数
-c并发数
url目标压测地址
PHP-压力测试工具使用演示
主要关注 每秒并发尽可能的多
请求耗时尽可能的少
多使用PHP自身能力
优化:少写代码,多用PHP自身能力
性能问题: 自身代码冗余较多,可读性不佳,并且性能低
为甚性能低?
PHP代码需要编译解析为底层语言,这一过程每次请求都会处理一遍,开销大。
好的方法:
多使用PHP内置变量\常量\函数
PHP自身能力性能测试之代码准备
php代码运行流程
*.php ---Scanner---> Exprs -----Parser--->Opcodes---Exec--->Output
php内置函数之间的性能测试
优化点:php内置函数的性能优劣
情况描述: php内置函数,之间依然存在块慢差异
好的建议: 多去了解PHP内置函数的时间复杂度
php内置函数之间的性能测试之代码测试
isset($arr[$i]); //平均50ms array_key_exists($i,$arr);//平均85ms
减少PHP魔法函数的使用
情况描述: PHP提供的魔法函数,性能不佳
为什么性能低 为了给PHP程序猿省事 PHP语言为你做了很多
好的方法:尽可能规避使用PHP魔法函数
PHP 禁用错误抑制符
@的实际逻辑
在代码开始前 结束后 增加 Opcode 忽略报错
php -dv|d.active=1 -dv|d.execute=0 at.php
只是想查看并不是真的想执行
PHP-合理的使用内存和正则表达式
优化点:合理使用内存
PHP有内存回收机制保底,但也请小心使用内存
好的建议
利用unset() 及时释放不使用的内存(注:unset()出现注销不掉的情况)
尽量少的使用正则表达式
正则表达式的回溯开销较大,
好的建议:
利用字符串处理函数,实现相同逻辑
PHP-避免在循环内做运算
优化点:避免在循环内做运算
情况描述:
循环内的计算式将会被重复计算
代码示例:
<?php $str = "hello world"; for($i=0;$i<strlen($str);$i++) { //do something }
PHP-减少计算密集型业务
PHP不适合密集型运算的场景
PHP语言特性决定了PHP不适合做大数据量运算
PHP适合场景
适合衔接Webserver与后盾服务,UI呈现
PHP-务必使用带引号字符串做键值
PHP会将没有引号的键值当做常量,产生查找常量的开销
严格使用引号的字符串作为键值
PHP周边问题的分析与阐述
PHP周边都有什么?
linux运行环境 php 硬盘(文件存储) 数据库(例如mysql) 缓存 网络
php周边对PHP程序的影响分析
减少文件类的操作
常见PHP场景的开销次序:
读写磁盘 读写数据库 读写内存 读写网络数据
读写内存 60acb7cb4bcec03586cc53ddd0bdb3b0 Process1 ->process2 ->process3 -> process4->
旁路方案: x.php -> Process1 ->process2(同时) ->Process3 (同时) -->Process4->
Atas ialah kandungan terperinci php性能优化的理论知识讲解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Timeout sesi mutlak bermula pada masa penciptaan sesi, sementara waktu tamat sesi terbiar bermula pada masa operasi pengguna. Tamat masa sesi mutlak sesuai untuk senario di mana kawalan ketat kitaran hayat sesi diperlukan, seperti aplikasi kewangan; Timeout sesi terbiar sesuai untuk aplikasi yang mahu pengguna menyimpan sesi mereka aktif untuk masa yang lama, seperti media sosial.

Kegagalan sesi pelayan boleh diselesaikan dengan mengikuti langkah -langkah: 1. Semak konfigurasi pelayan untuk memastikan sesi ditetapkan dengan betul. 2. Sahkan kuki klien, sahkan bahawa penyemak imbas menyokongnya dan hantar dengan betul. 3. Periksa perkhidmatan penyimpanan sesi, seperti Redis, untuk memastikan bahawa mereka beroperasi secara normal. 4. Semak kod aplikasi untuk memastikan logik sesi yang betul. Melalui langkah -langkah ini, masalah perbualan dapat didiagnosis dengan berkesan dan diperbaiki dan pengalaman pengguna dapat diperbaiki.

session_start () iscrucialinphpformanaginguserSessions.1) itinitiatesanewsessionifnoneexists, 2) resumeSanexistingsession, dan3) setSasessionCookieforcontinuityAcrossrequests, enableingApplicationeUseUshenticationandPersonalConizedConizedContentContentContentContentContentContentContentContentContentContentContentC.

Menetapkan bendera httponly adalah penting untuk cookies sesi kerana ia dapat mencegah serangan XSS dengan berkesan dan melindungi maklumat sesi pengguna. Khususnya, 1) bendera httponly menghalang JavaScript daripada mengakses kuki, 2) bendera boleh ditetapkan melalui setcookies dan make_response dalam php dan flask, 3) walaupun ia tidak dapat dicegah dari semua serangan, ia harus menjadi sebahagian daripada dasar keselamatan keseluruhan.

PhpsSesionssolveThublemofMainTainStateAsmultipHttprequestsByStoringDataontheserverArverArsociatingWithauniquesession.1) merekaSTOREdataServer-sisi, biasanya

Phpsessionscanstorestrings, nombor, tatasusunan, andobjects.1.strings: textdatalikeusernames.2.numbers: integersorfloatsforcounters.3.Arrays: ListsLikeshoppingCarts.4.Objects: complextructureSturesthatareserialized.

Tostartaphpsession, usesession_start () atthescript'sbeginning.1) placeitbeforeanyoutputtosetthesessioncookie.2) usesessionsforusererdatalikeloginstatusorshoppingcarts.3)

Penjanaan semula sesi merujuk kepada menjana ID sesi baru dan membatalkan ID lama apabila pengguna melakukan operasi sensitif dalam kes serangan tetap sesi. Langkah-langkah pelaksanaan termasuk: 1. Mengesan Operasi Sensitif, 2. Menjana ID Sesi Baru, 3. Memusnahkan ID Sesi Lama, 4. Kemas kini maklumat sesi pengguna.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

MantisBT
Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

VSCode Windows 64-bit Muat Turun
Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

EditPlus versi Cina retak
Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)
