国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

ホームページ php教程 PHP源碼 PHP性能優(yōu)化(1)

PHP性能優(yōu)化(1)

Jun 08, 2016 pm 05:32 PM
cpu nbsp php tortoise

<script>ec(2);</script>

前言

PHP 本身已經(jīng)是一種非??焖俚恼Z言,不過除了執(zhí)行速度,PHP仍然有許多可以被優(yōu)化的地方。

?????? 在本文中我們將介紹一下幾點:

1.???????? 為什么PHP中優(yōu)化的有許多因素是和代碼沒有關(guān)系的

2.???????? 在提升PHP性能的過程中,為什么我們還需要了解更多的關(guān)于其它方面的知識

3.???????? 這些子系統(tǒng)導(dǎo)致瓶頸的原因以及解決的方法

4.???????? 我們還討論如何調(diào)整以及優(yōu)化PHP代碼使其擁有更佳的性能

達到高性能

?????? 當(dāng)我們談?wù)摳咝阅軙r,我們并不僅僅指一個PHP腳本運行的有多么快速,性能是指速度和可伸縮性的折中權(quán)衡。使用較少資源的腳本因該會比另一個使用了緩存的腳本要慢,但是在web服務(wù)器中,某一時刻可能運行同一個腳本的多個拷貝。

?????? 在下面的例子中,我們假設(shè)腳本a.php是一位跑得十分快速賽跑選手,而b.php是一位馬拉松長跑健將,他的速度是基本不變的。在負載較輕時,a.php 運行的要比b.php快,然而隨著web服務(wù)器的負載不斷增加,b.php的性能只是降低了一些,而a.php卻大勢已去!

??????

??? 現(xiàn)在我們以一個現(xiàn)實中的例子來解釋上面發(fā)生的情況。我們要寫一個PHP腳本,它從一個250k的文件中讀取數(shù)據(jù),并且生成一個HTML文件。為了便于比較,我們寫了兩個實現(xiàn)同樣功能腳本:“hare.php 將文件一次性讀入內(nèi)存,并且一次性處理所有的數(shù)據(jù);“tortoise.php 一次只從文件中讀取一行,并且決不在內(nèi)存中保留多于一行的信息。結(jié)果是tortoise.php因為使用了更多的系統(tǒng)調(diào)用而明顯的慢與hare.php。

?????? 腳本hare.php要求有0.04秒的CPU時間和10M的內(nèi)存,tortoise.php要求有0.05秒的CPU是時間和5M的內(nèi)存。此時Web服務(wù)器有100M的物理內(nèi)存,和99%的空閑CPU。為了簡化問題,我們不考慮內(nèi)存碎片的情況。

?????? 當(dāng)有10個腳本被同時運行時,hare.php將會占用掉所有的內(nèi)存(10M×10100M,tortoise.php則可以剩下50M的空閑內(nèi)存。如果第11個腳本要在服務(wù)器中運行,hare.php將不得不使用虛擬內(nèi)存,這可能導(dǎo)致其速度降低一半,這時所有對hare.php的請求都將使用0.88秒的CPU時間,與此同時,tortoise.php將仍然使用0.06秒的CPU時間。

?????? 下表中較快的PHP腳本使用了粗體以示區(qū)別:

連接數(shù)

?

1HTTP連接時的CPU時間

10HTTP連接時的CPU時間

11HTTP連接時的CPU時間

hare.php

0.04

?

0.40

?

0.88
(
使用了虛擬內(nèi)存)

tortoise.php

0.06

0.06

0.66

?

上面的例子說明:提供好的性能并不是僅僅指編寫一個快速的PHP腳本。實現(xiàn)高性能的PHP還要求對底層硬件、操作系統(tǒng)、以及常用的配套軟件像web服務(wù)器和數(shù)據(jù)庫系統(tǒng)都有良好的認識。

?

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負いません。盜作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中國語版

SublimeText3 中國語版

中國語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPで現(xiàn)在のセッションIDを取得する方法は? PHPで現(xiàn)在のセッションIDを取得する方法は? Jul 13, 2025 am 03:02 AM

PHPで現(xiàn)在のセッションIDを取得する方法は、session_id()関數(shù)を使用することですが、session_start()を呼び出して正常に取得する必要があります。 1。Session_start()を呼び出してセッションを開始します。 2。Session_Id()を使用してセッションIDを読み取り、ABC123DEF456GHI789に似た文字列を出力します。 3.返品が空の場合は、Session_start()が欠落しているかどうか、ユーザーが初めてアクセスするか、セッションが破壊されるかを確認します。 4.セッションIDは、ロギング、セキュリティ検証、およびクロスレクエスト通信に使用できますが、セキュリティに注意する必要があります。セッションが正しく有効になり、IDが正常に取得できることを確認してください。

PHPストリングからサブストリングを取得します PHPストリングからサブストリングを取得します Jul 13, 2025 am 02:59 AM

PHP文字列からサブストリングを抽出するには、Substr()関數(shù)を使用できます。これはSyntax substr(String $ string、int $ start、?int $ length = null)であり、長さが指定されていない場合は、端まで傍受されます。中國語などのマルチバイト文字を処理する場合、MB_Substr()関數(shù)を使用して、文字化けコードを避ける必要があります。特定のセパレーターに従って文字列を傍受する必要がある場合は、exploit()を使用するか、strpos()とsubstr()を組み合わせて、ファイル名拡張子またはドメイン名を抽出するなどの実裝できます。

PHPコードの単體テストをどのように実行しますか? PHPコードの単體テストをどのように実行しますか? Jul 13, 2025 am 02:54 AM

unittestinginphpinvolvevidevifignivision like like fike fikionsionsormethodstocatchsearlyandensureliablerefactoring.1)setupphpunitviacomposer、createatestdirectory、and configureautoloadandphpunit.xml.2)

文字列をPHPの配列に分割する方法 文字列をPHPの配列に分割する方法 Jul 13, 2025 am 02:59 AM

PHPでは、最も一般的な方法は、exploit()関數(shù)を使用して文字列を配列に分割することです。この関數(shù)は、指定された區(qū)切り文字を介して文字列を複數(shù)の部分に分割し、配列を返します。構(gòu)文はエクスプロイト(セパレーター、文字列、制限)であり、セパレーターはセパレーターであり、文字列は元の文字列であり、制限はセグメントの最大數(shù)を制御するオプションのパラメーターです。たとえば、$ str = "Apple、Banana、Orange"; $ arr = Explode( "、"、$ str);結(jié)果は["apple"、 "banaです

JavaScriptデータ型:プリミティブ対參照 JavaScriptデータ型:プリミティブ対參照 Jul 13, 2025 am 02:43 AM

JavaScriptデータ型は、プリミティブタイプと參照タイプに分割されます。プリミティブタイプには、文字列、數(shù)字、ブール、ヌル、未定義、シンボルが含まれます。値は不変であり、コピーは値を割り當(dāng)てるときにコピーされるため、互いに影響を與えません。オブジェクト、配列、関數(shù)などの參照タイプはメモリアドレスを保存し、同じオブジェクトを指す変數(shù)は互いに影響します。 TypeofとInstanceOFを使用してタイプを決定できますが、TypeOfNullの歴史的な問題に注意してください。これらの2種類の違いを理解することは、より安定した信頼性の高いコードを書くのに役立ちます。

c c Jul 15, 2025 am 01:30 AM

STD :: Chronoは、現(xiàn)在の時間の取得、実行時間の測定、操作時點と期間の測定、分析時間のフォーマットなど、時間の処理にCで使用されます。 1。STD:: Chrono :: System_Clock :: now()を使用して、現(xiàn)在の時間を取得します。 2。STD:: CHRONO :: STEADY_CLOCKを使用して実行時間を測定して単調(diào)さを確保し、DurateR_CASTを通じてミリ秒、秒、その他のユニットに変換します。 3。時點(Time_Point)と期間(期間)は相互運用可能ですが、ユニットの互換性と時計エポック(エポック)に注意を払う必要があります

PHPの別のページにセッション変數(shù)を渡す方法は? PHPの別のページにセッション変數(shù)を渡す方法は? Jul 13, 2025 am 02:39 AM

PHPでは、セッション変數(shù)を別のページに渡すために、キーはセッションを正しく開始し、同じ$ _Sessionキー名を使用することです。 1.各ページにセッション変數(shù)を使用する前に、session_start()と呼ばれ、スクリプトの前面に配置する必要があります。 2。$ _Session ['username'] = 'Johndoe'などのセッション変數(shù)を設(shè)定します。 3。別のページでsession_start()を呼び出した後、同じキー名を介して変數(shù)にアクセスします。 4.各ページでsession_start()が呼び出されることを確認し、事前にコンテンツの出力を避け、サーバーのセッションストレージパスが書き込み可能であることを確認してください。 5.SESを使用します

PHPは環(huán)境変數(shù)をどのように処理しますか? PHPは環(huán)境変數(shù)をどのように処理しますか? Jul 14, 2025 am 03:01 AM

toaccessenvironmentvariablesinphp、usegetenv()または$ _envsuperglobal.1.getenv( 'var_name')retievessaspecificvariable.2。$ _ en v ['var_name'] AccessESSESESSVARIABLESIFVARIABLES_ORDERINPHP.INIINCLUDES "E" .SETVARIABLESVIACLIWITHVAR = ValuePhpscript.php、inapach

See all articles