English 中文(简体)
是否在PHP使用自动卸载班时出现故障?
原标题:Are there performance downsides while using autoloading classes in PHP?

目前,我在所有课堂上都装上“全部.inc.php”档案,然后把我所使用的所有会议、班级、职能等都列入。

我的这个问题是,我常常使用仅涉及网站某些网页/科的班级,因此,我常常在网页一开始就包括一个课堂,而不会使用。

显然,自动上下班将解决这一问题,因此,我的问题是,自动上下班是否会给我一个表演场,因为服务器当时必须检查是否有档案? 如果是 down倒,那么这一 down底是否比必须列入一些可能无法在网页上使用的班级更糟? 或者这两者之间的区别是不容的?

最佳回答

本条有一些信息和基准:。 PHP 自动载荷性能(定型)。 结论:

自动卸载不会大大降低性能。 包括从软磁盘中穿透、阅读和穿透PHP的文字,所需时间比单载逻辑成本要长得多。

问题回答

Autoloading a class is almost as fast as including the class in the normal way. Switching to autoloading will improve performance in your case, because PHP loads less files and classes.

自动卸载如果文件系统没有每次查询文件,就会提高性能。 如果你使用名称空间,你可以把名称空间和类别名称的冰层测绘到一个夹子上,如一些/Nice/ClassName将向一些/Nice/ClassName.php绘制地图。

如果你不使用名称空间,就必须通过圆顶搜查。 我建议你设立单一州级的习俗,包括允许你做以下事情的档案:

App::uses( Some/Nice , ClassName );

在“自动载荷”中,使用已登记的道路和类别名称,把它描绘成一种途径和档案,把我例子中的使用方法所产生的动力结合起来。 这将使你在重新准备改变你使用名称空间的用意之前,能够像功能一样使用舱位。

You should use autoloading with cache index of all available classes/files in project.

例:

$class_cache=array(
     MyClass => lib/MyClass.php ,
     Item => model/Item.php 
);

function __autoload($class_name) {
 if(array_key_exists($class_name))
   include $class_cache[$class_name];
 else
   throw new Exception("Unable to load $class_name.");
}

您需要保留班级清单,或写一些发电机,以支付班级的美元。

Each include() and require() (and their _oncesiblings) carry a performance penalty on their own. Disk seeks and reads also come at a cost. It really depends on your code, if you are loading 20 classes but use only 2 or 3 at any single point, then it s definitely worth going the autoloading route.

如果你的表现是你的主要关切,你就应当把你的班级档案合并为一个单一的档案,并立即说明你需要什么。

一个真正的老问题,但所有答案实际上是错误的。

......自动卸载需要大量资源。 这些数字差别很大,可能不是你自己所看到的情况,而典型的10%则令人惊讶。

我确信,他知道他所说的话。 http://blog.blackfire.io/speeding-up-autoloading-on-php-5-6-7-0-for-everyone.html





相关问题
Brute-force/DoS prevention in PHP [closed]

I am trying to write a script to prevent brute-force login attempts in a website I m building. The logic goes something like this: User sends login information. Check if username and password is ...

please can anyone check this while loop and if condition

<?php $con=mysql_connect("localhost","mts","mts"); if(!con) { die( unable to connect . mysql_error()); } mysql_select_db("mts",$con); /* date_default_timezone_set ("Asia/Calcutta"); $date = ...

定值美元

如何确认来自正确来源的数字。

Generating a drop down list of timezones with PHP

Most sites need some way to show the dates on the site in the users preferred timezone. Below are two lists that I found and then one method using the built in PHP DateTime class in PHP 5. I need ...

Text as watermarking in PHP

I want to create text as a watermark for an image. the water mark should have the following properties front: Impact color: white opacity: 31% Font style: regular, bold Bevel and Emboss size: 30 ...

How does php cast boolean variables?

How does php cast boolean variables? I was trying to save a boolean value to an array: $result["Users"]["is_login"] = true; but when I use debug the is_login value is blank. and when I do ...

热门标签