Heim php教程 php手册 PHP程序加速探索的代码优化方法

PHP程序加速探索的代码优化方法

Jun 21, 2016 am 08:59 AM
function

  握了PEAR::BenchMark,现在你已经知道如何测试你的代码,知道如何判断你的代码是快是慢,是哪一部份比较慢。那么接下来我要说的就是如何消灭或优化那部份慢的代码。

  这一点上我个人最主要的经验只有两点,一是消除错误的或低效的循环;二是优化数据库查询语句。其实还存在一些其它的优化细节,比如“str_replace比ereg_replace快”、“echo比print快”等等。这些我暂时都放在一边,稍后我会提到用缓存来对付过于频繁的IO。

  下面我们将三个功能相同,但程序写法不同的函数的效率(消耗的时间)进行对比。

  badloops.PHP

<?php
require_once('Benchmark/Iterate.php');
define('MAX_RUN',100);
$data = array(1, 2, 3, 4, 5);
doBenchmark('v1', $data);
doBenchmark('v2', $data);
doBenchmark('v3', $data);
function doBenchmark($functionName = null, $arr = null)
{
 reset($arr);
 $benchmark = new Benchmark_Iterate;
 $benchmark->run(MAX_RUN, $functionName, $arr);
 $result = $benchmark->get();
 echo '<br>';
 printf("%s ran %d times where average exec time %.5f ms",
$functionName,$result['iterations'],$result['mean'] * 1000);
}
function v1($myArray = null) {
 // 效率很差的循环
 for ($i =0; $i < sizeof($myArray); $i++)
 {
  echo '<!--' . $myArray[$i] . ' --> ';
 }
}
function v2($myArray = null) {
 // 效率略有提高
 $max = sizeof($myArray);
 for ($i =0; $i < $max ; $i++)
 {
  echo '<!--' . $myArray[$i] . ' --> ';
 }
}
function v3($myArray = null){
 //最佳效率
 echo "<!--", implode(" --> <!--", $myArray), " --> ";
}
?>

  程序输出的结果大概是这样的:

  v1 ran 100 times where average exec time 0.18400 ms
  v2 ran 100 times where average exec time 0.15500 ms
  v3 ran 100 times where average exec time 0.09100 ms

  可以看到,函数的执行时间变少,效率上升。

  函数v1有个很明显的错误,每一次循环的时间,都需要调用sizeof()函数来计算。函数v2则在循环外把$myArray数组的元素个数存到$max变量中,避免了每次循环都要计算数组的元素个数,所以效率提高了。函数v3的效率最高,利用了现成的函数,避免循环。

  这个例子只是给你一个感性的认识,明白什么是相对高效的代码。在实际开发中,我相信会有很多人会迷迷糊糊地写出很多低效率的代码。要把代码写得精炼而高效,恐怕需要时间去锤炼:-) 但这是另一个话题了,我们略过不谈。

  数据库应用基本上每个PHP程序都会用到,在实际开发中我发现最影响整个系统效率的就是数据库这部份。



Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was bedeutet Funktion? Was bedeutet Funktion? Aug 04, 2023 am 10:33 AM

Funktion bedeutet Funktion. Es handelt sich um einen wiederverwendbaren Codeblock mit bestimmten Funktionen. Er kann Eingabeparameter akzeptieren, bestimmte Operationen ausführen und Ergebnisse zurückgeben. Code, um die Wiederverwendbarkeit und Wartbarkeit des Codes zu verbessern.

Was ist der Zweck der Funktion „enumerate()' in Python? Was ist der Zweck der Funktion „enumerate()' in Python? Sep 01, 2023 am 11:29 AM

In diesem Artikel lernen wir die Funktion enumerate() und den Zweck der Funktion „enumerate()“ in Python kennen. Was ist die Funktion enumerate()? Die Funktion enumerate() von Python akzeptiert eine Datensammlung als Parameter und gibt ein Aufzählungsobjekt zurück. Aufzählungsobjekte werden als Schlüssel-Wert-Paare zurückgegeben. Der Schlüssel ist der Index, der jedem Element entspricht, und der Wert sind die Elemente. Syntax enumerate(iterable,start) Parameter iterable – Die übergebene Datensammlung kann als Aufzählungsobjekt namens iterablestart zurückgegeben werden – Wie der Name schon sagt, wird der Startindex des Aufzählungsobjekts durch start definiert. wenn wir es ignorieren

Detaillierte Erläuterung der Rolle und Funktion der MySQL.proc-Tabelle Detaillierte Erläuterung der Rolle und Funktion der MySQL.proc-Tabelle Mar 16, 2024 am 09:03 AM

Detaillierte Erläuterung der Rolle und Funktion der MySQL.proc-Tabelle. MySQL ist ein beliebtes relationales Datenbankverwaltungssystem. Wenn Entwickler MySQL verwenden, müssen sie häufig gespeicherte Prozeduren erstellen und verwalten. Die MySQL.proc-Tabelle ist eine sehr wichtige Systemtabelle. Sie speichert Informationen zu allen gespeicherten Prozeduren in der Datenbank, einschließlich des Namens, der Definition, der Parameter usw. der gespeicherten Prozeduren. In diesem Artikel erklären wir ausführlich die Rolle und Funktionalität der MySQL.proc-Tabelle

Die Verwendung und Funktion der Vue.use-Funktion Die Verwendung und Funktion der Vue.use-Funktion Jul 24, 2023 pm 06:09 PM

Verwendung und Funktion von Vue.Funktion verwenden Vue ist ein beliebtes Frontend-Framework, das viele nützliche Features und Funktionen bietet. Eine davon ist die Vue.use-Funktion, die es uns ermöglicht, Plugins in Vue-Anwendungen zu verwenden. In diesem Artikel werden die Verwendung und Funktion der Vue.use-Funktion vorgestellt und einige Codebeispiele bereitgestellt. Die grundlegende Verwendung der Vue.use-Funktion ist sehr einfach. Rufen Sie sie einfach auf, bevor Vue instanziiert wird, und übergeben Sie das Plugin, das Sie verwenden möchten, als Parameter. Hier ist ein einfaches Beispiel: //Plugin vorstellen und verwenden

file_exists()-Funktion in PHP file_exists()-Funktion in PHP Sep 14, 2023 am 08:29 AM

Die Methode file_exists prüft, ob eine Datei oder ein Verzeichnis existiert. Es akzeptiert als Argument den Pfad der zu überprüfenden Datei oder des Verzeichnisses. Hier erfahren Sie, wofür es verwendet wird: Es ist nützlich, wenn Sie wissen müssen, ob eine Datei vorhanden ist, bevor Sie sie verarbeiten. Auf diese Weise können Sie beim Erstellen einer neuen Datei mithilfe dieser Funktion feststellen, ob die Datei bereits vorhanden ist. Syntax file_exists($file_path) Parameter file_path – Legen Sie den Pfad der Datei oder des Verzeichnisses fest, dessen Existenz überprüft werden soll. Erforderlich. Gibt die Methode file_exists() zurück. Gibt „TrueFalse“ zurück, wenn die Datei oder das Verzeichnis existiert, wenn die Datei oder das Verzeichnis nicht existiert. Beispiel: Lassen Sie uns eine Prüfung für die Datei „candidate.txt“ sehen und auch, ob die Datei vorhanden ist

Was ist die Verwendung der js-Funktion? Was ist die Verwendung der js-Funktion? Oct 07, 2023 am 11:25 AM

Die Verwendung der js-Funktion ist: 1. Funktion deklarieren; 3. Funktionsparameter; 6. Funktion als Parameter;

So verwenden Sie SOA-Funktionen in PHP So verwenden Sie SOA-Funktionen in PHP May 18, 2023 pm 01:10 PM

Mit der Entwicklung des Internets ist SOA (serviceorientierte Architektur) zu einer wichtigen technischen Architektur in heutigen Systemen auf Unternehmensebene geworden. Dienste in der SOA-Architektur können wiederverwendet, neu organisiert und erweitert werden und vereinfachen gleichzeitig den Systementwicklungs- und Wartungsprozess. Als weit verbreitete Web-Programmiersprache stellt PHP auch einige Funktionsbibliotheken zur Implementierung von SOA zur Verfügung. Als nächstes werden wir detailliert beschreiben, wie SOA-Funktionen in PHP verwendet werden. 1. Das Grundkonzept von SOA ist eine verteilte Systementwicklungsidee und -architektur.

So verwenden Sie die Funktionsschnittstelle in Java8 So verwenden Sie die Funktionsschnittstelle in Java8 Apr 17, 2023 pm 09:04 PM

Einführung in die Funktionsschnittstelle in Java 8 Java 8 stellt eine funktionale Schnittstelle bereit. Diese Schnittstelle stellt die Ausführung einiger Operationen an einem Parameter und die anschließende Rückgabe des Werts nach der Operation dar. Diese Schnittstelle verfügt über eine abstrakte Methode apply, die die Operation an den Parametern angibt. //Definition der JavaFunction-Schnittstelle @FunctionalInterfacepublicinterfaceFunction{Rapply(Tt);defaultFunctioncompose(Function

See all articles