php实现性能优化
问题背景
在开发好页面后,如何让页面更快更好的运行,是区分一个程序猿技术水平和视野的一个重要指标。所以面试时,面试官总会问你一个问题,如何进行性能优化呢?
性能优化是什么?
从前端的角度来说,性能优化可以分为两个方向。从用户角度来看,一个是页面加载的很快,另一个是页面使用起来很流畅。因此,对性能优化的探索,我们可以分为页面加载时间跟页面运行效率两个方向来进行研究。
(免费学习视频教程分享:php视频教程)
从浏览器打开到页面渲染完成,花费了多少时间
浏览器解析->查询缓存->dns查询->建立链接->服务器处理请求->服务器发送响应->客户端收到页面->解析HTML->构建渲染树->开始显示内容(白屏时间)->首屏内容加载完成(首屏时间)->用户可交互(DOMContentLoaded)->加载完成(load),如果我们要进行加载时间的优化,我们需要从这里的每一个步骤都去思考,去总结,而避免东凑一点,西凑一点。
页面加载时间监控
在对这些环节进行优化之前,我们需要知道监控这些环节花费了多少时间。
可以获取到很多页面加载相关的数据。比较常用的有
DNS解析时间: domainLookupEnd - domainLookupStart
TCP建立连接时间: connectEnd - connectStart
白屏时间: r
esponseStart - navigationStartdom
渲染完成时间: domContentLoadedEventEnd - navigationStart
页面onload时间: loadEventEnd - navigationStart
如果不使用该API,可以以服务器渲染返回的时间,或是SPA路由跳转离开的时间为起点,domContentLoaded,load等事件为结束点进行记录。或是直接上google analytics。
服务器部分优化要点
后端部分可以对缓存,dns查询时间,链接时间,处理请求时间,响应时间等进行优化。
dns查询时间可以使用httpdns或是dns预加载,域名收敛等手段优化。
建立连接的重点是长连接和链接复用,keep-alive,long-polling,http-straming,websocket或是自己写过别的协议,更好的是直接上http2。为了优化链接的环节,前端这里还需要对资源使用cdn,雪碧图,代码合并等手段。
服务器处理请求这里可以优化的点也不少,值得注意的就是移动端访问PC端页面需要跳转到移动端页面时,要再服务器端使用302跳转,不要在前端进行跳转。还有就是启用hsts,要求浏览器在之后的访问使用https,减少无谓的http跳转https,同时还可以防止ssl剥离攻击,提升安全性。
服务器发送响应环节,可以使用Transfer-Encoding=chunked,多次返回响应,具体操作查询bigpipe。还有就是减小cookie的体积等等。
相关文章教程推荐:php教程
Atas ialah kandungan terperinci php实现性能优化. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

Jika anda seorang pembangun PHP yang berpengalaman, anda mungkin merasakan bahawa anda telah berada di sana dan telah melakukannya. Anda telah membangunkan sejumlah besar aplikasi, menyahpenyahpepijat berjuta-juta baris kod dan mengubah suai sekumpulan skrip untuk mencapai op

Tutorial ini menunjukkan cara memproses dokumen XML dengan cekap menggunakan PHP. XML (bahasa markup extensible) adalah bahasa markup berasaskan teks yang serba boleh yang direka untuk pembacaan manusia dan parsing mesin. Ia biasanya digunakan untuk penyimpanan data

JWT adalah standard terbuka berdasarkan JSON, yang digunakan untuk menghantar maklumat secara selamat antara pihak, terutamanya untuk pengesahan identiti dan pertukaran maklumat. 1. JWT terdiri daripada tiga bahagian: header, muatan dan tandatangan. 2. Prinsip kerja JWT termasuk tiga langkah: menjana JWT, mengesahkan JWT dan muatan parsing. 3. Apabila menggunakan JWT untuk pengesahan di PHP, JWT boleh dijana dan disahkan, dan peranan pengguna dan maklumat kebenaran boleh dimasukkan dalam penggunaan lanjutan. 4. Kesilapan umum termasuk kegagalan pengesahan tandatangan, tamat tempoh, dan muatan besar. Kemahiran penyahpepijatan termasuk menggunakan alat debugging dan pembalakan. 5. Pengoptimuman prestasi dan amalan terbaik termasuk menggunakan algoritma tandatangan yang sesuai, menetapkan tempoh kesahihan dengan munasabah,

Rentetan adalah urutan aksara, termasuk huruf, nombor, dan simbol. Tutorial ini akan mempelajari cara mengira bilangan vokal dalam rentetan yang diberikan dalam PHP menggunakan kaedah yang berbeza. Vokal dalam bahasa Inggeris adalah a, e, i, o, u, dan mereka boleh menjadi huruf besar atau huruf kecil. Apa itu vokal? Vokal adalah watak abjad yang mewakili sebutan tertentu. Terdapat lima vokal dalam bahasa Inggeris, termasuk huruf besar dan huruf kecil: a, e, i, o, u Contoh 1 Input: String = "TutorialSpoint" Output: 6 menjelaskan Vokal dalam rentetan "TutorialSpoint" adalah u, o, i, a, o, i. Terdapat 6 yuan sebanyak 6

Penalaan prestasi Nginx boleh dicapai dengan menyesuaikan bilangan proses pekerja, saiz kolam sambungan, membolehkan mampatan GZIP dan protokol HTTP/2, dan menggunakan cache dan mengimbangi beban. 1. Laraskan bilangan proses pekerja dan saiz kolam sambungan: worker_processesauto; peristiwa {worker_connections1024;}. 2. Dayakan Mampatan GZIP dan HTTP/2 Protokol: http {gzipon; server {listen443sslhttp2;}}. 3. Gunakan pengoptimuman cache: http {proxy_cache_path/path/to/cachelevels = 1: 2k

Mengikat statik (statik: :) Melaksanakan pengikatan statik lewat (LSB) dalam PHP, yang membolehkan kelas panggilan dirujuk dalam konteks statik dan bukannya menentukan kelas. 1) Proses parsing dilakukan pada masa runtime, 2) Cari kelas panggilan dalam hubungan warisan, 3) ia boleh membawa overhead prestasi.
