[]
PHP sayfa oluşturma hızı. Performans?
php de çok sayıda sql bağlantısı yaptığım bir site kodlamaktayım.
fazla sayıda kullanıcıya erişmeyi planladığım için performans önemli.
sayfalar maximum 0.1 sn de falan yükleniyor.
i7 işlemcili bir bilgisayar kullanıyorum.
kullanacağım sunucu muhtemelen bu kadar iyi işlemcili olmaz. maximum 0.3-0.4 sn lerde falan açsa mesela. Bu kötü bir rakam mı?
Mesela normal bir phpBB,vBluetin ve ya wordpress'in sunucularda sayfa oluşturma hızları nasıl? Bilgi sahibi bi yazar bilgilendirirse şahane olur.
İlk defa bu denli büyük bir proje içerisinde olduğum için performans rakamları sunucuya ve sunucu masrafıma nasıl yansıyacak bilemiyorum. Bi bilgi verebilirseniz çok müteşekkir olacağım.
not: oluşturma hızını microtime() ile ölçtüm.
fazla sayıda kullanıcıya erişmeyi planladığım için performans önemli.
sayfalar maximum 0.1 sn de falan yükleniyor.
i7 işlemcili bir bilgisayar kullanıyorum.
kullanacağım sunucu muhtemelen bu kadar iyi işlemcili olmaz. maximum 0.3-0.4 sn lerde falan açsa mesela. Bu kötü bir rakam mı?
Mesela normal bir phpBB,vBluetin ve ya wordpress'in sunucularda sayfa oluşturma hızları nasıl? Bilgi sahibi bi yazar bilgilendirirse şahane olur.
İlk defa bu denli büyük bir proje içerisinde olduğum için performans rakamları sunucuya ve sunucu masrafıma nasıl yansıyacak bilemiyorum. Bi bilgi verebilirseniz çok müteşekkir olacağım.
not: oluşturma hızını microtime() ile ölçtüm.
ölçüm şeklin doğru ancak "sayfanın açılması" sürecinin en kısa adımı. chrome developer tools'da network sekmesinde bir sayfanın yüklenme adımlarını ve aldığı süreleri takip edebilirsin. oradaki çubuklar arasındaki boşluklar sunucudaki işlem süresidir ve genelde en kısa olanlardır.
yani, kullanıcı isteği gönderecek, network katmanından bu istek sunucuya gelecek, sunucu işleyecek ve aynı soketten tekrar geri çevirecek. ve bunu sayfadaki her resource (css, js, resimler vb.) için ayrı ayrı yapacak.
sürecin en uzun süren aşamaları genellikle network transferleri olur. bunun için de request sayısını azaltmak gerekir. yani css ve js dosyalarını minify+bundle yapmalısın. ancak bunu canlıya geçerken yapman şart ve özellikle javascript dosyaları için source map'leri oluşturman gerekir. yoksa debug edemezsin.
yani, kullanıcı isteği gönderecek, network katmanından bu istek sunucuya gelecek, sunucu işleyecek ve aynı soketten tekrar geri çevirecek. ve bunu sayfadaki her resource (css, js, resimler vb.) için ayrı ayrı yapacak.
sürecin en uzun süren aşamaları genellikle network transferleri olur. bunun için de request sayısını azaltmak gerekir. yani css ve js dosyalarını minify+bundle yapmalısın. ancak bunu canlıya geçerken yapman şart ve özellikle javascript dosyaları için source map'leri oluşturman gerekir. yoksa debug edemezsin.
- screamshot (20.03.15 08:20:52)
@screamshot front end tarafini anlatmis, ben de back-end tarafinda genel olarak birsey ekleyeyim. Bu tarz database sorgusunun cok yüksek oldugu durumlarda en büyük zaman kaybina "mysql connection" adimi neden oluyor. Cok fazla "connection" kuruyorsan ve islemi tek sorguda yapmiyorsan "connection pool" yapman gerekli. (detaya giremiyorum maalesef aslen javaciyim, php de detaylari bilmiyorum). Ikinci adim olarak da mysql sorgusunu hizlandirmak icin "mysql query cache" yapman lazim. Bunlara ek olarak da verilerinde cok fazla degisiklik olmuyorsa ayrica php tarafinda da bir "cache" mekanizmasi yazmalisin.
Bu sekilde http isteginin servera düstügü andan istegin mysql sorgusu haline getirilmesi ve sonuclarin "http response" olarak tekrar "client" tarafina dönülmesine kadar kismi optimize etmis olabilirsin.
Bu sekilde http isteginin servera düstügü andan istegin mysql sorgusu haline getirilmesi ve sonuclarin "http response" olarak tekrar "client" tarafina dönülmesine kadar kismi optimize etmis olabilirsin.
- emrahday (20.03.15 10:06:03)
1