php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 16-10-2006, 18:36
bärlina
 Junior Member
Links : Onlinestatus : bärlina ist offline
Registriert seit: Oct 2005
Beiträge: 131
bärlina ist zur Zeit noch ein unbeschriebenes Blatt
Question fragen zu shmop

Hi Leute,

ich hab mir grad nen kleinen chat in ajax geschrieben.. und hier dazu auch nen Thread dazu....

und machte mir sorgen um die performance.....
alle 3 sek + alle 20 sek ein select pro user !

dort wurde ich dann auf shmop hingewiesen...
weil die ewigen select querys bei vielen usern in vielen chaträumen ganz schön an der leistung und traffic nagen !?

nun hab ich aber gegoogelt und dabei rausgelesen, dass dies die server-cpu ebenfalls stark ebeinträchtigt und zudem bei vielen providern ein php-chat explizit verboten ist...

stimmt das so ?

außerdem kann ich das wohl unter WAMP nicht nutzen ?
bisher funktionierten hier jedoch meine ersten grundversuche
shmop_open,shmop_write,shmop_read,shmop_size
Mit Zitat antworten
  #2 (permalink)  
Alt 16-10-2006, 19:42
closure
 Master
Links : Onlinestatus : closure ist offline
Registriert seit: Mar 2006
Beiträge: 796
closure ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hi,
shared memory hilft dir nur wenn du mehrer instanzen
des servers hast. Und ja bei vielen providern sind php-chats
ausdrücklich verboten weil sie eben die serverload hochtreiben.
Bei nem eigenen server oder nem gemieteten root-server ist
das egal. Da liegen ja auch nicht noch andere user drauf.

Wie wärs mit nem javapplet als irc-frontend und ein enstrechender
channel im irc ?

greets
__________________
(((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")
Mit Zitat antworten
  #3 (permalink)  
Alt 16-10-2006, 20:48
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von closure
shared memory hilft dir nur wenn du mehrer instanzen des servers hast.
Wie meinen?

Nach meinem Verständnis kann man damit auch genausogut mehrere Scriptinstanzen oder Prozesse auf der selben Maschine auf einen gemeinsamen Speicherbereich zugreifen lassen - liege ich da falsch?
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #4 (permalink)  
Alt 16-10-2006, 21:50
bärlina
 Junior Member
Links : Onlinestatus : bärlina ist offline
Registriert seit: Oct 2005
Beiträge: 131
bärlina ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ich denke schon, dass der server gemietet wird.. aber nen eigenen dez.i.

ich möchte natürlich eine lösung verwenden, die leistung spart.
auch wenn ich bei shmop grad mal bei read, open und write bin


oder hat jemand einen guten lösungsansatz, wie ich die querys für meinen chat reduzieren kann... dann setze ich weiterhin auf diese lösung... den die läuft ja fast problemlos.. bis auf das eurozeichen
Mit Zitat antworten
  #5 (permalink)  
Alt 16-10-2006, 22:17
closure
 Master
Links : Onlinestatus : closure ist offline
Registriert seit: Mar 2006
Beiträge: 796
closure ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von wahsaga
Wie meinen?

Nach meinem Verständnis kann man damit auch genausogut mehrere Scriptinstanzen oder Prozesse auf der selben Maschine auf einen gemeinsamen Speicherbereich zugreifen lassen - liege ich da falsch?
Nein ich hab mich einfach etwas missverständlich ausgedrückt.
Mit serverinstanzen meinte ich instanzen eines scripts dass einen
server implementiert. Also Server im sinne von applikation die mit
einem clientprogramm kommuniziert.
Ist also genau das was es nach deinem verständnis auch ist.


greets
__________________
(((call/cc call/cc) (lambda (x) x)) "Scheme just rocks! and Ruby is magic!")
Mit Zitat antworten
  #6 (permalink)  
Alt 19-10-2006, 11:49
bärlina
 Junior Member
Links : Onlinestatus : bärlina ist offline
Registriert seit: Oct 2005
Beiträge: 131
bärlina ist zur Zeit noch ein unbeschriebenes Blatt
Standard

also gibt es darauf keine echte antwort ?

würde schon gern wissen, ob und wie ich shmop nutzen kann....
wenigstens für privat-räume, denn für jedes privat gespräch ne extra tabelle generieren und wieder löschen lassen find ich krass
Mit Zitat antworten
  #7 (permalink)  
Alt 19-10-2006, 12:23
Slava
 PHP Senior
Links : Onlinestatus : Slava ist offline
Registriert seit: Nov 2002
Ort: Köln->Karlsruhe
Beiträge: 1.589
Slava befindet sich auf einem aufstrebenden Ast
Standard

ich kann leider auch nur mein Frust ausdrucken.
z.b.s der beispiel der zum shmop bei php.net steht
http://de2.php.net/manual/de/ref.shmop.php
funktioniert bei mir leider nicht auf dem localhost(unbekannte function) sondern nur auf der Konsole. dabei hat es leider nicht geklapt von einem anderem Script auf diesen Speicher zuzugreifen.
ich glaube, dass mit einer temporärer Datei kommt man zum gleichem Ergebnis.
__________________
Slava
bituniverse.com
Mit Zitat antworten
  #8 (permalink)  
Alt 19-10-2006, 12:31
bärlina
 Junior Member
Links : Onlinestatus : bärlina ist offline
Registriert seit: Oct 2005
Beiträge: 131
bärlina ist zur Zeit noch ein unbeschriebenes Blatt
Standard

also diese einstiegsbeispiele laufen bei mir schon.
das mit der function unbekannt hatte ich nur kurz, bis ich in der php.ini das shmop freigegeben hatte...


ich nutze : apache, mysql, php5 unter WinXP.

aber ich weiß ja leider nicht, wie sich das nun mit der performance verhält....

meine auto-select-querys gegen shmop ...
bei letzterem bräuchte ich auch nur noch logfiles für den chat..
nicht für jeden raum ne extra tabelle... die sache ansich würde also schon kleiner werden.
Mit Zitat antworten
  #9 (permalink)  
Alt 19-10-2006, 13:18
Slava
 PHP Senior
Links : Onlinestatus : Slava ist offline
Registriert seit: Nov 2002
Ort: Köln->Karlsruhe
Beiträge: 1.589
Slava befindet sich auf einem aufstrebenden Ast
Standard

ich habe fast die gleiche einstellungen(xamp), und in php.ini wurde entsprechende dll freigegeben.
warum die function auf dem localhost nicht erkannt wird, un auf der console lauft, ist in moment ein rätsel für mich.

wenn es dir wirklich nur darum geht, wie es auf performance geht, dann muss du das mit bekannten methoden, wie zeitmessung mit microtime und beobachtung von speicherverbrauch, rausfinden.
__________________
Slava
bituniverse.com
Mit Zitat antworten
  #10 (permalink)  
Alt 19-10-2006, 15:31
bärlina
 Junior Member
Links : Onlinestatus : bärlina ist offline
Registriert seit: Oct 2005
Beiträge: 131
bärlina ist zur Zeit noch ein unbeschriebenes Blatt
Standard

okay... dein Hinweis hört sich sehrinteressant an !
zufällig fach-informatiker ?

aber leider fehlt mir dazu bis jetzt noch das knowHow.

okay... ich kann messen, wie lange die ausgabe einer seite dauert...
demnach auch die chatausgabe...
so kann ich messen, welche ausgabe am schnellsten läuft.

aber wichtiger wäre wohl der leistungsverbrauch... ich will ja nicht, dass mein ganzes Portal hängt, nur weil der chat alles frisst
und speicherdaten lesen bzw auswerten hab ich noch nie gemacht.
wüßte nicht mal wo ich da anfangen soll...

und mein chat wäre fast fertig, wenn die mysql version vorteile hätte.
für shmop muss ich ja noch mal von vorne beginnen...
aber ich wills mir auch nicht unbedingt einfach machen.... alle anderen module des portals sind auch immer nach besten wissen und gewissen hinsichtlicht der lösung gecodet.
Mit Zitat antworten
  #11 (permalink)  
Alt 19-10-2006, 16:36
Slava
 PHP Senior
Links : Onlinestatus : Slava ist offline
Registriert seit: Nov 2002
Ort: Köln->Karlsruhe
Beiträge: 1.589
Slava befindet sich auf einem aufstrebenden Ast
Standard

also jede anfrage an server ist natürlich leitungverbrauch, die nicht nur aus sichtbarer ausgabe, sondern auch header-ausgabe besteht.
wenn du anzahl von zeichen in header + anzahl der zeichen in ausgabe addierst, dann bekommst du als fachinformatiker ein byte-zahl, der als traffik gezählt wird ( hat aber mit shmop nichts zutun).

speicher verbrauch kannst du mit
http://de2.php.net/manual/de/functio...-get-usage.php
beobachten
schau dir auch erste notlösung bei abgeschalteter memory_get_usage in Komentaren.

Ich weis nicht, wie dein chat aufgebaut ist, aber ich glaube, dass optimal wäre es an den user nur die neue (noch nicht empfangene)Nachrichten zu senden,
da ich schon lösungen gesehen habe wo die ganze Inhalt von den letzten 12 Nachrichten jedes mal hohgeladen wird.
__________________
Slava
bituniverse.com
Mit Zitat antworten
  #12 (permalink)  
Alt 20-10-2006, 20:08
bärlina
 Junior Member
Links : Onlinestatus : bärlina ist offline
Registriert seit: Oct 2005
Beiträge: 131
bärlina ist zur Zeit noch ein unbeschriebenes Blatt
Standard

na ich bin ja keiner... aber das ändert sich ja vielleicht bald...

das mit der letzten nachricht eines chats, mach ich grad !!!
denn bis dahin wurden bei mir auch immer die nachrichten der letzten 30 min geladen. Horror-traffic

muss nur das timestamp mit übergeben. das ich eh schon hatte ...
und das select führt ann nur noch ab diesem timestamp die ausgabe durch
Mit Zitat antworten
  #13 (permalink)  
Alt 20-10-2006, 22:36
Slava
 PHP Senior
Links : Onlinestatus : Slava ist offline
Registriert seit: Nov 2002
Ort: Köln->Karlsruhe
Beiträge: 1.589
Slava befindet sich auf einem aufstrebenden Ast
Standard

es gibt verschiedene Möglichkeiten nur die letzte ungelesene Nachrichten zu bekommen und session ist dafür am bestens geeignet.
z.b.s
1)bei ankommender Abfrage schaust du die ID von der Letzter gesendeter Nachricht, die in $_SESSION['last_mesage_ID'] gespeichert ist
2)senden von Nachrichten an Client die höhere ID haben, und danch die $_SESSION['last_mesage_ID'] mit der gröster mesageID die gesendet wurde überschreiben.

und keine Panik!
Ajax hat nichts gegen Session.
__________________
Slava
bituniverse.com
Mit Zitat antworten
  #14 (permalink)  
Alt 21-10-2006, 03:47
bärlina
 Junior Member
Links : Onlinestatus : bärlina ist offline
Registriert seit: Oct 2005
Beiträge: 131
bärlina ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Slava
es gibt verschiedene Möglichkeiten nur die letzte ungelesene Nachrichten zu bekommen und session ist dafür am bestens geeignet.
z.b.s
1)bei ankommender Abfrage schaust du die ID von der Letzter gesendeter Nachricht, die in $_SESSION['last_mesage_ID'] gespeichert ist
2)senden von Nachrichten an Client die höhere ID haben, und danch die $_SESSION['last_mesage_ID'] mit der gröster mesageID die gesendet wurde überschreiben.

und keine Panik!
Ajax hat nichts gegen Session.
1.okay... das mit der session wäre sicher noch einfacher...
den wert dafür steht mir ja immer zur verfügung und kann jederzeit geändert werden.. das kapier ich und lässt sich umsetzen.

2. entweder ist es zu spät oder ich zu blöd
verstehe die ansage noch nicht.

was mir aber grad mehr sorgen macht, .. ich hab keine bzw kaum js kenntnisse (arbeite dran) .... und um die ganze sache umzusetzen müßte ich mit dem innerHTML umgehen können...
denn bisher überschreibe ich ja immer das div-element...
für diese vorgehensweise müßte ich aber jede neue ausgabe anfügen, statt zu überschreiben... und da hakts auch im moment.

da ich das mit dem anfügen statt überschreiben schon mal versucht habe, wurde mir auch mal dieser ansatz gepostet...
aber irgendwie konnte ich das bisher nicht mit meiner ausgabe kombinieren

PHP-Code:
<script type="text/javascript">
<!--
var 
inhalt_alt document.getElementById('asb_content').innerHTML;
var 
inhalt_neu xmlHttp.responseText
document.getElementById('asb_content').innerHTML inhalt_neu inhalt_alt;
-->
</script> 
Mit Zitat antworten
  #15 (permalink)  
Alt 21-10-2006, 12:46
Slava
 PHP Senior
Links : Onlinestatus : Slava ist offline
Registriert seit: Nov 2002
Ort: Köln->Karlsruhe
Beiträge: 1.589
Slava befindet sich auf einem aufstrebenden Ast
Standard

das sieht schon mal gut aus, aber du muss statt
document.getElementById('asb_content').innerHTML = inhalt_neu + inhalt_alt;

document.getElementById('asb_content').innerHTML = inhalt_alt+
inhalt_neu;

schreiben
__________________
Slava
bituniverse.com
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

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 06:04 Uhr.