小编som*_*guy的帖子

如何加速1800行PHP包括?它将我的页面加载速度降低到10秒/视图

我设计了我的代码,将所有重要的函数放在一个现在1800行的PHP文件中.

我在其他PHP文件中调用它 - 例如AJAX处理器 - 使用简单的"require_once("codeBank.php")".

我发现加载所有这些函数大约需要10秒钟,即使我只有一些全局数组和一些其他函数.例如,主要的AJAX处理器代码只需要8秒钟来进行简单的语法验证(其操作函数存储在codeBank.php中).

当我注释掉require_once时,我的AJAX响应时间从10秒加速到40ms,所以很明显PHP试图用这1800行函数做一些事情.即使安装了APC,这也是令人惊讶的.

我应该怎么做才能将我的代码速度恢复到低于100毫秒的水平?我是否未能以某种方式获得缓存的好处?我是否需要将单个功能库文件剪切成不同的部分?是否还有其他微妙的事情可以阻止我的响应时间?

或者除此之外,有哪些工具可以进一步挖掘哪些PHP操作会遇到速度障碍?

==========================

[编辑]已解决.

==========================

正如你们许多人所指出的那样,没有合理的理由说明为什么只有一个1800行的php函数库会导致速度减慢.实际发生的是我有一个调试行调用了一个较长的API调用函数.每当我包含PHP文件时,我都是从远程查询数据构建一个完整的数据结构.

一旦我杀了那条线,一切都回到了快速的30毫秒响应.对我来说遗憾的是,每次调用AJAX脚本时,require_once()都会打开php文件.但是,这就是我的状态,并且忘记了每次AJAX脚本完成时它都会关闭并且每次都重新打开并重新编译.

php ajax require-once

4
推荐指数
1
解决办法
642
查看次数

是否可以使用字符串变量来引用Javascript中的元素?

这是现在代码的快速版本:

function foo(attributeName, someJSObj, key, newValue)
{
    someJSObj[key].attributeName = newValue;
}
Run Code Online (Sandbox Code Playgroud)

显然这不起作用,因为它只是创建一个名为attributeName的新元素.是否有一种简单的方法可以将attributeName取消引用到表示someJSObj上某些现有属性的字符串中?

javascript variables reference data-structures

0
推荐指数
1
解决办法
71
查看次数