php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2007

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 02.04.2007, 23:05  
Erfahrener Benutzer
 
Registriert seit: 17.01.2006
Beiträge: 468
Slava
Standard

ja, das wäre auch eine alternative.
Andere seits funktioniert es auf diese weise und kommt mit etwa 1400 seiten ziemlich schnell zur recht. die datei ist in moment zirka 11mb gross und zugriff dauert etwa 0.0004 sec.
dabei habe ich zur testzwecke mit 80mb dateien gespielt und der ergebnis unterscheidet sich kaum von 11mb dateien.

wenn der content sich schnell änderte, dann würde ich bestimmt eine andere methode nehmen, aber es handelt sich um die nachtichten die sich überhaupt nicht ändern, sondern werden in DB und parallel in die cache-datei angehangt.
Also dieser Einsatz lohnt sich für mich.
__________________
Slava
http://bituniverse.com
Slava ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 02.04.2007, 23:15  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.657
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Hallo Slava,

Zitat:
[..]0.0004 sec[..]
Das sind umgerechnet 400µs. Und du bist dir sicher, dass die Einheit stimmt? So lange brauchen auf meinem Entwicklungs-Notebook schon 100 Schleifendurchläufe mit ein paar Multiplikationen... Der Zugriff auf Platte ist dabei im Gegensatz zu Speicher-Zugriffen noch um einiges teurer...
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline  
Alt 03.04.2007, 00:05  
Erfahrener Benutzer
 
Registriert seit: 17.01.2006
Beiträge: 468
Slava
Standard

teste mal in einem ordner mit einer datei die etwa 20-100mb gross ist.
Code:
nicht getestet
$s=(float)microtime(true);
$fp=fopen($dateiname,"r");
fseek($fp,(int)(filesize($dateiname)/2));
$string=fwrite($fp,8000);
echo "aus einer datei";
echo (float)microtime(true)-$s;

//test mit mehreren dateien
fseek($fp,0);
$i=0;
while (!feof($fp)) {
    file_put_contents("a_".$i, fread($fp, 12000));
$i++;
    
}

und jetzt teste mal wie lange du zum dateiöfnen brauchst.
etwa so
$s=(float)microtime(true);
file_get_contents("a_400");
echo (float)microtime(true)-$s;
__________________
Slava
http://bituniverse.com
Slava ist offline  
Alt 03.04.2007, 00:09  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.657
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Hallo Slava,

ok, ich sehe, es ist für dich offensichtlich die richtige Vorgehensweise und ich kann dich nicht von meiner alternativen Caching-Methode überzeugen.
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline  
Alt 03.04.2007, 00:26  
Erfahrener Benutzer
 
Registriert seit: 17.01.2006
Beiträge: 468
Slava
Standard

nee, so stur bin ich gar nicht.
es gibt immer was zum überlegen, und ich will nicht unbedingt die schlechteste methode für cachen haben.
eigentlich kann ich deine Standart-caching-methoden nicht als alternative-Caching-Methoden betrachten
oder hast du mir noch nicht alle gheim-rezepte gezeigt?(fuchs )

Kurze info zur mehreren dateien im ordner
ausschnitt aus doku zum shmop
-----------------------------------------------
IO test on 1000 files
IO Result of Regular Directory : 0.079015016555786
IO Result of Shared Memory Directory : 0.047761917114258

IO test on 10000 files
IO Result of Regular Directory : 3.7090260982513
IO Result of Shared Memory Directory : 0.46256303787231

IO test on 40000 files
IO Result of Regular Directory : 117.35703110695 seconds
IO Result of Shared Memory Directory : 2.6221358776093 seconds
------------------------------

also testen, testen und noch mal testen.
__________________
Slava
http://bituniverse.com
Slava ist offline  
Alt 03.04.2007, 14:23  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.657
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Zitat:
eigentlich kann ich deine Standart-caching-methoden nicht als alternative-Caching-Methoden betrachten
oder hast du mir noch nicht alle gheim-rezepte gezeigt?(fuchs )
Das verstehe ich nicht. Die Methode, die ich dir gezeigt habe - die mit den Unterverzeichnissen - ist genial. Die nächste Stufe wäre Unter-Ordner mit einem Buchstaben anzulegen und diese in einer Tiefe von - sagen wir 3 - zu schachteln. Das ist für das Filesystem noch effizienter. Das sieht dann so aus:

Code:
/cache_base_folder/
                             0/
                                1/
                                   2/
                                      012[..].ext
Algorithmus ist gleich dem obigen. Sprich:
Hänge als Suffix die ersten 3 Zeichen als Ordner-Struktur an und schreibe das File dort hin. In meinem Beispiel ist das dann "0123[..].ext"

Die Dateinamen generierst du wie oben geschrieben immer mit einem Aussage-Kräftigen Namen (incl. deiner IDs) und "legst md5 drüber". Eine bessere Caching-Methode, die freundlicher zu (Cluster-)Filesystemen ist kenne ich nicht und gibt es meiner Ansicht auch nicht. Letztere Methode wird bei uns auf dem Apache/PHP-Cluster für das Session-File-Ablegen und das Cachen von Metadaten aus der DB verwendet. PIs wie gesagt > 2Mio/Monat auf eine Domain und wir haben 120 Domains...

Shared Memory Caching ist da nochmal was anderes und das darf man nicht damit vergleichen, weil es in einer anderen Liga spielt, was ZUgriffszeiten angeht.

Zitat:
IO Result of Regular Directory : 0.079015016555786
Das ist aber dann umgerechnet 79ms und damit deutlich größer als 400µs
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline  
 


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
Cookie zusätzlich für eine andere Domain setzen DonTermi PHP Tipps 2007 5 21.05.2007 13:52
Auf eine Flashanimation einen Link setzen andrew22 HTML, Usability und Barrierefreiheit 23 06.03.2007 15:28
Foto-Upload und gleichzeitig CHMOD auf 777 setzen Onkel-Tom PHP Tipps 2007 7 22.02.2007 10:45
Generell Variable als "global" setzen möglich ? simsalabim PHP Tipps 2006 18 19.05.2006 18:47
IMAP - Empfangsdatum auf Sendedatum zurück setzen Stephan PHP-Fortgeschrittene 9 08.05.2006 17:59
auto_increment auf null setzen? bona Datenbanken 3 05.04.2006 14:31
Lesezeichen für diesen Beitrag setzen kbdcalls Off-Topic Diskussionen 4 04.04.2006 22:40
Cookies: Wie viele darf eine Website setzen? SvenLittkowski PHP Tipps 2007 8 09.12.2005 20:54
Eine Startposition für das PHP-Script setzen PHP Tipps 2007 15 01.12.2005 16:54
[Erledigt] Gültigkeitsdauer eines Cookies lässt sich nicht setzen PHP Tipps 2005-2 8 21.10.2005 13:25
Absolute position in center setzen? Tic Rederon HTML, Usability und Barrierefreiheit 0 03.10.2005 22:19
Dateien erstellen und chmod setzen auch wenns nicht geht ^^ PHP Tipps 2005 8 22.05.2005 02:53
Cursor setzen HTML, Usability und Barrierefreiheit 3 05.03.2005 00:37
Parse Error - wie muss ich die Zeichen setzen? Calli PHP Tipps 2005 4 17.02.2005 14:57
2 Tabellen abfragen und dann variable unterschiedlich setzen Anuschka PHP Tipps 2004-2 2 22.12.2004 02:46


Alle Zeitangaben in WEZ +2. Es ist jetzt 18:45 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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.