Ankündigung

Einklappen
Keine Ankündigung bisher.

mysql_query Grundsatzproblem

Einklappen

Neue Werbung 2019

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

  • #16
    Von wievielen Datensätzen und wievielen Hits pro Minute (...Stunde?) reden wir denn?
    Ich vermute mal "wenige" und "wenige" und damit ist die Diskussion eh akademischer Natur

    Kommentar


    • #17
      Richtig, wenige. Und richtig, die Diskussion ist dann wohl eher akademischer Natur

      Ich bin noch ziemlich am Anfang meiner Programmierkenntnisse und möchte mir gleich einen guten Stil angewöhnen. Deswegen die Frage was besser und richtig ist.

      Kommentar


      • #18
        Zitat von Schnulli
        Keinen, der nicht eh schon verbraucht wurde.
        Hab ich nicht behauptet.
        Zitat von Schnulli
        Die Zeichenkette $service2 verbraucht einfach nochmal zusätzlich Speicher und zwar immer mehr mit steigender Anzahl an Datensätzen - jedes Mal wird neuer Speicher Größe<bisherige Zeichenkette + neue Zeichenekette> angefordert, die bisherige Zeichenkette kopiert und die neue drangehängt
        Falls du meine Rechnung beachtest, ist dabei aber die Belegung des Speichers auch bei sehr vielen Datensätzen vermutlich vernachlässigbar gegenüber die Bandbreite, die bei beiden Varianten zu erwarten ist Bei 100 Datensätzen (und mit mehr sollte man bei einer solchen Liste nicht rechnen, weils dann keiner mehr versteht), kommt man wohlwollen auf 40kB, die kurzfristig belegt werden. Gegenüber üblichen Speichergrößen selbst auf Heimrechnern eher lächerlich, wie ich finde (Man beachte das "kurzfristig").
        Zitat von Schnulli
        (ok, dann wird der alte Speicher freigegeben, aber das ist sogar noch eine zusätzliche Operation mehr pro Datensatz).
        Aha Also meine $service2 Variante benötigt pro Durchlauf
        - neuen Speicher belegen für string belegen
        - string verknüpfen
        nach Durchlauf dann einmal ausgeben (die Daten sind schon im Ausgabeformat). Das wären dann (ohne tiefer zu entlauben) nx+1y Operationen (mit n Datensätzen, x als Summe der Operationen im Durchlauf und y der Operation ausserhalb des Durchlaufs).

        So, nun du: Fängt schonmal damit an, dass PHP sicherlich die Ressource in ein Array umwandeln wird. Gut, das hab ich auch, du hast es allerdings zwei mal Im Endeffekt (machen wirs kurz) kommst du auf 2nz Operationen (wegen zwei Durchläufen), wobei durch die Umoperationen der Ressource auf ausgabefähiges Format und der Auflösung des Arrays vermutlich z > x.

        Wären dann nach Adam Riese nach 100 Durchläufen:
        100x+y < 200z Deine Operationen müssten also schon halb so viele Einzeloperationen haben, damit es sich rechnet. Und das haben sie sicherlich nicht (is Konkatenation nicht sogar atomar? ^^)


        Falls ich mich in Details verhaspelt habe, verzeiht mir den ein oder anderen schmerzlichen Fehler, aber das konnte ich jetzt echt nicht so stehn lassen. Der Grundgedanke sollte klar sein


        Achja, @maeck: Weil es einer behauptet hat, bezweifle ich ernsthaft, dass hier dadurch eine allgemeine Stimmung in die Richtung heraus zu hören ist


        Im Endeffekt gibts eh für alles 100 Lösungen, also, jeder wie er will. Ich würds so zumindest nicht machen. Und damit Ende von meiner Seite Pseudo-akademische Stunde ist vorbei
        Nicht jeder Fehler ist ein Bug.

        Kommentar


        • #19
          Zitat von KingCrunch
          Zitat von Schnulli
          Keinen, der nicht eh schon verbraucht wurde.
          Hab ich nicht behauptet.
          Was hast Du denn dann überhaupt behauptet?

          Zitat von KingCrunch
          (is Konkatenation nicht sogar atomar? ^^)
          Was meinst Du in diesem Zusammenhang mit atomar?
          Mit einiger Sicherheit lautet die Antwort aber "nein".
          $a .= 'xyz';
          - Speichergröße x des "alten" Wertes hinter $a bestimmen
          - Speichergröße y des Wertes 'xyz' bestimmen
          - neue (temporäre) php Variable anlegen -> Speicher const(z) anfordern
          - Speicher x+y anfordern
          - Speicher x+y in Variablen eintragen
          - Werte kopieren
          - Zuweisung an $a
          - Garbage collection, alten Wert/Speicher freigeben
          und das mit steigendem x bei jedem Durchlauf der while Schleife.
          Den Rest spar ich mir zu kommentieren (zuviele Konjunktive als dass ich hier eine blabla-Diskussion fortführen will). Wie gesagt: rein akademischer Natur bei kleinen Werten. Also *gähn*

          Kommentar


          • #20
            [OT]
            Mittemeier würde jetzt diesen *KATSCHING-Laut* machen und auf seine dicken Ei** hinweisen.
            [/OT]



            Kommentar


            • #21
              [OT]
              Erläuterung für einen der Komiker meist nicht komisch findet und daher mit dem Bild nichts anzufangen weiss?
              [/OT]

              Kommentar

              Lädt...
              X