php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 20.10.2009, 15:28  
Erfahrener Benutzer
 
Registriert seit: 16.07.2005
Beiträge: 1.007
PHP-Kenntnisse:
Fortgeschritten
brian johnson befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von xm22 Beitrag anzeigen
Finden bei file_put_contents parallele Schreibzugriffe statt?

EDIT: Ich meine so, dass PHP mehrere Prozesse gleichzeitig auf eine Datei zugreifen lässt.
da PHP weder prozesse noch dateihandler verwaltet, nehme ich jetzt mal an das du das betriebssystem meinst. und ja, das lässt beliebig viele parallele zugriffe zu.

*achtung lustig*
laut Andrew S. Tanenbaum ist das aber nur ein performance hack:
(hier sogar der komplette parallele zugriff auf das dateisystem )
Zitat:
>If this was the only criterion for the "goodness" of a kernel, you'd be
>right. What you don't mention is that minix doesn't do the micro-kernel
>thing very well, and has problems with real multitasking (in the
>kernel). If I had made an OS that had problems with a multithreading
>filesystem, I wouldn't be so fast to condemn others: in fact, I'd do my
>damndest to make others forget about the fiasco.


A multithreaded file system is only a performance hack. When there is only
one job active, the normal case on a small PC, it buys you nothing and adds
complexity to the code. On machines fast enough to support multiple users,
you probably have enough buffer cache to insure a hit cache hit rate, in
which case multithreading also buys you nothing. It is only a win when there
are multiple processes actually doing real disk I/O. Whether it is worth
making the system more complicated for this case is at least debatable.
I still maintain the point that designing a monolithic kernel in 1991 is
a fundamental error. Be thankful you are not my student. You would not
get a high grade for such a design
__________________
PHP4?!?>>>Aktuelle PHP Version: 5.2.11 || 5.3.0
Suse 11.2 *vorfreude*

Geändert von brian johnson (20.10.2009 um 15:33 Uhr). Grund: witz markiert, sonst denkt wer das noch wirklich... :D
brian johnson ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 20.10.2009, 15:43  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.706
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Au ja, ich schraube mein Dateisystem wieder runter, dass es kein Multithreating mehr unterstützt. Dann wird das Öffnen meines Browsers wieder ein richtiges Ritual.
__________________
Refining Linux Advent Calendar series “24 Outstanding ZSH Gems
Manko10 ist offline   Mit Zitat antworten
Alt 28.10.2011, 12:21  
Benutzer
 
Registriert seit: 17.06.2009
Beiträge: 97
PHP-Kenntnisse:
Fortgeschritten
hondatuner befindet sich auf einem aufstrebenden Ast
Standard

Habe mittlerweile eine neue Funktion im Einsatz, die auch ohne serialize() auskommt:
http://www.programmierer-forum.de/fl...rt-t225288.htm

In Kürze schwenken wir aber vermutlich auch auf memcache. Dann gibt es das Problem (hoffe ich mal) nicht mehr.
__________________
meine PHP Scripte
hondatuner ist offline   Mit Zitat antworten
Alt 28.10.2011, 12:56  
Erfahrener Benutzer
 
Benutzerbild von fireweasel
 
Registriert seit: 20.03.2010
Beiträge: 474
PHP-Kenntnisse:
Fortgeschritten
fireweasel ist ein Lichtblickfireweasel ist ein Lichtblickfireweasel ist ein Lichtblickfireweasel ist ein Lichtblickfireweasel ist ein Lichtblick
fireweasel eine Nachricht über ICQ schicken fireweasel eine Nachricht über AIM schicken fireweasel eine Nachricht über Yahoo! schicken fireweasel eine Nachricht über Skype™ schicken
Standard

Zitat:
Zitat von hondatuner Beitrag anzeigen
Habe mittlerweile eine neue Funktion im Einsatz, die auch ohne serialize() auskommt:
http://www.programmierer-forum.de/fl...rt-t225288.htm

...
Und das soll funktionieren? Der Post geht von verschiedenen Annahmen aus, die AFAIK nicht ganz korrekt sind ... Man benutzt flock() bspw. nicht ohne Not im Non-Blocking-Mode. Der $wouldblock-Mist ist nur für uralte Linux-Versionen, die niemand ernsthaft mehr in Betrieb haben sollte. Kleiner Spaß am Rande: Die Windows-Version von flock() hat all die aufgelisteten Probleme nicht, weil sie auf einer Win32-Betriebssystemfunktion aufbaut, die im Gegensatz zu diesem Unix-Kram funktioniert ...

Man benutzt flock() auch nicht "außenherum" um fopen()-fwrite()-fclose() wenn man nur in eine einzelne Datei schreiben möchte ...

Und falls mkdir() "atomic" sein sollte[0], macht eine Prüfung mit file_exists() das wieder hinfällig ...

Ich kann mir nicht vorstellen, dass dieser Hack performanter sein soll, als das korrektere fopen()-flock()-fwrite()-fflush()-fclose() ... schon allein weil mkdir()-rmdir() nicht besonders schnell sein dürfte. Nebenbei kann es mit einem solchen selbstgestrickten flock()-Ersatz dazu kommen, dass ein vorzeitig abgebrochenes PHP-Script ein "Lock"-Dir zurücklässt. Was dann?

Übrigens "garantieren" die PHP-Macher für Datenmengen kleiner als die Schreib-Puffer-Größe (meist 8192 Bytes), eine "atomische" Ausführung. Das steht so zumindest im offiziellen PHP-Handbuch für fwrite(). Das sollte auch mit file_put_contents() klappen. Wobei letzeres auch schon länger einen Parameter anbietet, mit dem man LOCK_EX aktivieren kann.

--
[0] Wer garantiert dir das?
fireweasel ist offline   Mit Zitat antworten
Alt 28.10.2011, 12:59  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

Zitat:
Zitat von hondatuner Beitrag anzeigen
Habe mittlerweile eine neue Funktion im Einsatz, die auch ohne serialize() auskommt:
http://www.programmierer-forum.de/fl...rt-t225288.htm

In Kürze schwenken wir aber vermutlich auch auf memcache. Dann gibt es das Problem (hoffe ich mal) nicht mehr.
@ als Maß aller Dinge. Warum behandelt eigentlich kaum einer überhaupt noch fehler ?
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Alt 28.10.2011, 13:04  
fab
Erfahrener Benutzer
 
Benutzerbild von fab
 
Registriert seit: 28.07.2010
Beiträge: 2.308
PHP-Kenntnisse:
Fortgeschritten
fab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblick
Standard

[OT]Warum zwingt mich ein Forum(!) dazu, JavaScript von einer fremden Domain zuzulassen um überhaupt irgendetwas anzuzeigen? Da du anscheinend der Administrator bist und eine technikaffine Zielgruppe hast: kein Bedarf an neuen Besuchern?[/OT]
fab ist offline   Mit Zitat antworten
Alt 28.10.2011, 13:12  
Erfahrener Benutzer
 
Registriert seit: 13.05.2011
Beiträge: 188
PHP-Kenntnisse:
Fortgeschritten
php1704 wird schon bald berühmt werden
Standard

Memcache ist sicherlich die bessere Variante.

Andererseits kannst du den Cache auch in die DB schreiben.

Ein
Code:
SELECT data FROM cache WHERE id = 'counter.txt';
(mit entsprechendem index auf id) dauert auch nicht länger als das Einlesen einer Datei aus dem Dateisystem. Solche Abfragen werden auch prima im Query-Cache abgelegt. Sowas jukt kein Datenbank-System.

Ein Dateisystem ist auch nichts anderes als eine Datenbank. Wenn eine Datei geöffnet wird, muss auch erst einmal gesucht werden wo die Daten da nun liegen. Das alles kann eine Datenbank besser.

Grüße.
php1704 ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Race Condition Problem (INSERT -> SELECT) R4v3r Datenbanken 5 11.08.2009 12:58
Neue Versionen von Thunderbird, SeaMonkey und Flock PHP Tipps 2007 0 03.08.2007 12:06
flock() brian johnson PHP-Fortgeschrittene 7 27.12.2006 17:46

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php exit script, i still maintain the point that designing a monolithic kernel in 1991 is afundamental error. be thankful you are not my student., php richtiges flock, race condition atomar, php file_put_contents atomar

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




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum