• 06-12-2009, 14:54:12
    #1
    Merhabalar, kullandığım rastgele resim eklentisi sunucumu yoruyor, kapatınca loadlar da düşüş oluyor. Acaba kodu nasıl optimize edebiliriz? Rastgele resimlerin değişmesi için süremi koymalıyım, yoksa ziyaretçiye göre mi gösterim yapmalıyım, php konusunda pek bilgim yok nasıl yapmalıyım? Sitemde zaten 1 saatlik cache var, 1 saatte bir çalışıyor kod fakat, her alt sayfaya girişte ilk cache e almada kod bir daha çalışıyor.
  • 06-12-2009, 15:09:37
    #2
    Mantık olarak düşündügünde rastgele resim için herseferinde dizini okumak gereksiz. Diyelim 5000 bin resim var her açılışta bunları okuyup diziye atıp karıştırmak load'ı artıracaktır.
    Az yoracak şekilde yapmak için db 'den verileri RND olarak çekip basmak iyi bir yöntemdir.
  • 06-12-2009, 15:19:12
    #3
    STI adlı üyeden alıntı: mesajı görüntüle
    Mantık olarak düşündügünde rastgele resim için herseferinde dizini okumak gereksiz. Diyelim 5000 bin resim var her açılışta bunları okuyup diziye atıp karıştırmak load'ı artıracaktır.
    Az yoracak şekilde yapmak için db 'den verileri RND olarak çekip basmak iyi bir yöntemdir.
    Database den çekmek klasörü taratmaktan daha az yorar sanırsam dediğiniz gibi, hazır scripti vardır bir araştiriyim
  • 06-12-2009, 15:41:08
    #4
    Üyeliği durduruldu
    EmreUnan adlı üyeden alıntı: mesajı görüntüle
    Database den çekmek klasörü taratmaktan daha az yorar sanırsam dediğiniz gibi, hazır scripti vardır bir araştiriyim
    klasör peryodik okuyup ona göre db yi update edecek şekilde düzenlerseniz sorun çözülür hocam. klasörü okumasi çok daha yavaş bir işlemdir. Birde hepsini diziye atiyorsunuz bu hafiza kullaniminida etkilemiş olur
  • 06-12-2009, 15:46:26
    #5
    sdemirkeser adlı üyeden alıntı: mesajı görüntüle
    klasör peryodik okuyup ona göre db yi update edecek şekilde düzenlerseniz sorun çözülür hocam. klasörü okumasi çok daha yavaş bir işlemdir. Birde hepsini diziye atiyorsunuz bu hafiza kullaniminida etkilemiş olur
    oke anladım teşekkür ederim de, db den mi yapiyim, yoksa php içine $degisken leri koyup oradan rand mı yapiyim
  • 06-12-2009, 15:49:52
    #6
    Üyeliği durduruldu
    EmreUnan adlı üyeden alıntı: mesajı görüntüle
    oke anladım teşekkür ederim de, db den mi yapiyim, yoksa php içine $degisken leri koyup oradan rand mı yapiyim
    sayi fazla ise kesinlikle değişkenle yapmayin hocam.
  • 06-12-2009, 15:51:21
    #7
    sdemirkeser adlı üyeden alıntı: mesajı görüntüle
    sayi fazla ise kesinlikle değişkenle yapmayin hocam.
    oke, bitirince kodumu paylaşiyim, oradan yorumlarsanız sevinirim optimasyonu teşekkür ederim
  • 06-12-2009, 16:30:10
    #8
    Arkadaşlar Çalıştıramadım
    Sitem wp ve temaya eklediğim kod: <img src=<?php rastgele_resim(); ?> width="170" height="245" >

    Script
    <?php
    /*
    Plugin Name: Rastgele Resim
    Plugin URI: http://www.fenertribun.org
    Description: Rastgele resim yakuterden geliştirilmiştir
    Version: 1.0
    Author: Yakuter-emreunan
    Author URI: http://www.fenertribun.org
    */
    function rastgele_resim($resim_sayisi="1") {
    
        global $wpdb;	
     $sorgu = "SELECT resim FROM $wpdb->rastgeleresim ORDER BY rand()";
        $sonuclar = $wpdb->get_results($sorgu);
        foreach ($sonuclar as $sonuc) {
          $cikti .= "$sonuc->resim";
        }
        echo $cikti;
    }
    ?>
    Sql
    Alıntı
    -- Tablo yapısı: `wp_rastgeleresim`
    --

    CREATE TABLE IF NOT EXISTS `wp_rastgeleresim` (
    `id` bigint(20) NOT NULL auto_increment,
    `resim` text character set utf8 collate utf8_turkish_ci NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=29 ;

    --
    -- Tablo döküm verisi `wp_rastgeleresim`
    --

    INSERT INTO `wp_rastgeleresim` (`id`, `resim`) VALUES
    (1, 'http://www.fenertribun.org/rastgele_resimler/AbdulkerimDurmaz.jpg'),
    (2, 'http://www.fenertribun.org/rastgele_resimler/AliGunes.jpg'),
    (3, 'http://www.fenertribun.org/rastgele_resimler/AliKemalDenizci.jpg'),
    (4, 'http://www.fenertribun.org/rastgele_resimler/AugustineOkocha.jpg'),
    (5, 'http://www.fenertribun.org/rastgele_resimler/AugustineOkocha2.jpg'),
    (6, 'http://www.fenertribun.org/rastgele_resimler/AykutKocaman.jpg'),
    (7, 'http://www.fenertribun.org/rastgele_resimler/AykutKocaman2.jpg'),
    (8, 'http://www.fenertribun.org/rastgele_resimler/BahtiyarYorulmaz.jpg'),
    (11, 'http://www.fenertribun.org/rastgele_resimler/BrianSteenNielsen2.jpg'),
    (10, 'http://www.fenertribun.org/rastgele_resimler/BrianSteenNielsen.jpg'),
    (9, 'http://www.fenertribun.org/rastgele_resimler/BasriDirimlili.jpg'),
    (12, 'http://www.fenertribun.org/rastgele_resimler/BrianSteenNielsen3.jpg'),
    (13, 'http://www.fenertribun.org/rastgele_resimler/BulentUygun.jpg'),
    (14, 'http://www.fenertribun.org/rastgele_resimler/CanBartu.jpg'),
    (15, 'http://www.fenertribun.org/rastgele_resimler/CanBartu2.jpg'),
    (16, 'http://www.fenertribun.org/rastgele_resimler/CemPamiroglu2.jpg'),
    (17, 'http://www.fenertribun.org/rastgele_resimler/CemPamiroglu.jpg'),
    (18, 'http://www.fenertribun.org/rastgele_resimler/CemilTuran.jpg'),
    (19, 'http://www.fenertribun.org/rastgele_resimler/CemilTuran2.jpg'),
    (20, 'http://www.fenertribun.org/rastgele_resimler/CemilTuran3.jpg'),
    (21, 'http://www.fenertribun.org/rastgele_resimler/ChristophDaum.jpg'),
    (22, 'http://www.fenertribun.org/rastgele_resimler/DurmusColak.jpg'),
    (23, 'http://www.fenertribun.org/rastgele_resimler/DusanPesic.jpg'),
    (24, 'http://www.fenertribun.org/rastgele_resimler/DusanPesic2.jpg'),
    (25, 'http://www.fenertribun.org/rastgele_resimler/ElvirBolic.jpg'),
    (26, 'http://www.fenertribun.org/rastgele_resimler/EnginIpekoglu.jpg'),
    (27, 'http://www.fenertribun.org/rastgele_resimler/EnginVerel.jpg'),
    (28, 'http://www.fenertribun.org/rastgele_resimler/ErdoganArica.jpg');
  • 06-12-2009, 16:36:24
    #9
    Üyeliği durduruldu
    Bunları eğerki MYSQL veritabanına eklettirmişsen çok şanslısın..

    MYSQL'dan verileri rastgele çektirmek, dizindeki dosyaları çekmeye oranla daha az kasar siteni..

    MYSQL'a ekliosan verileri:

    Alıntı
    SELECT * FROM tablo ORDER BY rand()
    fonksiyonunu kullanabilirsin.