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 Bewertung: Bewertung: 1 Stimmen, 1,00 durchschnittlich.
  #31 (permalink)  
Alt 17-08-2007, 14:07
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 3.296
combie wird schon bald berühmt werden
Standard

Zitat:
mehrmaliges Aufrufen des Cron?
Bei einer Einprozessor Maschine wird das wohl herzlich wenig bringen.. 100% Last sind und bleiben 100% Last.

Bei einer Mehrprozessor Maschine könnte das ganz anders aussehen....
__________________
Wir werden alle sterben
Mit Zitat antworten
  #32 (permalink)  
Alt 17-08-2007, 14:26
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

Dann versuche ich das mal in aller Deutlichkeit zu beantworten:

1. Es gibt "schnellere Sprachen" als PHP, allen voran C/C++.

2. "Mehrmaliges Aufrufen des Cron" kann die Sache beschleunigen. Beispiel:
/user/bin/php /path/to/cron.php start=0 end=50000
/user/bin/php /path/to/cron.php start=50000
Ebenso gut oder sogar besser wäre sowas:
/user/bin/php /path/to/cron.php instances=2
(Falls du den Unterschied nicht erkennst, frag nach und ich erläutere es genauer.)
Die Gesamtzahl der Berechnungen bleibt gleich, aber wenn mehrere Prozesse auf CPU, Disk und Hauptspeicher (DB!) rumrödeln, kann die Sache insgesamt auch langsamer werden! Das hängt vom (geheimen) Algorithmus und deinem System ab und ist nur durch Tests herauszufinden.

3. Mehrere Server helfen definitiv. Die Rechung ist ziemlich einfach (Baugleichheit angenommen): Zwei Server lösen ein Problem in etwas mehr als der Hälfte der Zeit, die ein einzelner Server braucht. Vier Server verkürzen die Rechenzeit auf etwas mehr als 25% usw.

4. Weitere Möglichkeiten:
4.1. Umzug auf stärkere(n) Server
4.2. Berechnung auslagern auf externe(n), speziell dafür ausgelegte(n) Server
4.3. Reduktion der Komplexität der Berechnung, Änderung des Algorithmus (s.o.)
4.4. Reduktion der Anzahl der Berechnungen, Änderung der Applikation (s.o.)


Aus Erfahrung rate ich dringend zu 4.3/4.4. Keep it simple!


@combie: Jain, zwei Prozesse können durch diverse Effekte durchaus schneller zum selben Ergebnis kommen als einer.

Geändert von onemorenerd (17-08-2007 um 14:37 Uhr)
Mit Zitat antworten
  #33 (permalink)  
Alt 17-08-2007, 14:28
intermedia
 Registrierter Benutzer
Links : Onlinestatus : intermedia ist offline
Registriert seit: Oct 2003
Beiträge: 54
intermedia ist zur Zeit noch ein unbeschriebenes Blatt
intermedia eine Nachricht über Skype™ schicken
Standard

Hi,

es ist sowieso unsinnig den Cron mehrmals auf ein Script zu setzen, da dann das Script jedes Mal von vorne anfängt mit der Berechnung.

Du sagtest da was von über 100 DB Abfragen, es wäre eine Überlegung Wert, die Querys zu optimieren und eventuell Ergenisse in Variablen/Arrays zu speichern um dann die Berechnung im Arbeitsspeicher durchzuführen.

Gruß Sven
Mit Zitat antworten
  #34 (permalink)  
Alt 17-08-2007, 14:29
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

full ack@onemorenerd.
(Vor allem zum letzten Satz)
Mit Zitat antworten
  #35 (permalink)  
Alt 17-08-2007, 14:33
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Ist doch eigentlich alles gesagt, müsste der TO eigentlich mal aktiv werden.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #36 (permalink)  
Alt 17-08-2007, 15:02
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 3.296
combie wird schon bald berühmt werden
Standard

OffTopic:
Hmm... evtl. eins noch...

Aus meinem Nähkästchen in Punkto Optimierung:

Es drehte sich um die Anordnung von 9 Karten. Diese Karten waren mit Bildern versehen und konnten nur in bestimmten (erstmal unbekannten) Drehungen und Positionen gültige Anordnungen ergeben. Durch 4maliges drehen und durch Permutierung aller Positionen ergab sich die eine riesige potentielle Lösungsmenge: (4 hoch 9)* 9Faklultät.

Die erste BruteForce Anwendung brauchte geschlagene 8 Stunden um alle Anordnungen durchzuprobieen.

Durch Optimierung gelang es die Laufzeit auf unter 0.3 Sekunden zu drücken.

Ob das auf diese BrowserSpiel Anwendung übertragbar ist, naja... Aber es zeigt doch wieviel Optimierungspotenial so manchmal drinsteckt.
__________________
Wir werden alle sterben
Mit Zitat antworten
  #37 (permalink)  
Alt 17-08-2007, 17:59
sysop123
 Registrierter Benutzer
Links : Onlinestatus : sysop123 ist offline
Registriert seit: Aug 2006
Beiträge: 77
sysop123 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

wenn deine user die daten unbedingt brauchen, warum baust du die daten nicht je user beim login auf ?
wer die daten braucht kann auch mal 1 sekunde warten. user die sich nicht einloggen, brauchen auch keine daten, der aufbau ist also unnötig.
Mit Zitat antworten
  #38 (permalink)  
Alt 17-08-2007, 18:59
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

@sysop123, hast du jemals in diesem Thread den korrekten Bezug getroffen? Schon wieder daneben. TO hat doch schon erwähnt, dass er dir Werte für die Berechnung des Rankings braucht.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #39 (permalink)  
Alt 19-08-2007, 20:25
sysop123
 Registrierter Benutzer
Links : Onlinestatus : sysop123 ist offline
Registriert seit: Aug 2006
Beiträge: 77
sysop123 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von TobiaZ
@sysop123, hast du jemals in diesem Thread den korrekten Bezug getroffen? Schon wieder daneben. TO hat doch schon erwähnt, dass er dir Werte für die Berechnung des Rankings braucht.
ich könnte genauso fragen, ob du jemals die informationen erfasst hast, die vom ersteller des themas preisgegeben werden. von einem ranking ist hier aber auch garnichts zu lesen, genannt wird das ganze STAATSBERECHNUNG nicht ranking und das kann vieles sein.

offen ist auch die frage, wieso bei 500.000 usern das script 500.000 mal (also für jeden besucher der da war) angestossen werden muss?

Zitat:
Original geschrieben von comfreak

dennoch stehe ich vor dem problem... dass wenn ich bei 100.000+ (nehmen wir mal blöde an es werden 500.000) user und ich schaffe einen durchlauf in 0,1sec --> dann würde ein script 13,9 Stunden dafür benötigen... ich habe allerdings maximal 2 Stunden Zeit...
da werden 500.000 user mit der script-laufzeit multipliziert oder sehe ich das falsch ??

dazu fallen mir mehrere ansätze ein:

statische daten (und ich gehe davon aus, dass es davon sehr viele geben wird) muss man nicht neu berechnen (da sehe ich auch das grösste optimierungspotenzial). ich kann mir nicht vorstellen, dass ein einzelner user alle anderen 500.000 user in ihren daten direkt beeinflusst sprich deren daten dahingehend verändert, dass sie sofort alle neu berechnet werden müssen.
sollte dem DOCH so sein, ist immernoch die frage offen, ob man nicht einen gemeinsamen teil an daten in einem cronjob laufen lassen kann und den rest macht man dann je user wenn er die seite aufruft.

wenn ich hier 500.000 mal (anzahl der user) das script durchlaufen lasse, wieso sollte ich es dann nicht 1 mal je useraufruf starten ? mir fehlen die informationen, wieso das nicht gehen soll, es ist nur die information vorhanden, dass es nicht geht.
verknüpfe ich einen user mit der tabelle (150 zeilen mit zig hundert formeln) verstehe ich es so, dass sich zwar an den userdaten des aktiven users etwas ändert, aber die anderen 499.999 bleiben davon unberührt (oder auch nicht, eine information, die mir ebenfalls fehlt).
ist sicher, dass ein user A mit seinen eingaben, aufrufen oder was auch immer direkten einfluss auf die daten des users XYZ nimmt (also dessen daten wirklich verändert). sonst ist ein kompletter durchlauf für 500.000 user sicher nicht notwendig.

entweder du hast mehr informationen als unsereins oder du interpretierst die informationen einfach dahin gehend, dass DU damit zurecht kommst, ich bin geständig, ich komme mit den infos nicht ganz aus.
Mit Zitat antworten
  #40 (permalink)  
Alt 20-08-2007, 00:08
comfreak
 Newbie
Links : Onlinestatus : comfreak ist offline
Registriert seit: Mar 2004
Beiträge: 46
comfreak ist zur Zeit noch ein unbeschriebenes Blatt
comfreak eine Nachricht über ICQ schicken
Standard

@sysop123: ich muss TobiaZ recht geben... du hattest bereits vorher schon nicht wirklich richtig gelegen.

Das Script muss auch nicht pro User durchlaufen werden, ich sprach rein von der Ladezeit pro User die das script benötigt. Ein gewöhnliche Schleife für jeden User.

Außerdem steht es außer Frage, dass ich diese Berechnungen jeden Tag anstoßen muss und nicht warten kann, bis der User sich einloggt. Zum einen, ja die Daten der verschiedenen User können sich beeinflussen, zum anderen benötige ich die Daten für Statisitken und Rankings die sich jeweils aus der letzten berechnung errechnen... daher muss das script für jeden user einmal am tag durchlaufen, was allerdings mit einem cronjob geschehen wird (oder mit mehreren, falls die berechnung auf mehreren servern verteilt wird...)

wie auch immer, die optimierung liegt nun an mir und ich werde mein bestmögliches tun... falls es bestmöglich optimiert ist (so gut ich es eben bis dahin kann), wird sich zeigen auf welche punkte ich zurückgreifen kann, die onemorenerd weiter oben genannt hat...

danke euch allen... sobald ich fragen habe, zu der serverseitigen optimierung werde ich mich gegenfalls hier wieder melden...

Geändert von comfreak (20-08-2007 um 00:11 Uhr)
Mit Zitat antworten
  #41 (permalink)  
Alt 20-08-2007, 16:12
sysop123
 Registrierter Benutzer
Links : Onlinestatus : sysop123 ist offline
Registriert seit: Aug 2006
Beiträge: 77
sysop123 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ich will auch garnicht streiten, trotzdem lässt mir das keine ruhe. ich habe das ganze sogar sehr aufmerksam durchgelesen und komme einfach auf keinen grünen zweig. mag schon sein, dass TobiaZ das alles im vorbeigehen erfasst hat.
z.b. diese aussage:

Zitat:
Original geschrieben von comfreak
@sysop123: ich muss TobiaZ recht geben... du hattest bereits vorher schon nicht wirklich richtig gelegen.

Das Script muss auch nicht pro User durchlaufen werden, ich sprach rein von der Ladezeit pro User die das script benötigt. Ein gewöhnliche Schleife für jeden User
wo liegt bitte der unterschied zwischen berechnungs schleife pro user und schleife für jeden user ? darauf, dass ein cron je user nicht das gefragte ist, hatten wir uns schon geeinigt.
du musst bei einem login eines einzelnen users alle 499.999 user durchackern, das ist die kern aussage. in deinem letzten post ist von dir zum ersten mal klar gesagt worden, dass du alle 499.999 user veränderst, wenn nur ein user etwas macht.

sorry, aber rankings und statistiken habe ich schon so viele gemacht, dass ich meine zweifel hatte und immer noch habe, dass man immer alles durch exerzieren muss.

ich logge mich mal aus um böses blut zu vermeiden.
Mit Zitat antworten
  #42 (permalink)  
Alt 20-08-2007, 18:31
combie
 PHP Expert
Links : Onlinestatus : combie ist offline
Registriert seit: May 2006
Beiträge: 3.296
combie wird schon bald berühmt werden
Standard

Zitat:
@combie: Jain, zwei Prozesse können durch diverse Effekte durchaus schneller zum selben Ergebnis kommen als einer.
Wenn du mit "diverse Effekte" z.B. Wartezeiten auf externe Resourcen meinst, Naja... dann wird sich das wohl bemerkbar machen....

Aber wenn sichs um harte Prozessor Rechenlast dreht, dann wohl weniger....

Sollte auch nur eine Tendenz zeigen, von daher habe ich es extra schwammig formuliert. Aber solange das wichtigste geheim bleibt, ist es sowieso nur ein Stochern im Nebel.....
__________________
Wir werden alle sterben
Mit Zitat antworten
  #43 (permalink)  
Alt 11-09-2007, 12:26
comfreak
 Newbie
Links : Onlinestatus : comfreak ist offline
Registriert seit: Mar 2004
Beiträge: 46
comfreak ist zur Zeit noch ein unbeschriebenes Blatt
comfreak eine Nachricht über ICQ schicken
Standard Update zu der Berechnung

Hallo...

so die Formeln sind alle eingetragen. Wir lagen bei 1000 Berechnungen bei ca 1-1,5 sec und haben nun 1700 Berechnungen in 2,1-2,3 sec.
Es sind 100 Kategorien mit jeweils 7 Formeln. Einige müssen eben mehrmals berechnet werden, da sie sich auf Ergebnisse anderer beziehen... ich versuche nun die Zahl der Berechnungen etwas runter zu schrauben...

Meine Frage ist nun: Mir wurde erzählt, dass es evtl günstiger wäre, diese intensive Berechnungen in einer anderen Sprache auszuführen... Hat der jmd eine Idee, bzw wie bekomme ich die Daten von Sprache A nach B und anschließend wieder von B nach A, wobei A = PHP ist :-)

Hoffe, jmd hat eine Idee...
Mit Zitat antworten
  #44 (permalink)  
Alt 11-09-2007, 12:27
ghostgambler
 Master
Links : Onlinestatus : ghostgambler ist offline
Registriert seit: Jul 2004
Ort: DE - NRW
Beiträge: 4.620
ghostgambler ist zur Zeit noch ein unbeschriebenes Blatt
Standard

XML, Datenbank, SOAP, etc.
Mit Zitat antworten
  #45 (permalink)  
Alt 11-09-2007, 12:30
tontechniker
 PHP Senior
Links : Onlinestatus : tontechniker ist offline
Registriert seit: Jul 2005
Beiträge: 1.972
tontechniker ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Wenns noch schneller sein soll Semaphore ...
__________________
Die Regeln | rtfm | register_globals | strings | SQL-Injections | []
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

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 14:30 Uhr.