【问题标题】:Does Codeigniter Autoloads Libraries/helpers on every Http RequestCodeigniter 是否在每个 Http 请求上自动加载库/帮助程序
【发布时间】:2013-02-15 14:34:40
【问题描述】:

我在我的应用程序中启用了基于 Codeigniter 的分析,我得到了一些令人惊讶的结果。

在进一步调试时,我意识到即使对于像 aboutus 等没有 DB 交互或 php 处理的静态页面,以下值也非常高 加载时间:基类 控制器执行时间 总执行时间

我尝试使用配置文件并意识到如果我删除了几个模型和库的自动加载,上述 3 个变量的值会显着下降

我假设如果某些内容在内存中保留后会自动加载。是这样吗?

如果我有一个模型在代码中需要 70% 的时间,我还要查看结果,我应该仍然不自动加载它并且只在需要时加载以提高性能。

还有其他选择吗

【问题讨论】:

    标签: php codeigniter codeigniter-2


    【解决方案1】:

    自动加载它不是运行一次并且存储在内存中的所有请求。每次发出请求时,根目录中的 index.php 都会启动,并且每次都必须从头开始加载所有内容。 Autoloading 的好处是您不必在每次调用它时都自己加载它,因为 Codeigniter 已经为您完成了。它使编码更容易。您应该在每次用户执行任何请求或使某些功能全局化时使用模块时自动加载。例如,我在所有视图中都使用了url_helper,所以我只是自动加载了它,所以我不必自己手动加载它。

    自动加载模型不会提高性能。

    要手动加载内容,请参阅http://ellislab.com/codeigniter/user-guide/libraries/loader.html

    【讨论】:

    • 同意!!但是假设如果只有 60-70% 的视图需要 url_helper,我不应该自动加载以确保其余 30-40% 的视图的性能吗?有没有推荐的最佳实践/标准
    • 加载url_helper 对性能的影响非常小,对我来说并不重要。包括它可以帮助我避免忘记加载它的错误。从技术上讲,如果我不加载它,服务器需要做的事情就会少一件事。我想这是你应该使用手动加载还是自动加载的风格/意见问题,但我认为大多数人只是说自动加载。
    猜你喜欢
    • 2012-01-31
    • 2018-01-14
    • 2012-01-27
    • 1970-01-01
    • 1970-01-01
    • 2014-11-07
    • 2012-01-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多