Nerede APC, kendi opcode ve kullanıcı değişkeni önbellek depolar?

2 Cevap php

Kullanırken top Ben APC gibi bir şey için bir süreç görmüyorum çünkü ben sormak nedenidir. Yani bellek kullanımı bir apache sürecinde hesaba olacağını varsayıyorum.

Durumda, ve bu APC kullanarak bellek böylece ona başlangıçta atandı olandan potansiyel olarak çok daha fazla bellek alarak, her apache sürecinde çoğaltılır anlamına gelmez mi?

Eğer bu durumda birden çok loadbalanced sunucularında kullanılıyor olmasa bile, daha iyi bir çözüm olabilir MEMCACHE olurdu?

2 Cevap

APC, kendi opcode önbelleğini saklamak paylaşılan hafıza kullanır. Mod_php durumunda bu bellek tüm Apache süreçler arasında paylaşılır. 5 Apache süreçler olsa bile Yani bir 30MB önbellek sadece 30MB yer kaplıyor.

Mod_php'yi kullanırken Ancak, her Apache süreci her süreç PHP yorumlayıcısı içerdiği gibi kaynakların bir çok atık yapar. Apache statik içerik sunar Böylece, (html, css, js, resim dosyaları, vb) yüklenince tam PHP yorumlayıcı bir süreç kullanır. Bundan kurtulmak için, bazı insanlar mod_fastcgi veya mod_fcgi yoluyla FastCGI kullanın. Using an opcode cache with FastCGI biraz yanıltıcıdır olur.

Bir opcode önbellek olarak memcache kullanmak için hiçbir yolu yoktur. Orada olsa bile, muhtemelen istenen daha yavaş olacaktır.

Bir opcode önbellek olmanın yanı sıra, APC de paylaşımlı bellek sağlar. Yani şiddetle memcached benzer kendi iç paylaşımlı hafıza sistemine sahip olduğunu göstermektedir.