• 15-02-2008, 19:10:15
    #1
    Bir script yazıyorum ve yazdıktan sonra aa bu niye bu kadar yavaş diye kalmak istemiyorum. Sorularım php performansı ile ilgili;
    *database 'den bilgi çekerken anahtar olarak id kullanmak yerine başka bir kolon -örneğin link (link sayısal bir değer değil, text)- kullanırsak daha mı yavaş olur?
    *scriptte eğer içiçe birçok klasör olursa bu çalışmada yavaşlık yaratır mı? (karmaşık olmaması ve çalışma mantığı açısından birçok klasör gerekiyor)
    *3 php dosyasını bir php dosyasına include edersem mi, yoksa o 3 dosyanın içeriğini bir dosyaya yapıştırırsam mı daha hızlı çalışır?
    *php 'yi yavaşlatan şeyler nelerdir? Örneğin şunun yerine bu kullanım daha hızlı olur gibi söylerseniz sevinirim.
  • 16-02-2008, 00:45:05
    #2
    fazla kod yawaşlatır kodları azalt değişkenlere ata aynı yerde kullandığın şeyleri include et function lardanda yararlanabilisin aynı şeylerde
  • 16-02-2008, 03:24:19
    #3
    birincil olarak atadagın kolonda arama yapmak her zmn daha hızlıdır. birincilde genelde id olur. diger kolonlarda arama yapacaksan eşsiz index ya da fulltext olarak tanımlanmasına baglı olarak performans artışı saglayabilirsin. en basitinden google id ye göre arama yapmıyor ama bizim bir siteyi açma hızımızdan daha kısa zaman içinde sonuç döndürüyor. id ye göre arama yapmadım, sistem yaramaz demeyelim. Ama arama hızını optimize edebiliriz. Ama uygun tanımları yapman lazım.

    iç içe klasör sistemi yavaşlatır. upload sistemin var diyelim. Bu dosyaları veritabanında saklamak daha dogru bir davranıştır. Bu hızını artırır. Ama aşırı sayıda dosya olmayan bir sistemde buna gerek duyacagını zannetmiyorum. veritabanına dosya yazarken güvenlik işlemlerine dikkat etmelisin.

    3 dosyayı 4. dosyanın içine include edecegin yerine dosyaları o kodları tek bir dosyada birleştirirsen daha hızlı çalışır.

    Değişkenleri birbirine dönüştürürken cast işlemlerini kullan. örnek:
    <?
    $a='12a'; 
    $b=(int)$b;
    echo $b; // 12
    ?>
    (int) bir cast işlemidir. yukarıda intval kullanabilirdik ama yerine cast kullandım. cast işlemleri daha hızlıdır.

    kaç kere dönecegini bildigin döngülerde her tur için kodu kendin yazarsan daha hızlı olur.
    for döngüsü 2 kere dönecekse ve bunu biliyorsan kodu kendin yaz. 2 kere kodu kendin yaz.

    if lerde else kolu olmayabilir ama kosulu sagladıgında yapacagı işlem boş olmaz. hem dogru hem de yanlış kolunda yaptıgın işlemleri if dışında yap.

    Az kod hızlı kod demek degildir. Bunu aklınızın bir köşesine yazmalısınız. Bu genel olarak doğrudur ama her zmn degil.
    ve belki de en çok hızlandıracak şey dosyalarının compile edilmiş hallerini kullan. Bunun için ioncube,zend vs kullanabilirsin. Kodunda hiçbir değişiklik yapmadan 6-7 kat hızlı çalışmasını saglarsın ve dosyalarının kodlarını kimse göremez. geri dönüşü de yoktur. (yoktur demek yanlış biri çıkar yapar ama öyle herkes çeviremez. ) ama bu kodların çalışması için hostta özel modüller olması gerekir.
    veritabanından bilgileri alırken mümkün olan en az bilgiyi çekmeye çalış. sadece yazıların başlıgına ihtiyaç duydugun bir yerde veritabanından içerigini çekmek kaynak israfı olur.
    Şimdilik bu kadar.
  • 16-02-2008, 15:27:51
    #4
    Üyeliği durduruldu
    phpde hızı genelde etkileyen en büyük faktör serverdır. Serverın iyi ise kod fazlalığından oluşan oluşan yavaşlamayı ziyaretçi hissetmeyecektir...
    Çok fazla sql sorgusu kullanma büyük döngüler yerine sınırlı döngüler kullanıp sayfalama yap ve tema konusundada aşırı grafiğe kaçma... Çok fazla grafik olan temalarda yavaş açılıyor... tema kullanırken css tema gif veya png resimlerini kullan..
    Gerisinde php zaten hızlı
  • 16-02-2008, 23:11:34
    #5
    alperer dediklerinin çogu php ile ilgili degil. serverın hızı tabi ki önemli ama daha iyi kod yazarsan aynı serverda daha hızlı çalışan bir kod elde edersin. amaç php nin kendi dinamikleri ile maksimum verim almak.
    10000 satırdan oluşan bir servis oluşturdugunda kodu optimize bir şekilde yazılıp yazılmamasının artılarını ya da eksilerini görürsün. Bu kadar koda bile gerek yok aslında. Çok daha küçük bir programda bile farkedebilir.
    birkaç satır kodda optimize yapsan kimse zaten bir şey anlamayacaktır. Şöyle bir örnek veriyim:Okulda bir ödevde benim programımla arkadaşımın yazdıgı programı karşılaştırmıştık. Benimki anında cevap verirken arkadaşımın yaptıgı program işlemi 30 sn de tamamlamaktaydı. Biz ödevi Pascal'da yaptık. Dili önemli degil aslında, sadece optimize edilmiş bir sistemin farkını göstermek istemiştim. Programdaki en büyük fark benim for döngümün daha düşük olmasıydı. Aynısı php içinde geçerlidir. Döngüleri (while,for) en az şekilde döndürürsen hatta yazabiliyorsan döngüsüz yazarsan hızın artar.
  • 17-02-2008, 15:10:44
    #6
    Bilgiler için teşekkürler.
  • 17-02-2008, 15:46:40
    #7
    select * tarzındaki fazla sorgular

    msql_close kullanmamalar

    gereksiz filtrelemeler

    referer vb gibi log tutmalar