Önbelleğe alma PHP performans farkı dosyada Nesneler

6 Cevap php

Önbelleğe alma PHP diskteki nesnelerden ziyade olmayanlar arasındaki fark var mı? Önbelleğe ise, nesneleri yalnızca TÜM site ziyaretçileri için bir kez yaratılmış olacaktır, ve eğer, onlar her ziyaretçi için bir kez oluşturulur. Bunun için bir performans farkı var mı yoksa ben zaman yapıyor israf olurdu? Thank you :)

6 Cevap

Performansı böylece nesne kez önbelleğe ve herkes tarafından kullanılan ... veya ziyaretçi başına bir kez önbelleğe bile ... o sayar sonraki kullanım aşağı subsequent use geliyor. Önbelleğe alınmış nesne 10.000.000 kez bir gün kullanılırsa, o zaman kazandıracak.

Önbelleğe alınan nesne bir kez ya da hiç kullanılırsa, kazanç ihmal edilebilir düzeydedir.

It's like this: File is way faster then Database. Memory is way faster then files (when not swapping disk space).

Yani önbellek için size en çok ne gerek, ve deneyin ve dosya önbelleğe çaba gerektiğinde düşünüyorum.

Unutmayın: prematüre optimizasyon genellikle yapmak için iyi bir şey değil.

Bunu her değiştiğinde, dinamik içeriğin önbelleğe gerektiğini hesaba almak gerekecek. Ancak, statik içeriğe, özellikle veritabanı şemaları, yapılandırmaları ve bu tür şeyler de, önbellekli içeriği kullanmak çok daha hızlı.

Onlar büyük nesneler olduğunu varsayarsak, ve bir veritabanından çekilen verilere dayalı inşa ediliyor ise, özellikle, önbelleğe alma iyi bir fikirdir. Ben belirli bir örneği ile yaptım bazı testleri için, her zaman DB gitmek daha, bir nesne oluşturmak bir dosyaya yazmak ve dosyadan yüklemek için daha hızlı oldu.

Ancak: Bir dosyaya yazma daha iyi yollar vardır. Muhtemelen memcached veya APC ile bellekte nesneyi saklamak daha iyi olurdu, ve dosya üzerinde kilitleri ile ilgili sorunlar olabileceğini unutmayın birkaç kişi aynı anda siteyi isabet olmasıdır.

Bir önbellek özledim olduğunda vurmak bir önbellek nesneyi başlatmasını adımını kaydetmek mümkün olacak ise diskte önbelleğe alma nesneler, size disk yazma ek yükü verecektir.

Nesnenin inşaat bazen daha fazla tasarruf disk yazma ek yük ağır basar daha sonra devam edin ve diskte önbellek olacak bir yük yeterli değilse.

Ben nesneleri başlatmasını Bunu yapmak istersiniz o kadar pahalı olmasının nedeni hakkında daha fazla bilgi için, ancak, merak ediyorum.

@ Aiden Bell

Errm. Nesneye bağlıdır. Bir örneği ortak olabilir, o zaman depolama kaydetmek ... ama nesne kullanıcı tarafından değiştirilmiş olması durumunda bu bağlıdır. Sen bir şişe-boyun oluşturarak nesne / yazma okuma olacak. Daha fazla bilgi olmadan, burada teori arama zorunda olacak. - Aiden Bell 11 dakika önce

- These instances don't have data that can be altered by the user, however, they would contain data that would be used by users throughout the site.

Onu aşağı geldiğinde Temelde, ana soru:

Bellekte birden çok nesne, kullanıcı BAŞINA (her kullanıcı örneklenmiş nesneleri kendi belirledi)

VS

Tüm kullanıcılar için dosya önbelleğe tek nesneler (tüm kullanıcılar, örneğin, aynı hata işleyicisi sınıf, aynı şablonu işleyici sınıf ve aynı veritabanı kolu sınıfını aynı nesneleri kullanın)

-

Merhaba, başkasının herhangi bir fikirleri var mı?