Andavos: Prozessorauslastung von 1x1 Bild

Hallo,
also ich möchte einen Counterdienst programmieren. Der User bindet dafür einen 1x1 großes, weißes Bild ein.

Ich wollte euch mal fragen wie dort die Prozessorauslastung auf dem Server ist.

Also wenn das Bild z.B. (100 Leute, 200 Seitenaufrufe) 20 000 mal am Tag erstellt wird. Wird da der Server abkacken, oder ist dieses generieren nicht viel aufwendiger als normaler PHP Code??

Evt. hat jemand Erfahrung damit.

Es handelt sich dabei um einen neueren Server, also bitte nicht die Argumente das dort ein  Intel II abkackt ;).

Es wird die GD Library benutzt.
MFG
Andavos

  1. hi,

    also ich möchte einen Counterdienst programmieren. Der User bindet dafür einen 1x1 großes, weißes Bild ein.

    Ich wollte euch mal fragen wie dort die Prozessorauslastung auf dem Server ist.

    Also wenn das Bild z.B. (100 Leute, 200 Seitenaufrufe) 20 000 mal am Tag erstellt wird. Wird da der Server abkacken, oder ist dieses generieren nicht viel aufwendiger als normaler PHP Code??

    aus welchem grund willst du ein

    1x1 großes, weißes Bild

    ständig neu generieren?

    wenn das bild sich nicht ändert, reicht es doch vollkommen aus, ein bereits auf platte vorhandenes bild auszulesen und auszugeben (Content-type header, gefolgt von den bilddaten per readfile()).

    gruß,
    wahsaga

    --
    "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
    1. Hallo,
      das ist ne gute Idee, danke dir.

      Daran habe ich nocht gar nicht gedacht ^^

      MFG
      Andavos

  2. Huhu Andavos

    Du kannst die Grafik auch kodiert im Skript speichern und dann direkt ausliefern.

    Das hier wäre z.B. ein transparentes 1x1 Pixel.

    $transgif = 'R0lGODlhAQABAJEAAAAAAP///////wAAACH5BAUUAAIALAAAAAABAAEAAAICVAEAOw==';
    header ('Content-type: image/gif');

    echo base64_decode($transgif);

    Viele Grüße

    lulu

    --
    bythewaythewebsuxgoofflineandenjoytheday
    1. Hi!

      Du kannst die Grafik auch kodiert im Skript speichern und dann direkt ausliefern.

      Aber vermutlich soll das Script noch etwas mehr machen, z.B. erst einen Eintrag in eine Datenbank schreiben, bevor das Bild ausgeliefert wird.
      Es geht ja hier um einen Counter...
      Insofern wird die Lösung hier nicht reichen...

      Gruß, rob

      1. hi,

        Aber vermutlich soll das Script noch etwas mehr machen, z.B. erst einen Eintrag in eine Datenbank schreiben, bevor das Bild ausgeliefert wird.
        Es geht ja hier um einen Counter...

        ach nee, echt?

        gruß,
        wahsaga

        --
        "Look, that's why there's rules, understand? So that you _think_ before you break 'em."
      2. Hallo rob,

        Aber vermutlich soll das Script noch etwas mehr machen, z.B. erst einen Eintrag in eine Datenbank schreiben, bevor das Bild ausgeliefert wird.

        benötigt man tatsächlich eine Datenbank für den Counter? Geht doch auch mit CGI oder irre ich mich da?

        Viele Grüße,
        coolblue

        --

        never say oops after you submitted a job :-)
        _der_Ton_macht_die_Musik_!!!_
        1. Hallo rob,

          Aber vermutlich soll das Script noch etwas mehr machen, z.B. erst einen Eintrag in eine Datenbank schreiben, bevor das Bild ausgeliefert wird.

          benötigt man tatsächlich eine Datenbank für den Counter? Geht doch auch mit CGI oder irre ich mich da?

          Was hat CGI mit einer DB zu tun?

          Gruß
          Reiner

        2. Hallo,
          jo also der speichert erst ein paar Daten in der Datenbank ab.

          Ich möchte das halt jeder User den Counter recht einfach einbinden kann und dennoch ne gute Statistik bekommt.

          Kein Bild auszugeben und es per JavaScript laden zu lassen würde 2 Probleme mitbringen:
          -Leute ohne JavaScript werden nicht erfasst
          -Die Bots führen i.d.R. keinen JavaScript aus, darum kann man nicht sehen wann der Bot zum letzen mal da war.

          Der Script:

          <?php
          //speichern der Daten

          $image = @imagecreate(1,1) OR die("ups");
          $farbe_body=imagecolorallocate($image,255,255,255);
          header("Content-Type: image/gif");
          imagegif($image,"",100);

          ?>

          MFG
          Andavos

          1. Hallo
            also die Idee mit dem festen Bild ist genial.

            <?php
            //MySQL Speicherung der Daten

            $transgif = 'R0lGODlhAQABAJEAAAAAAP///////wAAACH5BAUUAAIALAAAAAABAAEAAAICVAEAOw==';
            header ('Content-type: image/gif');

            echo base64_decode($transgif);

            ?>

            So wird dennoch ein 1x1 großes Pix ausgegen.

            Kennt jemand eine Seite wo man evt. bereits vorhandene Bilder in den Base64 Code umwandeln kann, so das man die später ausgeben kann?

            MFG
            Andavos

            1. Hallo, Andavos!

              Kennt jemand eine Seite wo man evt. bereits vorhandene Bilder in den Base64 Code umwandeln kann, so das man die später ausgeben kann?

              < http://php.holtsmark.no/base64img/>

              freundl. Grüsse aus Berlin, Raik

            2. Huhu Andavos

              Kennt jemand eine Seite wo man evt. bereits vorhandene Bilder in den Base64 Code umwandeln kann, so das man die später ausgeben kann?

              Ein simples Formular findest Du z.B. hier
              http://simplecontent.net/snippets/phps/base64_image_1.php

              Viele Grüße

              lulu

              --
              bythewaythewebsuxgoofflineandenjoytheday
  3. 你好 Andavos,

    also ich möchte einen Counterdienst programmieren. Der User bindet dafür
    einen 1x1 großes, weißes Bild ein.

    Weis ist aber doof :) Was, wenn ich einen schwarzen Hintergrund habe?

    Ich wollte euch mal fragen wie dort die Prozessorauslastung auf dem
    Server ist.

    Das Erstellen des Bildes duerfte quasi keinen Aufwand bedeuten, zumal du
    das ja, wie von lulu vorgeschlagen, einfach fest speichern kannst.

    Interessanter ist: wie speicherst du die Daten? Das duerfte uU viel teurer
    werden. Staendige Schreibzugriffe auf eine Datenbank als Beispiel bremsen
    diese ziemlich aus...

    So kann man auf jedenfall nicht viel sagen. Du gibst zu wenig Informationen.

    再见,
     CK

    --
    Q: God, root, what's the difference?
    A: God is merciful.
    http://wwwtech.de/
  4. Also wenn das Bild z.B. (100 Leute, 200 Seitenaufrufe) 20 000 mal am Tag erstellt wird. Wird da der Server abkacken, oder ist dieses generieren nicht viel aufwendiger als normaler PHP Code??

    Wie niedlich, 20.000 Aufrufe ;-) Wenn Du einen Server haben willst, den das an einem Tag überfordert, nimm einen Taschenrechner aus den 70ern dafür!

    1. Hallo,
      falls die Daten per PHP _Script_ mit RSA verschlüsselt werden überforder er das den bestimmt.

      Meiner und diverse Algorithmen aus dem Internet rufen bei mir eine Prozssorauslastung von 100% auf einem AMD 1,7 GHz, und dabei wird ein 5 Zeichen langer String ver/entschlüsselt.
      Das dauert dann ca. 1,5 Sekunden an.

      Tja 2048Byte Zahlen sind nichts schönes ;)

      MFG
      Andavos