php Performance

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • php Performance

    So, da ich nun meine MySql Datenbank recht gut hinbekommen habe, würde ich euch gerne nochmal nerven....

    Gibt es bei php auch kleinere Kniffe, wie bei MySql die indizies und Joins??

    Milé Gracie im Vorraus

    DD

  • #2
    Re: php Performance

    Original geschrieben von Dreamdancer
    Gibt es bei php auch kleinere Kniffe, wie bei MySql die indizies und Joins??
    .. um was zu machen?

    Komische Frage

    Kommentar


    • #3
      Re: Re: php Performance

      Original geschrieben von em-!x
      .. um was zu machen?
      scripte schneller !


      @traumtänzer
      guckst du: http://www.blueshoes.org/phpBench.php
      Kissolino.com

      Kommentar


      • #4
        Sehr gut, vielen Dank, das ist, obwohl ich etwas länger (wegen Englisch) gebraucht habe echt hilfreich, und nun die nächste Frage *fg*
        Bei dem Unix Top sehe ich ja die Auslastung des Systems, könnte ich mir auch die Last der einzelnen Dateien auflisten lassen? Gibts da Progs für?
        Also ich will wissen, ob Datei X mehr Rechenleistung braucht, als Datei Y, und beide werden von Datei Z aufgerufen...geht das?

        Kommentar


        • #5
          Mhn, ich kenne nur XDebug (www.xdebug.org), welches das kann, ist allerdings eine PHP Module und muss in die PHP Seite am Anfang und Ende eingebaut werden. Die Angaben dabei sind allerdings sehr viel Umpfangreicher als das was du brauchst..
          PHP Handbuch - MySQL Handbuch - PHP Einsteiger Tutorial - CSS Referenz - Browserunterstützung von CSS

          Kommentar


          • #6
            also spontan fällt mir zu php folgendes ein


            unsinnig:
            PHP-Code:
            <?php 
            for ($i 0$i 100$i++) {
                      echo 
            "somthing\n";
            }
            ?>

            sinnhaft:
            PHP-Code:
            <? for( $i = 0; $i <100; $i++) { ?>
            something
            <? } ?>

            so weiß der php, dass es diesen teil nicht parsen muss und gibt ihn einfach aus.
            wenn du in funktionen oder ähnlichem sowas nicht verwenden kannst / willst, dann empfielt sich folgendes:

            PHP-Code:
            <?
            function something () {
               for( $i = 0; $i < 100; $i++) {
                    echo 'something '.$i;
                }
            }
            ?>
            nicht " sondern ' verwenden, dann weiß php ebenso, das es den string nicht parsen muss, sondern einfach ausgeben, um variablen oder ähnliches zu verwenden must du sie dann eben per .-operator anhängen an den string.
            lg psykadeliK

            ---- schnapp ----

            Kommentar


            • #7
              PHP-Code:
              <? for( $i = 0; $i <100; $i++) { ?>
              something
              <? } ?>
              Sollte nicht irgendwo auch noch minimale lesbarkeit erhalten bleiben? die millionstel sekunden die das spart kannste auch knicken (und viel mehr ist es nicht wenn du '' anstatt "" verwendest aber die Lesbarkeit wird gerade bei großen Scripten VIEL besser als wenn du ständig zwischen php und text/html springst ...

              mfG
              CMS-X Medien- und Modelagentur

              Kommentar


              • #8
                Original geschrieben von DanielD
                Sollte nicht irgendwo auch noch minimale lesbarkeit erhalten bleiben? die millionstel sekunden die das spart kannste auch knicken (und viel mehr ist es nicht wenn du '' anstatt "" verwendest aber die Lesbarkeit wird gerade bei großen Scripten VIEL besser als wenn du ständig zwischen php und text/html springst ...

                mfG

                zum thema lesbarkeit, kann man sagen, dass es auch möglich ist,den code anders einzurücken anstatt
                PHP-Code:
                <table>
                <tr>
                <? foreach( $font as $foo) { ?>
                <td>Hier steht ein Text mit Variable <?=$foo?>.</td>
                <? } ?>
                </tr>
                </table>

                kann man auch einfach:
                PHP-Code:
                <table>
                      <tr>
                <?
                foreach ($fnort as $foo) {
                ?>
                            <td>
                                   Hier <?=$foo?>
                            </td>
                <?
                }
                ?>
                was es wie ich finde schon lesbar macht.
                mann kann den php code auch mitsamt dem html code einrücken, also auf gleiche ebene, aber da gehen die meinungen auseinander...

                'große' scripte sollte es im grunde gar nicht geben, es gibt libarys oder klassen und es gibt die scripte dazu, die dementsprechend klein gehanlten sind, da sie nur funktionen / methoden aufrufen, so wird das ganze schön übersichtlich.

                wir haben ja alle gelernt, ausgabe von logik zu trennen...

                als beispiel, mein komplettes "news" script sieht so aus:

                PHP-Code:
                <?
                 /********************************************************************
                 * author    :  Michael ****  [micha@psytrance.info]
                 * project:        http://www.psytrance.info
                 * module    :  mod_news.php
                 * date             :  01.09.2004
                 --------------------------------------------------------------------
                 ** Dieses Modul stellt die Newsfunktionalitäten zur Verfügung.
                 ** Es greift dabei auf Funktionen der lib_news.php zurück.
                 **
                 **
                 * History:
                 *     01.09.2004     Nur grober Funktionstest, gestaltung kommt später
                 *    03.09.2004    Grobe Gestaltung der Ausgabe
                 *    07.09.2004    Feinheiten ausgebessert
                 *
                 ********************************************************************/
                ?>
                <?
                    /* libary includen */
                    require_once ("lib_news.php");

                    $cat = $_GET['cat'];
                    $count = $_GET['count'];
                    
                    if( !$count ) $count = 3;            // noch aus config holen
                    if( !news_getcatid($cat) ) $cat = 1;
                    else $cat = news_getcatid($cat);
                    /* news aus der datenbank holen */
                    $news = news_getlast( $cat, $count );

                ?>
                    <table class="news_tab" align="center">
                        <tr>
                            <td colspan="2" class="news_td" id="news_heading" style="text-align: right;">
                                <span class="heading">
                                    <?=news_getcatname($cat)?>-news
                                </span>
                            </td>
                        </tr>
                    <?
                    foreach( $news as $key => $entry ) {
                    ?>
                        <tr>
                            <td class="news_td" id="news_date">
                                <?=$entry['date']?> : <?=$entry['time']?>
                            </td>
                            <td class="news_td" id="news_heading">
                                <?=$entry['heading']?>
                            </td>
                        </tr>
                        <tr>
                            <td colspan="2" class="news_td" id="news_message">
                                <?=$entry['message']?>
                                <br>
                                liebe grüße euer
                                <a href="mailto:<?=$entry['email']?>" title="Email an <?=$entry['email']?>">
                                    <?=$entry['author']?>
                                </a>

                            </td>
                        </tr>
                    <?
                    }
                    ?>
                        <tr>
                            <td colspan="2" class="news_td" id="news_heading">
                                <div align="right" style="width: 100% text-align: right;">
                                    <a href="?service=<?=$_GET['service']?>&cat=<?=news_getcatname($cat)?>&count=99" title="mehr news">mehr news</a>
                                </div>
                            </td>
                        </tr>
                    </table>
                is finde ich recht übersichtlich, und vor allem sind schnell sachen zu ändern, die man anders machen will.

                das ganze backend dazu ist in der entsprechenden lib, die auf weitere libarys zugreift die für die interne programmierung gedacht sind.

                so hat man verschiedene abstraktionsebenen zu dem was man eigentlich machen will.



                OffTopic:

                bei einem prjojekt von mir, ging es um die darstellung und das verwalten von knapp 20k bild dateien, bei knapp 600k zugriffen im monat, zahlt sich sinnhafte programmierung schon bezahlt.
                egal welche bilder man sich anschaut und was dazu alles noch berechnet werden muss (db abfragen usw) läuft das ganze script in weniger als 1 sekunde durch, da kommt es im wahrsten sinne auf wirklich jede kleinigkeit an, wenn man nicht gerade nen dual 2GHz rechner zur verfügung hat, sondern sich mit nem 1GHz/512/ide-raid RedHat systm bgnügen muss.

                für ne private kleine seite, macht das kaum einen unterschied, aber warum sollte man nicht gleich richtig lernen anstatt später wieder umzuschulen?

                Zuletzt geändert von psykadelik; 10.09.2004, 15:36.
                lg psykadeliK

                ---- schnapp ----

                Kommentar


                • #9
                  btw: man siehe verschobenen post von ihm zum thema sql.

                  das es schon einen schub gab bei dem ändern von " in '

                  :-)
                  http://www.php-resource.de/forum/sho...threadid=44041
                  lg psykadeliK

                  ---- schnapp ----

                  Kommentar

                  Lädt...
                  X