zoukankan      html  css  js  c++  java
  • php opcodes运行原理

    谈下php的运行原理--Opcodes。

    比如以下一段简单的代码:

    <?php
        echo '周伯通‘;
    ?>

    执行这段代码会经过如下4个步骤(确切的来说,应该是PHP的语言引擎Zend)

    1.Scanning(Lexing) ,将PHP代码转换为语言片段(Tokens)
    2.Parsing, 将Tokens转换成简单而有意义的表达式
    3.Compilation, 将表达式编译成Opocdes
    4.Execution, 顺次执行Opcodes,每次一条,从而实现PHP脚本的功能。

    所以当开启OPcache的时候,php在一次请求中已经将Opcodes进行了缓存,那么下次请求的时候,就是跳过前三步,直接运行OPcache里对应的Opcodes,所以大大提升了PHP运行的性能。

    开启opcache方法:

    首先输入命令 php -m 查看有没有开启 OPcache 拓展。

    如果已经开启,那么就可以开始配置php.ini。

    // 开启opcache
    opcache.enable=1
    // 是否开启代码检测,开发环境中应不开启,然后可以写一个artisan命令去运行opcache_reset()方法去重启opcache缓存
    opcache.validate_timestamps=0
    // 如果开启代码检测,每隔多久检测一个代码是否改变
    opcache.revalidate_freq=0
    // 最大加速文件数,linux下可以通过find . -type f -print | grep php | wc -l命令查看项目有的文件数,该值应该大于项目下的文件数
    opcache.max_accelerated_files=8000
    // opcache预先申请的内存,用来存opcache缓存
    opcache.memory_consumption=192
    // 重启字符串缓冲区
    opcache.interned_strings_buffer=16
    // 这实际上是提供了一个更快的机制,在单个请求结束时调用代码中的解构器,以加快响应和回收php工作,以便更快地为下一个传入请求做好准备。
    opcache.fast_shutdown=1
  • 相关阅读:
    localStorage_留言板(储存功能)
    localStorage_留言板01
    localStorage的存储功能
    html表单笔记
    jdbc连接数据库Mysql实例
    (二)SpringMVC学习笔记-HelloWorld
    (一)SpringMVC学习笔记-概述
    animation的相关属性:
    text-transform的各种属性
    ajax请求的时候get 和post方式的区别:
  • 原文地址:https://www.cnblogs.com/phpper/p/8344190.html
Copyright © 2011-2022 走看看