首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
华为云
V2EX  ›  PHP

有没有办法将 PHP 需要加载的. PHP 文件放在内存中?

  •  
  •   dangyuluo · 2017-04-16 00:49:34 +08:00 · 2750 次点击
    这是一个创建于 552 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近在搞 PHP7 ,框架使用的是 CodeIgniter 。对方提供的服务器不是固态硬盘的,通过 xhprof 分析后,发现每次用include或者require读取框架文件都要花上一定时间。

    有没有什么办法将这些文件缓存到内存中?这样每次都可以加速访问了。

    13 回复  |  直到 2017-04-17 13:23:17 +08:00
        1
    sagaxu   2017-04-16 01:00:50 +08:00
    文件读过一次之后,已经在 VFS cache 里了,用 ssd 还是 hdd 没区别的。
    比较耗时的肯定不是磁盘 IO ,是 PHP 内部的事情,有两件事情。

    第一,调用词法分析语法分析,生成 AST 。
    第二,执行框架的初始化代码,比如读配置文件,构建路由器。

    第一件事情,有 opcache 这类扩展去解决, php5.5 起内置了一个
    第二件事情,要么不用 FPM 方式跑,要么用 C 写框架,就两个办法
        2
    UnisandK   2017-04-16 01:12:29 +08:00
    开 APC 或者 zend ?
        3
    dangyuluo   2017-04-16 01:37:14 +08:00
    @sagaxu 了解到了,我再去学习一下。


    @UnisandK 同样也谢谢。
        4
    realpg   2017-04-16 02:00:49 +08:00
    打开 opcache
        5
    greatonce   2017-04-16 02:35:08 +08:00
    workerman
        6
    wwolf   2017-04-16 08:43:36 +08:00
    常驻内存,用 swoole
        7
    rogerchen   2017-04-16 09:04:55 +08:00 via Android
    自己挂载一个 tmpsf ,把文件挪进去,比 cache 可靠得多
        8
    gouchaoer   2017-04-16 09:16:03 +08:00 via Android
    开 opcache 就完了。。。。 workerman 和 swoole 不适合你,还是 php-fpm 比较鲁棒简单
        9
    iyaozhen   2017-04-16 14:13:08 +08:00 via Android   ♥ 1
    你都 PHP7 了还不开 OPcache 。开了会还很多,也不用上啥 swoole

    「读取框架文件都要花上一定时间。」这个一定时间是多久?
        10
    xiaotianhu   2017-04-16 17:43:27 +08:00
    /dev/shm 写个脚本把 php 文件放在这儿就好了
        11
    breeswish   2017-04-17 00:54:12 +08:00
    你确定是在读框架文件而不是在指定框架代码?
        12
    bombless   2017-04-17 01:10:11 +08:00 via Android
    同,用 opcache 即可
        13
    byfar   2017-04-17 13:23:17 +08:00
    借楼问下, ci 加载类是延时加载的吗?

    印象中 xhprof 不支持 php7 了,自己编辑安装的另说。

    这个帖子应该不是在讨论性能问题吧?如果加载个框架就有性能问题了,那框架问题很大吧。

    开 opcache 会预编辑 php 文件常驻内存,加快 php 执行效率。

    php-fpm 的话只是少加载了 php 配置和初始化的开销,并不会加快 include 或者 require 读取框架文件 的速度。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   608 人在线   最高记录 3762   ·  
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.1 · 17ms · UTC 21:36 · PVG 05:36 · LAX 14:36 · JFK 17:36
    ♥ Do have faith in what you're doing.
    沪ICP备16043287号-1