tutorials.de Buch-Aktion 05/2012
Like Tree1Danke
  • 1 Beitrag von Bratkartoffel
ERLEDIGT
NEIN
ANTWORTEN
10
ZUGRIFFE
242
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von bauchinj
    bauchinj bauchinj ist offline Mitglied Gold
    Registriert seit
    Oct 2009
    Ort
    Oberösterreich
    Beiträge
    223
    Hallo!

    Hab 2 zielmich große arrays (insgesamt bis zu 1 Million Einträge, wobei das Memory limit nie überschrieben wird). Diese will ich nun mergen und als json abspeichern. Hab bereits einige Stunden damit verbracht, den code soweit wie möglich zu optimieren und hab schon einige Sekunden runtergeschraubt. Bei array_merge_recursive häng ich jetzt aber komplett. Füge ich die neuen Array einfach ans Array dran, also nur appenden, dann benötige ich für die selbe Datenmenge etwa die Hälfte der Zeit:

    PHP-Code:
    $wholeArray[] = $newArray
    Da dies aber nicht im Sinne des Projektes ist, muss ich alle gleichen Einträge "überschreiben" bzw. ignorieren, damit im Endeffekt bei der abschließenden JSON-Speicherung Platz gespart wird (hab die Dateigröße des JSON-Files schon von 2 MB auf 26 KB reduziert.... aber eben mit der trägen Funktion)

    Hat jemand eine Idee, wie ich diese Methode umgehen kann. Hab schon an andere Script-Sprachen gedacht, weiß aber nicht recht, ob das wirklich Zeit sparen würde. Wäre dankbar für jeden Tip...

    Danke bauchinj
     

  2. #2
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Ich denke, array_merge_recursive() ist schneller als das ganze von Hand zusammenzusetzen.
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  3. #3
    Avatar von bauchinj
    bauchinj bauchinj ist offline Mitglied Gold
    Registriert seit
    Oct 2009
    Ort
    Oberösterreich
    Beiträge
    223
    Mit einer anderen script-sprache glaubst du nicht, dass die Geschwindigkeit erhöhen kann?
     

  4. #4
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Hab keine passenden Erfahrungen mit anderen Scriptsprachen. Darum kann ich dazu keine Meinung haben. Sorry.
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  5. #5
    Avatar von bauchinj
    bauchinj bauchinj ist offline Mitglied Gold
    Registriert seit
    Oct 2009
    Ort
    Oberösterreich
    Beiträge
    223
    OK, trotzdem Danke. Vielleicht hat ja jemand anderes passende Erfahrungen ?!
     

  6. #6
    Avatar von Bratkartoffel
    Bratkartoffel Bratkartoffel ist offline gebratene Kartoffel
    tutorials.de Premium-User
    Registriert seit
    Jun 2007
    Ort
    Passau (Niederbayern)
    Beiträge
    1.394
    Hi,

    könnte hier noch Perl vorschlagen, aber das hat auch wenig Sinn wenn du damit noch nichts gemacht hat. Ich würde hier aber versuchen, eine Art Hashmap zu verwenden. Diese sind recht schnell im Zugriff auf die Elemente und es gibt auch keine doppelten Schlüssel.

    Gruß
    BK
     
    Über eine gute Bewertung freut sich jeder ;)
    Bitte erledigte Threads als "Erledigt" markieren.

    "Though a program be but three lines long, someday it will have to be maintained.''
    -- Geoffrey James, "The Tao of Programming"

  7. #7
    Avatar von bauchinj
    bauchinj bauchinj ist offline Mitglied Gold
    Registriert seit
    Oct 2009
    Ort
    Oberösterreich
    Beiträge
    223
    Danke Bratkartoffel!
    Hab kurz ein bisschen in Perl eingelesen, hab recht gute Tutorials gefunden und bin fasziniert, wie schnell diese Sprache eine 4,8MB große Datei ausliest....

    Zum Thema Hashmap bin ich bis dato aber leider noch nicht ganz schlau geworden. Vielleicht hast du einen (oder mehrere) Links für mich - wäre sehr dankbar dafür!

    mfg
     

  8. #8
    Avatar von Bratkartoffel
    Bratkartoffel Bratkartoffel ist offline gebratene Kartoffel
    tutorials.de Premium-User
    Registriert seit
    Jun 2007
    Ort
    Passau (Niederbayern)
    Beiträge
    1.394
    Hi,

    habe zwar selber noch nicht allzu viel in Perl umgesetzt, aber soweit ich das bei Google richtig interpretiert habe, solltest du es in etwa so machen können:

    Code perl:
    1
    2
    3
    4
    5
    6
    7
    8
    
    # Create
    my %myhash=();
     
    # Populate
    $myhash{ 'key' } = 'value'; # hash
     
    # Get
    $value = $myhash{ 'key' };

    Hier sollte etwas mehr stehen

    Gruß
    BK
     
    Über eine gute Bewertung freut sich jeder ;)
    Bitte erledigte Threads als "Erledigt" markieren.

    "Though a program be but three lines long, someday it will have to be maintained.''
    -- Geoffrey James, "The Tao of Programming"

  9. #9
    Avatar von bauchinj
    bauchinj bauchinj ist offline Mitglied Gold
    Registriert seit
    Oct 2009
    Ort
    Oberösterreich
    Beiträge
    223
    Kann ich diesen Hash dann auch in eine Datei speichern und immer wieder schnell auslesen?
     

  10. #10
    Avatar von Yaslaw
    Yaslaw Yaslaw ist offline n/a
    tutorials.de Moderator
    Registriert seit
    Dec 2007
    Ort
    Winterthur(CH)
    Beiträge
    5.205
    Wenn du mit Pearl arbeiten willst, empfehle ich dir einen Neuen Thread zu eröffnen der dann auch im richtigen Forum steht, damit die Pearl-Spezialisten lesen.
    Geändert von Yaslaw (16.11.10 um 11:45 Uhr)
     
    ---------------------------------------------------------------------------------------------------
    item: Ich habe es mir aus gesundheitlichen Gründen abgewöhnt unformatierten Code zu lesen (Auch SQL-Statements kann man formatieren!)
    item: Tutorial: [PHP][MySQL] Debug Queries
    item: Schreibt mir keine PN mit Fragen die im Forum beantwortet werden können - ich mache kein persönliches coaching
    item: Bitte zur besseren Lesbarkeit PHP-Code in [PHP]...[/PHP], SQL in [SQL]...[/SQL], Visual Basic in [VB]...[/VB] etc. schreiben

  11. #11
    Avatar von Bratkartoffel
    Bratkartoffel Bratkartoffel ist offline gebratene Kartoffel
    tutorials.de Premium-User
    Registriert seit
    Jun 2007
    Ort
    Passau (Niederbayern)
    Beiträge
    1.394
    Hallo,

    wie meinst du das?
    HashTables sind vergleichbar mit assoziativen Array, du greifst auf einen Wert an Hand eines Schlüssels zu. Stell es dir wie eine zweispaltige Tabelle vor

    Stimme yaslav zu, wende dich an die Profis, mein Wissen in Perl ist schnell am Ende

    Gruß
    BK
    bauchinj bedankt sich. 
    Über eine gute Bewertung freut sich jeder ;)
    Bitte erledigte Threads als "Erledigt" markieren.

    "Though a program be but three lines long, someday it will have to be maintained.''
    -- Geoffrey James, "The Tao of Programming"

Ähnliche Themen

  1. Antworten: 4
    Letzter Beitrag: 27.02.09, 10:40
  2. Optimierung
    Von son gohan im Forum HTML & XHTML
    Antworten: 8
    Letzter Beitrag: 11.03.05, 13:28
  3. Optimierung im IE....
    Von Garo_TheOne im Forum HTML & XHTML
    Antworten: 0
    Letzter Beitrag: 16.12.04, 00:41
  4. Optimierung
    Von lacosaa im Forum Flash Plattform
    Antworten: 3
    Letzter Beitrag: 24.01.04, 00:49
  5. Pc-optimierung****?
    Von alexmayer2000 im Forum Microsoft Windows
    Antworten: 3
    Letzter Beitrag: 19.09.01, 23:48

Stichworte