Ne uzun yürütme süresi olarak kabul edilir?

11 Cevap php

Benim sunucu tarafı kod verimliliğini anlamaya çalışıyorum.

Hızını ölçmek için microtime(true) kullanarak, bunu çalıştırmak için komut aldı süresini hesaplamak mümkün duyuyorum.

I-.3 .5 saniye ile ortalama hızları elde ediyorum. Bu komut dosyaları kullanıcıya farklı değerler döndürmek için veritabanı sorguları bir dizi yapmak.

What is considered an efficient execution time for PHP scripts that will be run online for a website?

Ben yapılıyor tam olarak ne bağlıdır biliyorum, ama sadece bu bir veritabanından okur ve kullanıcıya değerleri döndürür standart bir komut dosyası düşünün. Google'da bakmak ve onları .15 saniye internet arama görmek ve benim senaryom bok gibi hissediyorum.

11 Cevap

YouTube'un hedef sayfa oluşturma zamanı < 100ms (Video here 07:00 @).

Sizin darboğaz muhtemelen DB sorgularını - kullanmayı deneyin

EXPLAIN select * from x...

Eğer sorguları hızlandırmak dizinleri ekleyebilirsiniz olmadığını görmek için.

edit Yukarıdaki bağlantı öldü. Yüksek ölçeklenebilirlik birincil kaynağı olarak bu videoyu YouTube'da kullanılan bir özellik mi, bu nedenle bazı ilgi olabilir: http://highscalability.com/youtube-architecture

Bu tabii ki çok öznel, site vs vs bağlıdır

Ancak, ben bir sayfa, yaklaşık 100 milisaniye daha uzun sürüyor başladığında, bu kullanıcı için bir fark gecikme var, o da "çok uzun" olabileceğini söyleyebilirim. Bu makul anında yüklemek için beklenen bir sayfa ise budur. Sayfa büyük bir veritabanında bir tam arama yaparken, bir arama sayfası ise, durum elbette farklıdır.

With PHP, most websites are generated so fast that the biggest delay is the page rendering, including all sub-requests such as images to display.
But also the visitor's internet connection speed and quality, his computer and his software are important factors.

To be generous, let's say PHP takes 20% of the total load & rendering time of a web page.
And again, I know this percentage is very approximative, but it's more for an illustrative example.

An average page loading time is around 3 seconds. (which is too much) Good quality websites should take about 1 second to be fully loaded, so PHP will be allowed 200ms (20% of 1 sec) to generate the output. So php could take up to 600ms for an "average" website.

Not: PHP yürütme süresi, hoster, ya da kaynak kodu geliştirerek değiştirerek iyileştirilebilir.

I'd say 10 times less would be ok. The number of queries doesn't matter though. There can be 20 of them, all running for 0.005 sec. The quality does matter, not the quantity. Profile your code to determine most slow parts, by adding some more microtime statements, find a most slow part and then optimize it.

Eğer sorgu mysql için kendi işlevi varsa, microtime şeyler yerleştirmek için çok kullanışlı olurdu

Belirtildiği gibi, ancak ek olarak bu dikkate bağlıdır: bir ikinci yürütme zamanı ile, bir CPU ve nerede ile bir sunucu makinesinde (ideal şartlarda) saniyede tek bir istek hizmet etmek mümkün olacak oluyor başka bir şey yok makinesi. Bir saniye başına geliyor daha fazla istekleri varsa, uzun bir kuyruk alacak ve sunucu gelen istekler daha uzun işlemek götürmek için neden dışarı düz çalışacaktır. Eğer daha az istekleri olsun eğer hala CPU kullanımına dikkat etmek gerekir. Sunucu çok önce zaten yüklü ise, katıldı gereken bir sorun olabilir.

, Kapasite ihtiyaçlarını analiz daha fazla örneğin PDQ (http://www.perfdynamics.com/Tools/PDQ.html) görmek için kullanılabilir (kuyruk teorisi) matematiksel yöntemler vardır.

Google'a karşılaştırırken, gelen istekleri büyük miktarda olması gerekir dolayısıyla bu yana, adil olmayabilir, ve 3 kat daha uzun yürütme zamanı onlar zaten daha birkaç kat daha fazla sunucu gerekir ...

Hum... I'm not sure an absolute value is quite fair here. It really depends on the hardware... When I develop locally, my developper machine runs something like 5-10 times slower than the actuel server. So if we take an absolute value, the "acceptable" range would vary depending on the hardware.

Peki, genelde ben 100 ms altında şeyleri tutmaya çalışın. Sunucu yük zaman yüksek ise, ben yürütme iz ve neyin yanlış olduğunu anlamaya çalışacağım. Ben çoğu zaman söylemek zorunda databse (dolayısıyla sorgu) darboğaz vardır. Bu konuda gerçek bir iş gerçekten önemli.

Ben sayfa yük başlatma yere 5 ila 10 saniye civarında aşana kadar Vikipedi, bir editör olarak, biz şikayetleri görmüyorum, fark. Tabii ki bu tür yavaşlık raporlama mekanizması çoğu kullanıcı için karanlık olduğunu.

Kendim-gibi seyahat bir kullanıcı web-Ben yeterince diyor bir ara ekrana yatıştırıldığında am için "sizin talebiniz. Şimdi işleme neler var. It X saniye kadar sürebilir."

Daha hızlı ve neden olması gerekiyor mu?

Cevap "Yes, because it's on the requirements list" veya "Because it takes valuable server resources" ise, SQL sorguları optimize deneyin. Belki index (es) eklemek gerekir ...

Aksi takdirde, ben bir sonraki göreve geçmek gerektiğini düşünüyorum. Birincisi, çalışır ve ikinci hakkında 0,3-0,5 saniye konuşuyor. olan fast enough for humans ve makineleri. Adam, bırak gitsin :)

Şerefe

Için Amaç < 200ms.

İnsanlar giderek> 200ms almak Tings için sabır kaybetme başlar.

Gerçekten, tüm akrabası. PHP kullanarak diğer sitelerde ile eşit kere almak için beklemeyin. PHP her sayfada yükü sıfırdan her şeyi yüklemek gerekiyor, unutmayın.

Gerçekten bunu test etmek için Apache ab kullanarak gibi, yük altında sitenizin ne kadar iyi görmek istiyorum. Siteniz bekleyebilirsiniz en yüksek trafik seviyesini işleyebilir, o zaman artık bunu optimize etmek gerekmez. Bir kullanıcı .75 saniye veya 0,25 saniye içinde eğer sayfa yükler söylemek mümkün olacak değildir.

Kendisi işletim sistemi (bağlam anahtarı) için bir çağrı yapmak zorundadır beri sayfa yükleme süresi eklemek için gidiyor microtime çağırarak, unutmayın. Bu daha hızlı ağ üzerinden gider ve istemci üzerinde hızlı bir kez işler bu yüzden daha küçük hale sayfasını optimize etmek için daha değerli olabilir.

  • Eğer benzer bir sayfa sıralama vs .. muhafaza konum sürece, Google ile komut karşılaştırmak olmaz

  • If the search merely retrieves values from a database the speed may be improved some by profiling the application and eliminating bottle-necks (to mention a few - script on page, large images, large tables, database indexes)