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.
  #1 (permalink)  
Alt 16-08-2007, 19:16
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 Ladezeiten zu groß... wie besser werden?

Hallo zusammen,

ich programmiere gerade ein Projekt, das weitreichende Kalkulation im Hintergrund hat, die jeden Tag per Cronjob im Hintergrund aufgerufen werden kann.

Bis jetzt benötigt ein Durchlauf 0,20sec... es wird aber noch umfangreicher, sodass ich pro Durchlauf 1sec benötige (gemessen mit microtime)

Das Problem ist, dass es durch aus 100.000+ User und demnach genauso viele Berechnungen geben wird. Das ist aber zeitlich nicht machbar... weil ein Tag nur 24 Stunden hat und ich das ganze eigentlich in 2 Stunden erleidgt haben wollte...

Was für Lösungen gibt es... (ich werde von meiner Seite aus versuchen, die Berechnungen zeitlich zu verbessern, gehen wir aber von 1sec pro User aus)
Was kann man tun? Kann man per Cronjob Beispielsweise das Script 100x pro Sekunde aufrufen? Oder würde ein besserer Server aushelfen...

Ich habe schon einiges programmiert, aber bin noch nie vor solch ein Problem gestellt worden. Auch Cronjobs, Server etc... sind nicht mein Spezialgebiet...

Kann mir jemand helfen?
Mit Zitat antworten
  #2 (permalink)  
Alt 16-08-2007, 19:23
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ein besserer server oder noch besser - mehrere server mit kleverem load balancing sind immer schneller. interssanter für mich ist die frage, was das für eine komplexe berechnung ist, dass man lieber einen neuen server zulegt, als den code an langsamen stellen zu optimieren.
Mit Zitat antworten
  #3 (permalink)  
Alt 16-08-2007, 19:53
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

im prinzip ist es eine excel tabelle, die mit variablen gefüttert wird und dann berechnungen anstellt. es sind ungefähr 190 zeilen mit je 7 Formeln. Verändert sich der Wert in einer Zelle, muss ja wiederum alle Zellen, die sich auf diese beziehen neu berechnet werden...

Jetzt im Test gibt es 15 Zeilen, diese führen zu 435 Berechnungen in 0,3 sec... vllt bin ich auch total auf den kopf gefallen und man kann das einfacher halten?

aber im prinzip errechnet excel ja auch alle folgeformeln neu sobald sich ein wert in einer zelle verändert...

oder?
Mit Zitat antworten
  #4 (permalink)  
Alt 16-08-2007, 20:13
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

Ich kann mir jetzt schwer vorstellen, was ein excell-sheet mit einem prozedualen Script zu tun hat. Was genau machst du?
__________________
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
  #5 (permalink)  
Alt 16-08-2007, 20:18
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

es geht um eine umfangreiche matrix für ein browsergame... diese ist in excel sozusagen niedergeschrieben und ich habe sie eben in php nun dynmaisch programmiert...

wenn man sich nun excel vorstellt, gibt es ca 190 zeilen mit je 7 formlen die sich wiederum aus werten der anderen formeln errechnen... (in diese formeln gehen dann auch statische werte aus einer db ein)... bei 15 zeilen, brauche ich 435 berechnungen, weil sobald sich eine zelle neu berechnet ich alle zellen, die sich auf dies beziehen wiederum neu berechnen muss...

hoffe, es ist einigermaßen verständlich...
Mit Zitat antworten
  #6 (permalink)  
Alt 16-08-2007, 20:23
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

ja, verständlich schon. nur kann man dir schlecht helfen.
__________________
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
  #7 (permalink)  
Alt 16-08-2007, 20:27
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

wie meinst? es gibt ja keine andere möglichkeit, als bei jeder änderung die zellen die sich darauf beziehen neu zu berechnen oder?

warum schafft das excel so schnell?

was wäre eine lösung. schnellere server?
Mit Zitat antworten
  #8 (permalink)  
Alt 16-08-2007, 20: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

Code-Benchmarking?
Mal überlegen, ob so komplexe Berechnungen überhaupt notwendig sind, oder nicht vollkommen überzogen~ etc...
Mit Zitat antworten
  #9 (permalink)  
Alt 16-08-2007, 20:38
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

angenommen, die formeln werden in diesem umfang benötigt...

ist es möglich, per cronjob mehrermals das gleiche script aufzurufen oder würde das nur den server überlasten und wiederum langsam machen...
habt ihr keine lösungsvorschläge?
Mit Zitat antworten
  #10 (permalink)  
Alt 16-08-2007, 20:45
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

mehrere Cronjobs können das Script mehrfach anstoßen. Wie sich das ganze auf deinen Server auswirkt, vermag ich nicht zu sagen.

Wenn kein optimierungspotential vorhanden ist, ist PHP evtl. die falsche Sprache?

Unseren Lösungsvorschlag, lehnst du leider stur ab!
__________________
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
  #11 (permalink)  
Alt 16-08-2007, 21:27
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

Warum machst du die Berechnungen nicht in PHP?
Mit Zitat antworten
  #12 (permalink)  
Alt 16-08-2007, 21:32
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

macht er doch?
__________________
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
  #13 (permalink)  
Alt 16-08-2007, 23:06
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

er soll einfach mal benchmarken und wir sollen nicht herumraten. wenn sich herausstellt, dass die meiste zeit darauf verschwendet wird, irgendwelche unnötigen zwischenwerte in eine xls datei auszulagern, werden wir ihm wiederholt dazu raten, die daten in einer datenbank zu speichern. die "komplizierten berechnungen", die "in diesem umfang notwendig sind" werde ich auch so lange anzweifeln, bis ich sie sehe.

ich tippe pauschal auf optimierunspotential in der architektur der anwendung. letztens erst wollte hier jemand für ein "browsergame" wissen, wie er mit einem cronjob alle paar sekunden irgendwelche einheiten vergibt, anstatt sie dann zu berechnen, wenn die anzeige angefordert wird.
Mit Zitat antworten
  #14 (permalink)  
Alt 16-08-2007, 23:13
sysop123
 Registrierter Benutzer
Links : Onlinestatus : sysop123 ist offline
Registriert seit: Aug 2006
Beiträge: 77
sysop123 ist zur Zeit noch ein unbeschriebenes Blatt
Standard Re: Ladezeiten zu groß... wie besser werden?

Zitat:
Original geschrieben von comfreak
Hallo zusammen,

ich programmiere gerade ein Projekt, das weitreichende Kalkulation im Hintergrund hat, die jeden Tag per Cronjob im Hintergrund aufgerufen werden kann.
dann kannst du das ergebnis zwischen speichern und damit ist deine frage nach 100.000 usern nicht mehr gegeben. geschickt gespeichert, können 1.000.000 user darauf zugreifen, dein cron hat die eigentliche arbeit ja schon erledigt.

Zitat:
Original geschrieben von comfreak

Bis jetzt benötigt ein Durchlauf 0,20sec... es wird aber noch umfangreicher, sodass ich pro Durchlauf 1sec benötige (gemessen mit microtime)

Das Problem ist, dass es durch aus 100.000+ User und demnach genauso viele Berechnungen geben wird. Das ist aber zeitlich nicht machbar... weil ein Tag nur 24 Stunden hat und ich das ganze eigentlich in 2 Stunden erleidgt haben wollte...

dein cron sollte von der anzahl an usern vollkommen unberührt bleiben, da sie wie oben schon geschrieben das ergebnis des crons von vorher auslesen wird.

so wie ich den thread verfolge, hast du entweder ein problem mit der formulierung deines problems oder damit, das ergebnis deines crons zu interpretieren.
dritte (für mich die derzeit wahrscheinlichste) variante deines problems könnte sein, dass du die funktion und den sinn von cron nicht erfasst hast, da dein cron niemals von jedem user einzeln angestossen werden sollte, sonst wäre cron die falsche wahl (unter linux kann der befehl man cron helfen).

ps.
so provokant das von mir klingen mag, es ist nicht wirklich so gemeint. wenn dein cron in knapp 1 sekunde dein problem (berechnung) abarbeitet, verstehe ich dein problem nicht wirklich. normalerweise kannst du wesentlich mehr zeit benötigen, da cron ein ERGEBNIS liefert, dass dann von den usern nur noch als ausgabe abgefragt wird.
Mit Zitat antworten
  #15 (permalink)  
Alt 16-08-2007, 23:30
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

Sag mal, bin ich so falsch, oder liegt ihr so falsch?

Der TO hat doch deutlich davon gesprochen, dass Pro User ca 0,3 - 1sek zeit verbraten wird. Wer redet hier nun von 1 Cron pro User, oder davon, dass das Script nur eine sekunde brauchen würde???
__________________
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
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 00:28 Uhr.