草庐IT

Performance

全部标签

php - 出于性能原因,我应该使用 SQL 限制吗?

我在一个项目中使用Doctrine2,它的流量很高,我很关心性能。有时为了“分页”目的我必须加载很多实体。示例:加载30,000篇已发表的文章,我需要对这些结果进行分页。我想知道从我可以使用LIMITOFFSETsql语句的数据库中加载这么多行有多糟糕,但是使用Doctrine2和分页,实现分页器适配器(复杂的存储库,等),我可以在其中使用简单的迭代器适配器。我想如果有一个好的缓存系统,这应该不是问题,但我不太确定。顺便问一下,你有什么关于缓存的小窍门吗? 最佳答案 问题是,无论您使用何种分页解决方案,当您在页面上仅显示10条记录时

php - 效率、基准测试、速度测试、性能

我正在尝试编写一个我正在尝试衡量其效率的脚本。我有几个问题:-对于小型应用程序,是否需要这种分析?还是我变得偏执了?(假设大多数代码都非常高效/没有无限循环)我应该以什么为基准?我应该与什么进行比较?下面是我从ab得到的效率输出。这样是不是太过分了?我是不是在设计这个应用程序时走错了方向?有什么我应该注意的警告信号吗?abs-n10000-c100http://localhost/testappThisisApacheBench,Version2.3Copyright1996AdamTwiss,ZeusTechnologyLtd,http://www.zeustech.net/Lice

php - 如何在不使 Apache 崩溃的情况下清除 APC 缓存?

如果APC存储了大量条目,清除它们会使httpd崩溃。Ifapc_clear_cache('user')takeslongerthanphpsmax_execution_timethescriptcallingapc_clear_cachewillbeterminatedbyphpbeforetheclearing-operationisfinished.thisseemstoleavesomehandlesorsth.thatwillpreventapachefromclosingit'sprocesses.(http://pecl.php.net/bugs/bug.php?id=1

php - 内存不足总是在同一行

首先,我不是在寻找“检查您的PHP内存限制”或“您需要添加更多内存”或类似内容的答案......我在一台专用机器上,有8GB的​​RAMS;其中512MB是内存限制。我总是在一行中遇到内存不足错误:澄清一下:这部分代码属于Joomla!内容管理系统。functionget($id,$group,$checkTime){$data=false;$path=$this->_getFilePath($id,$group);$this->_setExpire($id,$group);if(file_exists($path)){$data=file_get_contents($path);if

php - 为什么要同时使用 str_replace() 和 preg_replace()?

我是在Perl之后才开始了解PHP的,所以当我第一次发现preg_*函数时,我基本上只是使用它们。后来我读到str_replace()在处理文字文本时速度更快。所以我的问题是,当搜索模式不使用特殊字符时,preg_replace()不能像str_replace()一样高效吗?也许只是分析模式以在正则表达式和纯文本算法之间做出选择? 最佳答案 理论上是的,你是对的。PHP团队可能会调整preg_replace来分析传入的模式,然后在没有看到任何元字符的情况下使用str_replace的代码。假设分析不是太繁重,这可能会产生更好的性能结

php - Zend Framework 性能(自动加载)

我已经阅读了很多关于ZF性能的文章,但仍然无法理解,如果我启用了字节码缓存(APC),使用其他一些技巧是否有意义?例如。禁用自动加载并使用一个包含所有必要类的大php文件。 最佳答案 我惊讶地发现这是网站上唯一标记为性能、自动加载、php的问题。有什么比这更好的地方来消除#1自动加载神话:现代的、精心设计的自动加载器不会破坏APC(或PHP5.5的OPcache),并且在性能上也不比require_once差多少(当然函数调用开销除外).为什么?好吧,现在我们有spl_autoload_register,它允许您添加多个自动加载处理

PHP 使用 echo over print 的实际优势

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Reference:ComparingPHP'sprintandecho我想知道使用echo而不是print来写的实用和真实的优点和原因输出到屏幕。在我的代码的很多地方,我都有这样的事情:PRINT("".$course_id."");我知道print会返回一个值,而echo不会,但是我很想知道是否有任何真正的理由来替换我的代码中的实例(不幸的是,有一些)printwithecho?在这类场景中使用print只是一种不好的做法,还是有理由和好处避免它?我正在使用PHP5.3.13。

php - 什么是缓存标记?

有Cache_Tagging在Kohana但它没有解释它是什么。谁能告诉我们缓存标记应该做什么或者我们什么时候使用它? 最佳答案 某些缓存实现允许您向存储在缓存中的任何数据项添加一个或多个标签,然后查找或删除具有给定标签的所有项目。这对很多事情都很有用,最重要的是批量更新(你将一堆相关的东西添加到缓存中,用版本字符串标记它,当你后来得知该版本的数据已经过时时,告诉缓存一次性全部放下)。 关于php-什么是缓存标记?,我们在StackOverflow上找到一个类似的问题:

php - 将数组/对象树的键转换为小写

我目前正在优化一个PHP应用程序,发现一个函数被调用了大约10-20k次,所以我想我应该从那里开始优化:functionkeysToLower($obj){if(!is_object($obj)&&!is_array($obj))return$obj;foreach($objas$key=>$element){$element=keysToLower($element);if(is_object($obj)){$obj->{strtolower($key)}=$element;if(!ctype_lower($key))unset($obj->{$key});}elseif(is_ar

php - 哪些 PHP 框架可以处理大型应用程序?

许多关于框架的对话倾向于讨论易用性和开发速度。这些问题很重要,但它们往往来自为不同客户一遍又一遍地创建新的低流量项目的开发人员。在这种情况下,能够在尽可能短的时间内为客户制定出可靠的解决方案非常重要。我自己在这个领域工作了很多年,使用了很多MVC框架并取得了很大的成功。但是,如果您在一个高流量应用程序上工作了数年怎么办?现在,易用性和开发速度开始让位于可扩展性和速度。如果应用程序因速度和规模而无法运行,那么使用起来有多容易或编写代码的速度有多快都无关紧要。我对任何大型开发人员的问题是,框架在这种情况下是否仍然有用?如果有用,哪些框架已成功用于大规模生产情况?常用框架:zend、symp