tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
185
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    deostift deostift ist offline Mitglied Gold
    Registriert seit
    Apr 2003
    Ort
    Stuttgart (BW)
    Beiträge
    210
    Hallo zusammen,

    ich habe in PHP eine Klasse geschrieben die Datenbestände nach Lücken durchforstet und mit NULL auffüllt. Ich führe das Skript direkt auf der Shell aus und starte es per Cron.

    Ich lasse außerdem bei einer gefundenen Datenlücke (0 Uhr Nachts gibs immer eine) eine kurze Meldung auf der Shell ausgeben und die Zeitdifferenz zur vorherigen Änderung ebenfalls.

    PROBLEM ist nun, dass die Verarbeitungszeit immer um ca. 2-3 Sekunden pro durchgesehenen Tag zunimmt, z.B. läuft das Skript über den 04.05.2007 -> 55 Sekunden, kommt es nun zum 05.05.2007 wird dieser in einer Zeit von 57 Sekunden durchgesehen und so weiter.

    Die FRAGE ist nun, wo ist die Bremse bzw. wie kann ich das feststellen. Die Systemauslastung des Linux Rechners ist immer 99,9% (mysql) und die Speicherauslastung bleibt konstant bei 2,8%.

    Da ich mit private Funktionen arbeite werden die Variablen doch jedes mal beim Verlassen der jeweiligen Funktion gelöscht oder?

    Sind die Ausgaben auf der Shell vielleicht der Grund dass der Ausgabe Buffer komplexer wird .. hm..

    ERWARTET hätte ich eben dass der Durchlauf für jeden Tag gleich lange dauert :-/

    Weiss jemand Rat oder wie ich dem Problem auf die Schliche kommen könnte?

    Grüße, Deo
     

  2. #2
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Zeig doch mal den eingesetzten Algorithmus.
     
    Markus Wulftange

  3. #3
    deostift deostift ist offline Mitglied Gold
    Registriert seit
    Apr 2003
    Ort
    Stuttgart (BW)
    Beiträge
    210
    Hallo Gumbo

    Ist mir fast schon zu peinlich - habe das Problem gefunden. Ich habe den Vergleich ob ein Datensatz existiert in der Schleife immer wie folgt durchgeführt:

    PHP-Code:
    $query "SELECT 1 FROM ".$myTable_tableName." WHERE UNIX_TIMESTAMP(".$myTable_timestampColumnName.") = ".$pointerTS." LIMIT 1"
    Damit hebel ich natürlich den Index auf den Timestamp völlig aus -.- Nun mache ich es wie folgt:

    PHP-Code:
    $date_pointerTS date("Y-m-d H:i:s"$pointerTS);
    $query "SELECT 1 FROM ".$myTable_tableName." WHERE ".$myTable_timestampColumnName." = '".$date_pointerTS."' LIMIT 1;"
    Ist nun sicherlich um Faktor 100 schneller ... MINDESTENS Ich frage mich aber an dieser Stelle, wozu die ganzen MySQL Funktionen dann gut sein sollen, wenn sie einem den Index killen und es in der Skriptsprache schneller geht.
     

Ähnliche Themen

  1. Verbrauch RAM bei XML über SAX
    Von xrax im Forum Java Grundlagen
    Antworten: 1
    Letzter Beitrag: 01.07.10, 11:02
  2. Ressourcen (CUSTOM) aus einer Ressourcen-dll auslesen
    Von DjTommy79 im Forum Visual Basic 6.0
    Antworten: 3
    Letzter Beitrag: 16.11.07, 14:32
  3. Animation läßt RAM-Verbrauch immer weiter steigen
    Von pixelmord im Forum Flash Plattform
    Antworten: 16
    Letzter Beitrag: 28.02.06, 15:52
  4. Mb Verbrauch von OnlineGames
    Von Ador im Forum Internet, DSL & Flatrate
    Antworten: 6
    Letzter Beitrag: 09.09.05, 14:37
  5. After Effects zu viel Speicherplatz Verbrauch!
    Von MasterofSLK im Forum Videoschnitt, Videotechnik & -produktion
    Antworten: 2
    Letzter Beitrag: 05.07.05, 23:53