php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Scripts > BRAINSTORMING PHP/SQL/HTML/JS/CSS
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


BRAINSTORMING PHP/SQL/HTML/JS/CSS Ihr habt eine Idee, aber keinen genauen Ansatz? Diskutiert mit anderen Usern des Forums über eure Gedankengänge um evtl. hilfreiche Ideen zu bekommen!
Normale Fragen bitte weiterhin in die entsprechenden Foren!

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 05-06-2006, 17:44
David Fischer
 Newbie
Links : Onlinestatus : David Fischer ist offline
Registriert seit: Jun 2006
Beiträge: 2
David Fischer ist zur Zeit noch ein unbeschriebenes Blatt
Standard PHP Streaming

Grundlage ist mittels PHP binäre Daten (Videos) in beliebig grossen Teilen zu parsen und dann an den Client zu senden.
Der Prozess bedient sich der Funktionen fopen, fseek, print, fclose. Auf was gilt es denn zu achten im Falle von grossen Dateien (150mb>) zu achten
und in welchem zusammenhang steht das mit dem memory_limit, output_buffering, max_execution_time, implicit_flush etc ?

Mir ist unklar an welchen Stellen des Prozesses Zwischenspeicherungen bzw. Weiterleitungen entstehen bzw. wann eine Garbage Collection stattfindet.
Binäre Daten werden eingelesen via PHP. Wird die Abarbeitung des ganzen File im Modul abgewartet bis der Output an den jeweiligen HTTP-Server (Apache) weitergeleitet wird und dieser die Daten dann ausliefert ?

Oder ist diese Technik überhaupt nicht ratsam ?

Das Ziel besteht vereinfacht darin einen geeigneten Streamingserver (Real/Windows/FlashMedia) zu umgehen, um einerseits die Verbindung zwischen Usermanagement und Zugriffsrechten zu erleichtern und andererseits kostenintensive Lizenzen zu umgehen. Hinzu kommt natürlich auch die Bandbreitenkalkulation, die bei non-progessiven (PHP-)Streams erheblich ins Gewicht fallen.

Die Schlüsselfrage ist eigentlich, ob man das o.g. Szenario einem "herkömmlich" konfigurierten Server zumuten kann (wobei ich jetzt mal die Cluster-Architektur ausser acht lasse) , welche PHP-seitgen konfigurationen ins Gewicht fallen und Flaschenhälse auf die es bei einer klassischen LAMP-Konfiguration zu achten gilt.

Vielen Dank für Eure Hilfe,

David
Mit Zitat antworten
  #2 (permalink)  
Alt 05-06-2006, 18:43
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Bei 150 MB und mehr bist du gezwungen, die Datei häppchenweise zu lesen und an den Client zu senden. Es wäre tödlich, erstmal alles in den RAM zu laden ($var = file(..)), das ist klar.

Wie groß ein Häppchen sein sollte, hängt ganz von der Art der Datei ab. Das memory_limit sollte dem größten möglichen Häppchen plus X für den Rest des Scripts nicht unterschreiten. Auch klar.
Speicherbedarf im worst case: "Anzahl paralleler Streams * memory_limit" Bytes - also auch die Anzahl der Streams begrenzen.

Der Webserver sollte alles was er vom Script bekommt sofort senden, um einen flüssigen Stream hinzubekommen. Das geht entweder per implicit_flush = on oder mit explizitem flush() nach jeder Ausgabe eines Häppchens.

Denk auch an die max_execution_time!

Garbage Collection findet in deinem Fall nicht statt (gibt es in PHP imho nur für Session-Files). Der belegte Speicher ist sofort wieder frei, wenn das Script beendet wird.

Ich hoffe, das hilft erstmal.


PHP ist für Streaming natürlich denkbar ungeeignet. Das weißt du hoffentlich. Ein eigener Deamon an einem bestimmten Port wäre besser. Sozusagen ein selbstgestrickter Streaminserver. Damit sparst du dir den Overhead eines Webservers, der jeden Request erstmal analysiert, evlt. umschreibt, seine ht-Regeln anwedet, den PHP-Interpreter startet, Logfiles führt ...
So einen Deamon könnte man sogar auch in PHP schreiben. Aber die Prozesskontrollfunktionen in PHP sind sehr dürftig und es ist und bleibt eben eine interpretierte Sprache.
Mit Zitat antworten
  #3 (permalink)  
Alt 06-06-2006, 15:36
David Fischer
 Newbie
Links : Onlinestatus : David Fischer ist offline
Registriert seit: Jun 2006
Beiträge: 2
David Fischer ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Vielen Dank für die ausführliche Erklärung. Vielleicht war der Ausdruck "Streaming" etwas fremdleitend. Es ist nicht so, dass eine stete Verbindung ähnlich einem Socket besteht. Primär geht es darum binäre Daten via PHP einzulesen und eine bestimmte Menge an Bytes an den HTTP-Server zur Ausgabe weiterzuleiten.

Einen dedizierten Daemon zu schreiben ist aber eine super Idee!


Vielen Dank nochmal,

David Fischer
Mit Zitat antworten
  #4 (permalink)  
Alt 15-11-2006, 13:17
trendspurt
 Newbie
Links : Onlinestatus : trendspurt ist offline
Registriert seit: Nov 2006
Beiträge: 1
trendspurt ist zur Zeit noch ein unbeschriebenes Blatt
Standard leidensgenosse ;)

Hi David!
Ich habe soeben zufällig deinen Post hier gelesen und musste feststellen, dass ich mich momentan exakt mit den gleichen Fragen und Problemen rumschlage. Mich würde interessieren, ob Du in der Sache schon weitergekommen bist bzw. ne akzeptable Lösung gefunden hast.
Würde mich über einen Erfahrungsaustausch sehr freuen.

Gruß aus Köln,
Simon
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

Projektmanagement Damals und Heute
Projektmanagement Damals und HeuteWerfen Sie einen Blick auf das, was sich verändert hat, und entdecken Sie, wo die Zukunft dieses Gebietes hinsteuert.

18.01.2021 | Berni

Arbeitsmanagement-Tools
Arbeitsmanagement-ToolsWarum jedes Team Arbeitsmanagement-Tools benötigt. Man schätzt, dass 25% eines durchschnittlichen Mitarbeiter-Tages durch ineffiziente Arbeit vergeudet werden.

11.12.2020 | Berni


 

Aktuelle PHP Scripte

Simple Forum PHP ansehen Simple Forum PHP

If you need simple forum or discussion on your website, then you've come to the right place. Simple Forum PHP is a script that is very easy to install and administer.

28.08.2021 nevenov | Kategorie: PHP/ Forum PHP Software
Formmailer Bootstrap 4

Mit dem Formmailer kann man sich eMails über seine Seite zukommen lassen.

08.07.2021 arne-home | Kategorie: PHP/ Formular
Fehlerseite Bootstrap 4

Bei Aufruf einer nicht existierenden Seite, teilen Sie Besuchern mit einer eigenen Fehlerseite mit, dass die gewünschte Seite nicht gefunden wurde. Die eigene Fehlerseite sollte dasselbe Design wie die Website haben. Zudem sollte ein Link zur Startseite a

04.07.2021 arne-home | Kategorie: PHP/ Counter
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 19:03 Uhr.