Olen värkkäämässä harjoittelun vuoksi pientä chattia käyttäen PHP, Mysql, ja AJAXia. Nyt kuitenkin aloin huolestua toteuttamastani chatin rakenteensa, joka menee suurinpiirtein näin:
joka toinen sekuntti ruudun päivitys ajaxin avulla { => poistetaan kannasta vanhat viestit (jotka eivät näy enää ruudulla) => tarkistetaan paikalla olevat käyttäjät => näytetään viestit jotka ovat vielä näkyvillä }
Tuollaista "looppia" pyöritellään siis joka toinen sekuntti. Onko tuollainen rakenne järkevä jos chatissa pyörii samanaikaisesti vaikkapa yli 50 kävijää ? Kuormittaako skripti liikaa? Haluaisin kuulla mielipiteitä asiasta.
Suurin pullonkaula tulee liikennemäärästä ja nettiyhteyden hitaudesta yleensäkin. HTTP-pyynnöt jo itsessään sisältävät melkoisesti turhaa tavaraa. Skriptillehän tuon ei pitäisi olla homma eikä mikään pienellä käyttäjämäärällä.
Itse ehkä kuitenkin kehittäisin jonkin sellaisen ratkaisun, jossa palvelinohjelma pysyisi jatkuvasti käynnissä tai vähintäänkin säilyttäisi tuon ruututiedon keskusmuistissa, jottei rajaksi tule 50 käyttäjää vaan esimerkiksi 5000.
Metabolix kirjoitti:
Suurin pullonkaula tulee liikennemäärästä ja nettiyhteyden hitaudesta yleensäkin. HTTP-pyynnöt jo itsessään sisältävät melkoisesti turhaa tavaraa. Skriptillehän tuon ei pitäisi olla homma eikä mikään pienellä käyttäjämäärällä.
Itse ehkä kuitenkin kehittäisin jonkin sellaisen ratkaisun, jossa palvelinohjelma pysyisi jatkuvasti käynnissä tai vähintäänkin säilyttäisi tuon ruututiedon keskusmuistissa, jottei rajaksi tule 50 käyttäjää vaan esimerkiksi 5000.
Tuo olisi tietenkin paras ratkaisu, mutta entä jos se ei ole mahdollista? Silloin Tumettajan ratkaisun pitäsi olla aivan riittävä pienillä käyttäjämäärillä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.