APCがAPCuとZend OPcacheに取って代わられたワケ

  • 53
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

これはなに?

古いPHPを使用しているサービスだと、5.6+にマイグレーションする際にもAPCを使いたいという要望が多い。
PHP5.5+でなぜAPCではなくZend OPcacheやAPCuを使うようになったのか?
そもそもZend OPcacheやAPCuってなんなのさ!

って説明できるようになるために調べてみました。


APCとZend OPcache/APCuの関係

APCが機能として持っている
 opecode cache機能とdata cache機能を
 
PHP 5.5+では
 opecode cache : Zend OPcache
 data cache : APCu
 
で提供するようになりました。


そうなった経緯

経緯が綺麗にまとまったサイト。
https://www.devside.net/wamp-server/installing-apc-for-php-5-5

ざっくりまとめるとこんな感じ。

  • APC 3.1.14のopecode cache機能に深刻なバグがあり、PHPから排除された。PHP5.3が出た頃です。

その後、

  • APCはopecode cache機能を削除して、data cache機能のみを提供するAPCuとなった。
  • opecode cache機能は、Zend Optimizer+がOSS化されたもの⇨Zend OPcacheがカバー。Zend OPcacheはPHPに組み込まれた。

PHP5.5が出た頃にAPC⇨Zend OPcache/APCuの流れが加速したワケ

 
* APC最後の安定版リリース=3.1.13はPHP5.5+では動かないから。