<commit_before>---
layout: post
title:  "php编译缓存和本机缓存"
date:   2016-12-20
categories: [php]
---


# php编译缓存和本机缓存

### php生命周期

> Zend引擎必须从文件系统读取文件、扫描其词典和表达式、解析文件、创建要执行的计算机代码（称为Opcode），最后执行Opcode。每一次请求PHP脚本都会执行一遍以上步骤，如果PHP源代码没有变化，那么Opcode也不会变化，显然没有必要每次都重行生成Opcode，结合在Web中无所不在的缓存机制，我们可以把Opcode缓存下来，以后直接访问缓存的Opcode岂不是更快，启用Opcode缓存之后的流程图如下所
<commit_msg>Update 2016-12-20-php编译缓存和本机缓存.md<commit_after>---
title: 'php编译缓存和本机缓存'
layout: post
tags:
  - php
  - cache
category: php
---

# php编译缓存和本机缓存

### php生命周期

> Zend引擎必须从文件系统读取文件、扫描其词典和表达式、解析文件、创建要执行的计算机代码（称为Opcode），最后执行Opcode。每一次请求PHP脚本都会执行一遍以上步骤，如果PHP源代码没有变化，那么Opcode也不会变化，显然没有必要每次都重行生成Opcode，结合在Web中无所不在的缓存机制，我们可以把Opcode缓存下来，以后直接访问缓存的Opcode岂不是更快，启用Opcode缓存之后的流程图如下所

{'fraction_non_alphanumeric': 0.1087866108786611, 'fraction_numerical': 0.022315202231520222, 'mean_word_length': 9.112676056338028, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '976292', 'n_tokens_mistral': 518, 'n_tokens_neox': 590, 'n_words': 26}