优化我的表现
我正在研究一个具有Zend Framework 1.11,Doctrine 2,Symfony 2组件和其他工具和库的项目. 我正在尝试使用Xdebug&Webgrind. 来优化性能. 我已经找到了一些瓶颈,例如解析Ini config等. 现在,我只是意识到自动加载是我应用程序中最昂贵的部分: Opl\Autoloader\ApcLoader->loadClass 274 31.36 43.86 Zend_Loader_PluginLoader->load 150 4.80 12.29 Zend_Loader_Autoloader->getClassAutoloaders 278 1.42 1.91 Zend_Controller_Router_Route_Regex->_getMappedVa
0 2023-05-30
编程技术问答社区
节省我们的页面加载时间的提示
我的问题:剃除那些不必要的KB并更快地加载的最佳方法是什么.所有优化实践+编码实践 )如果执行可以使您的页面更轻. 为什么我问这个:我在jquery.js vs jquery.min.js usage上读了这篇文章.我认为很多人在不知道它的含义的情况下使用它.我基本上是在Android和iOS手机上制作广告单元. 我最近开始使用jquery.min而不是普通的javascript.但是,这再次增加了KBS的整体大小.大爸爸Google在他们的页面排名哲学中跟踪这一方面.因此,在大多数搜索中,这个问题变得更加重要我确实搜索了Google,但没有链接提出一些可靠的答案. 我想知道人们应该做些什么来使他们的网页在移动设备以及平板电脑和PC浏览器上更轻,而不是使用任何JS库的缩小版本. 在某个时间点,每个JavaScript编码器都必须考虑这个问题. 解决方案 您将要研究WPO(Web性能优化)和/或FEO(前端优化). 它很旧,但今天仍然成立: http://stev
0 2023-05-30
编程技术问答社区
PHP-hash对象的方式是,具有相同字段值的不同对象具有相同的哈希值
我正在寻找一种为PHP对象生成某种哈希的方法(如果可能的话,可以使用所有分类,内置和自定义的通用解决方案). splobjectStorage :: Gethash不是我想要的,因为它将在给定类的每个实例中生成不同的哈希.要想象这个问题,让我们考虑简单的类: class A() { public $field; //public only for simplicity } 和2个类别的实例: $a = new A(); $a->field = 'b'; $b = new A(); $b->field = 'b'; 我尝试过的每个内置函数都会返回这些对象的不同哈希,而我想用属性f($a) == f($b) => $a == $b进行一些function f($x). 我知道我可以递归地编写一个函数,直到找到一个可以施放到字符串的属性,以奇特的方式和哈希的限制,但是这种解决方案的性能会很糟糕. 是否有有效的方法可以做到这一点? 解决方案 假设我正
0 2023-05-30
编程技术问答社区
复制PHP变量的性能影响
只是想知道复制非常大的PHP变量的性能影响.例如,说$ arr是一个巨大的数组.如果我做$ arr2 = $ arr,这是一个深副本,还是$ arr2仅仅是$ arr的指针,就像java中的$ arr一样?预先感谢. 解决方案 $arr2 = $arr创建一个深层副本.但是实际的复制仅在修改$ arr2时才发生 - php使用抄写. 如果您想要一个"指针"而不是副本,请使用$arr2 =& $arr,这使$ arr2成为$ arr. 的引用 其他解决方案 如果使用$ arr2 =&$ arr; 它将引用$ arr. 其他解决方案 除非您需要它们提供的功能,否则PHP中的一般规则不会创建参考.否则,参考只会使代码较慢.
0 2023-05-30
编程技术问答社区
CSS预处理器还是PHP?
如果我在PHP中编写代码有理由是为什么我会使用CSS预处理器而不是PHP?例如,我可以通过将其放入标题: 中的CSS文件中使用PHP. 这样,我可以将其传递到style.php?color=#000 的变量 或者我可以使用更少的来预处理我的CSS.如果我使用的少量. 现在,我听说PHP CSS文件无法被缓存,因此我可以理解为什么这是一个问题,尤其是在CSS文件很大的情况下.但是我希望能够将变量传递给我的CSS表. 有人可以再告诉我为什么我要使用另一个,和/或如果我使用少的文件,我将如何将变量传递给我的. ? 解决方案 现在,我听说php css文件不能被缓存,所以我知道为什么这是一个问题,尤其是如果CSS文件很大. php css文件可以缓存,但是如果将动态值传递给它们,则缓存的点通常会丢失.如果您的动态值可能随
0 2023-05-30
编程技术问答社区
Symfony2应用程序在VirtualBox中非常慢
我在VirtualBox上运行Debian的虚拟副本,以在NGINX/PHP5-FPM/MYSQL堆栈上开发大型的PHP应用程序.开发发生在主机OS(Windows 7 x64)中,该代码被安装为"访客OS"中的共享文件夹. 性能非常糟糕.以下是本机Vbox文件系统的WebGrind输出和带有CIFS的SAMBA安装座: 在任何一种情况下,filemtime,file_exists和is_readable需要几秒钟的时间才能运行. CPU负载很高,内存使用率似乎正常. 不是所有这三个函数的输出是否均缓存在Stat Cache中?他们为什么要花这么长时间? 我真的很感谢我能得到的任何帮助! 编辑:要澄清,生产性能很好.在我们的(正确的,非虚拟的)登台服务器上,PHP代码在生产设置中最大约60ms,在Dev模式下的100-200ms之间执行. 我需要帮助弄清楚为什么VirtualBox在Dev&Prod模式下慢100倍. 我刚刚检查,生产设置产生〜5
0 2023-05-30
编程技术问答社区
如果用户关闭浏览器或从一个页面导航到另一个页面,使用PHP杀死MySQL查询
我的网站正在使用Onload Ajax.因此,当用户进入第6页时,AJAX调用是并行执行的.在过程的中间,如果用户关闭浏览器或导航到另一页,我想杀死查询. 实现这一目标的步骤: 1.找到下一个MySQL查询执行ID(连接标识符)并将其存储到会话中. http://dev.mysql.com/doc/refman/5.1/en/show-processlist.html 我们需要在执行读取(选择)查询之前识别此ID.因为PHP将按线执行. 问题 How do we identify the next connection identifier? 或 How do we reserve the connection identifier and execute the query on specified identifier? 2 .在数据库中执行查询. 3.如果确定了中止用户,则杀死MySQL查询执行.我们可以使用Connecti
0 2023-05-30
编程技术问答社区
如何测试MySQL的查询速度,并减少不一致的情况?
我需要一种简单的方法来测试SQL查询的速度.我不必担心硬件差异,我基本上需要一个相对数字. 这就是我一直在使用PHP(它的模糊,但有效): // CONNECT TO DB HERE $sub = new YomoSubscription(95,783); $t = microtime(TRUE); // contains the SQL db call i'm testing $fp = $sub->generateFingerprint(); echo microtime(TRUE)-$t; 问题我遇到的是,有时在初始连接/运行时,我的测试需要1.25秒.但是,在随后的连接中,需要0.004秒... 为什么这是? 我很确定mySQL查询缓存在我的.ini中关闭: query_cache_size=0 解决方案 您的第一个查询可能会较慢,因为MySQL实际上是在第一个查询上击中磁盘,而不是在第二个查询上. 您的操作系统可能会在读取时缓存
0 2023-05-30
编程技术问答社区
Django/Python中是否有类似于PHP flush()的函数,可以让我将HTTP响应的一部分发送给客户?
... django/python中是否有一个功能; 谢谢 解决方案 否.是简短的答案. 长答案取决于您在Web服务器和Python之间使用的内容: 您可以使用WSGI实现它,但这不是一个异想天开的任务. 也许从这里开始? http://www.python.orgg/dev/PEPS/PEP-0333/#启动 - 响应可靠 其他
0 2023-05-30
编程技术问答社区
PHP性能:$this->variable与本地$variable的比较(操作)。
我在课堂上有一个部分,我决定分为新的部分. 当我将代码部分移植到一个新类中时,我注意到执行其中一个foreach循环时的速度要慢得多. 我设法跟踪了部分问题,以决定如何保存最终结果数组. 我认为,如果您看到我的代码的缩短版本,请更容易理解: 原始移植代码: http://pastebin.com/2ibuqmgn 更优化的移植代码: http://pastebin.com/tyu1rhwu 您会看到,在第一个示例中,我直接操纵$ this-> active_topics. 在第二个示例中,我在将局部变量保存到$ this-> Active_topics之后之前使用本地变量. 使用原始循环似乎平均达到1秒,而更优化的循环使用0.85平均执行.他们最终返回完全相同的内容. 为什么使用局部变量更优化的代码,更有效? 解决方案 当您访问类中的某些内容时,PHP解释器首先必须在内存中找到类,然后查看属性在哪里.在普通的本地变量上,它不需要搜索
0 2023-05-30
编程技术问答社区
睡眠如何吃CPU PHP
如何使用CPU资源睡眠? 睡觉时,它是否使用100%或0%的CPU.你可以解释吗? 据我所知,它增加了负载的平均值,但是如何使用CPU? 解决方案 sleep工作的方式是OS依赖性的,因为PHP函数sleep 调用适当的运行时函数实际上在锡上说的话. 对于Windows ,该功能是 SleepEx . 对于其他操作系统这是POSIX函数sleep.在这两种情况下,这些功能的文档清楚地表明,睡眠线不符合在睡眠期间运行的条件,因此即使愿意也无法消耗CPU资源.
2 2023-05-30
编程技术问答社区
文件上传速度慢于用户在Apache上的网络上传速度(EC2)。
我有一个运行基本灯泡的EC2实例作为网络服务器.用户可以通过我的Web应用程序上传照片,然后将其存储在目录中并记录在MySQL中.通常,这些上传就像用户的Internet上传速度一样快. 不幸的是,多个用户一直在报告,有时照片上传正在放慢速度 - 每张照片最多要2分钟,而在其他站点上,用户可以更快地上传. 如何优化Apache(我假设是Apache?)不​​成为瓶颈? MPM预叉车可以解决此问题吗?还是可能是数据库锁定问题? 此设置的其他统计数据(这是漂亮的香草): Instance Type: t2.small EBS-optimized: False PHP v5.4 Server version: Apache/2.4.18 (Amazon) 我要考虑的唯一相关的另一件事是,当照片上传时,它通过Imagick调整了缩略图大小(显然这有点密集,但通常是很快). > 解决方案 这种问题可能是由于许多原因.但是,在您可以控制的变量中,您可以从网络节
0 2023-05-30
编程技术问答社区
PHP中单子类实例方法与静态类方法的性能对比?
我对目标的客观分析感兴趣.呼叫单例类或静态类方法的实例方法.我已经看过 "不是在寻找关于两者或讨论之间的区别的讨论.我只对两者之间的相对性能感兴趣.预先感谢. -mike 解决方案 检查此图表:) 从/a> 其他解决方案 除非您以紧密的循环打电话(这意味着没有其他重要的代码,在呼叫的开销很重要的情况下)数千或数十万次,请不要担心.差异可能会在微秒之下,因此不值得烦恼.只需做出最佳的建筑选择... Premature optimization is the root of all evil... 编辑:对所有下降者,这是我写过的博客文章描述为什么这样的性能比较几乎没有用. 其他解决方案 在调用单例模式对象的实例方法之前,您需要先获取实例,该实例需要静态方法调用: SomeClass::getInstance()->myMethod(); // versus SomeClass::myMethod(); 因此,当您第一次需要在功能中访
0 2023-05-30
编程技术问答社区
php日期函数和碳元素哪个更快?
碳是DateTime的简单PHP API扩展. 我想知道我们可以通过通过作曲家安装碳使用DateTime功能. 哪个更快的PHP DateTime功能或碳? 解决方案 我对您的评论进行了一些测试,将DateTime与碳功能进行比较: 呼叫Carbon::now() vs. new \DateTime() 100.000次:
0 2023-05-30
编程技术问答社区
在PHP中,变量名的长度对性能有影响吗?
我已经看到了这个在性能c#上确实具有可变名称长度?主题,并且对PHP有同样的问题. 我的同事(前端)已编码所有内容,例如$ o,$ r,$ x,$ m,$ c,并激发了最佳性能.我真的很怀疑它,并且代码变得难以阅读. $ o-对象或obj $ M- $模型 $ r- $ query_result或$结果 $ x- $ xml_node 每件事看起来都像 if ( isset ( self::$o[ self::$x -> name ] ) ) : $c = 'ClassPrefix_' . self::$o[ self::$x -> name ]; $o = new $c; self::$x -> read ( ); 解决方案 变量名称更多地作为程序员助手存在 - 当解释程序或脚本时,这些名称将转换为存储位置.将来修改/调试代码时,较短的变量只会对程序
0 2023-05-30
编程技术问答社区
将IP地址与PHP中的通配符进行比较的优化方法?
任何人都知道有效且安全的方法,以查看此输入是否: $_SERVER['REMOTE_ADDR'] 与与此不一致的过滤器相似的东西(请注意,200.100. array( '192.168.1.*', '192.168.2.1*', '10.0.0.*', '200.100.*.*', '300.200.*', ) 更新 想法? foreach($instanceSettings['accessControl']['allowedIpV4Addresses'] as $ipV4Address) { echo 'Now checking against '.$ipV4Address.'.'; // Compare each octet $ipV4AddressOctets = String::explode('.', $ipV4Address); $remoteIpV4AddressOctets = Strin
0 2023-05-30
编程技术问答社区
PHP。什么是查询MySQL的最快方法?因为PDO慢得让人痛苦
我需要执行简单的查询. 从字面上看,我需要执行的只是: SELECT price, sqft, zipcode FROM homes WHERE home_id = X 当我使用PHP PDO 时,我阅读的是连接到MySQL数据库的推荐方法,只需创建连接即可进行测量 610ms . P> 我的代码如下: try { $conn_str = DB . ':host=' . DB_HOST . ';dbname=' . DB_NAME; $dbh = new PDO($conn_str, DB_USERNAME, DB_PASSWORD); $params = array(); $sql = 'SELECT price, sqft, zipcode FROM homes WHERE home_id = :home_id'; $params[':home_id'] = X; $stmt = $dbh->prepar
0 2023-05-30
编程技术问答社区
PHP常量: 优势/劣势
最近,我一直习惯于将整数值分配给常数,而只是将常数名称作为识别其目的的手段.但是,在某些情况下,这导致需要在需要字符串表示时编写诸如TypeTostring($ const)之类的函数.显然,这是效率低下且不确定的,但只是一次是一个问题. 所以我的问题是,我还应该考虑其他权衡吗?哪种情况被认为是符合标准的更干净/更多?另外,在大多数情况下,性能差异是否可以忽略吗? 案例1 :(不需要字符串版本时更快?) class Foo { const USER_TYPE_ADMIN = 0; const USER_TYPE_USER = 1; const USER_TYPE_GUEST = 2; public $userType = self::USER_TYPE_ADMIN; public function __construct($type) { $this->userType = $type; }
0 2023-05-30
编程技术问答社区
in_array()的性能优化
我有以下条件: if(in_array($needle, $haystack) || in_array($needle . "somePostfix", $haystack) || in_array($needle . "someOtherPostfix", $haystack) || // and some more) { // do something } 我的干草堆包含超过10K的元素,此检查约为400ms.我知道in_array必须多次迭代整个阵列.在我的情况下,常见的情况是找不到元素.我试图通过创建以下方法来改进这一点,该方法仅在干草堆上迭代一次: : function wildcardInArray($needle, $haystack) { foreach ($haystack as $value) { if (true === fnmatch($needle . '*', $haystack)) {
0 2023-05-30
编程技术问答社区