Optimize PHP dize birleştirme [kapalı]

5 Cevap php

Bu yazı gerçekten bir soru değildir, ama bazı kodlama ipuçlarını paylaşmak için yararlı olabilir.

İşte sizinle paylaşmak istiyorum biridir. Ben aynı şeyi yapmak 4 örnekleri göstermek için gidiyorum. Ama sadece son bir iyi olacaktır.

$foo = 'John SMITH';

echo "Hello $foo, welcome on my website.";

echo "Hello " . $foo . " welcome on my website.";

echo 'Hello ' . $foo . ' welcome on my website.';

echo 'Hello ', $foo , ' welcome on my website.';

I'm sure you all know that echo '$foo' won't work, but still, I'm pretty sure that you use double quote to display a simple information. This is bad.

Peki hadi başlayalım: İlki kötü (yanı sıra ikinci) (Ben bir değişken demek) yapılması gereken bir değişiklik aramak için dizeyi taramak için çift tırnak güçleri kullanarak php çünkü.

Php yapmak için hiçbir değiştirme beri ikinci bir, biraz daha iyidir.

Dil o sadece bir işlem yapmadan metni göndermek bilir ki üçüncü kimse, çünkü basit alıntı iyidir, ama "kötü" bir şey birleştirme kullanımı (ikinci örnekteki gibi nokta operatörü,) 'dir.

Son basit bir alıntı, ve koma operatörünü kullanır. Neden bu çözüm daha iyi?

Üçüncü çözümü kullanma Eh, ne olur?

php creates a string, containing "Hello ", then it has to enlarge it, to put the content of foo variable ("John SMITH"), and then, enlarge it again to put " Welcome on my website." sentence. Then, echo can use this, to ... echo it :)

Whereas in the 4th one, the only thing to do for echo is to send "Hello ", then $foo's content, then " Welcome on my website." to the output, and that is all! Because echo just has to send the text, without creating a string that will have to be enlarged to contain the whole text (that would have been concave, which has to be grown (because of concatenation) and then displayed.

Ben bazı kriterler geri bulmak ve buraya koymak için çalışacağım.

Yorum veya tepki, ve benim İngilizce mazeret ücretsiz Fell, bu benim anadilim değil.

5 Cevap

It is completely irrelevant which solution performs better. Bilgisayarlar hızlı yanan ve CPU döngüsü bu nedenle milisaniyelik iyileştirmeleri anlamsız, ucuz. Tek gerçek optimizasyon you daha hızlı kodunu okumanıza yardımcı olur, böylece değerli zamandan tasarruf ve aslında çalışma kodu teslim odaklanabilirsiniz biridir.

Bir küçük oluşturma (ama yine de :) emme kriter ve aşağıdaki sonuçları verir çalışıyor:

0.0022029876709
0.00211095809937
0.00213599205017
0.00551700592041

Son yöntem açıkça yavaş olduğunu.

Optimizasyonu üç kural vardır:

  1. Yine Optimize etmeyin.
  2. Yine Optimize etmeyin.
  3. Yine Optimize etmeyin.

Sadece yavaşlamalar nerede öğrendikten sonra, yapmanız SON şey için sakla.

Aksi halde, tabiri caizse, arabayı atın önüne koyarak olacak.

Uygulamada, bu hemen hemen her zaman birincil darboğaz olacak değildir.

http://www.procata.com/blog/archives/2005/03/08/microbenchmarks-of-single-and-double-qouting/

Bu değmez. Eğer% 30 oranında dize birleştirme daha hızlı yapmak için yönetmek bile, tüm uygulama için; bazı 0,1% hızlanmayı (ihmal edilebilir bir hıza anlamıyla bunu yapmayız) karşılaşabilirsiniz. Çoğu zaman DB sorguları veya daha sofistike mantığı içinde harcanacak.