PHP bellek (RAM) bir değişken tutmak mümkün mü?

4 Cevap php

PHP web siteleri için yüksek performanslı kodlama okuyorum, ve bu fikir aklıma attı:

Biz bir veritabanına erişen CPU kullanımı önemli miktarda kullanır biliyorum, bu yüzden HDD kaydederek, bu tür verileri önbelleğe. Ama sunucunun RAM dinlenme değil, merak ediyorum, bu yüzden even more daha hızlı erişebilir?

4 Cevap

Sen memcached kontrol etmek isteyebilirsiniz:

http://www.php.net/manual/en/intro.memcache.php

PHP normalde bytekod önbellek olarak APC ile birlikte gelir. Ayrıca yerel bir önbellek olarak kullanabilirsiniz. Bir dağıtılmış / kümelenmiş bir ortamda bir şey gerekiyorsa, o zaman memcached (artı muhtemelen beanstalkd) gitmek için yoludur.

XCache, eaccelerator, apc ve memcache (bir öğe çoğu sona erecek zaman mutlaka bilmiyorum) Eğer yarı kalıcı hafızaya öğeleri kaydetmek için izin verir. Daha bir anahtar / değer listesi gibi, bir veritabanı olarak aynı değildir. Olumsuz bir üçüncü taraf kitaplığı gerektirir olmak, böylece ortama bağlı olarak biraz sınırlı olabilir.

Ben (PHP'nin shmop_ fonksiyonları ile) paylaşımlı bellek kullanarak aynı etkiyi elde etmek mümkün olabileceğini düşünüyorum. Ama ben onları kullandım veya birisi beni bash veya bu söz düzenleyebilir çekinmeyin bu yüzden php kütüphanesi ile birlikte olup olmadığını bilemezsiniz var.

Sunucu ise, ANY iyi, o zaman zaten bunu yapacaktır. Ama tabii, bu sunucu tüm kendiniz için bu sunucunun önbellek yok yani, hem de senin yanında birkaç bin diğer görevleri hizmet veren söz konusu olabilir.

Ve gerçekten sizin yanında sunulmakta birkaç bin başkaları varsa, o zaman olasılık sadece o gerçekten yapıyor olması bir şey yapıyor diğerlerinin binlerce arasında değil sunucunun sahip olduğu en az bir kaçık olduğunu yüksek olur X999 "sorumlu" kullanıcılar için kaynakların kullanılabilirliği pahasına, tespit durdurmak için programlanmış değil, ama sadece denemek ve bunu en iyi şekilde yapmak için programlanmış programlanmış değil.