/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Fremgangsm=?ISO-8859-1?B?5Q==?=de ved chat
Fra : MacMac


Dato : 13-01-01 16:25

Hej,

Endnu en gang har jeg en generelt spørgsmål ang. performance:
Hvordan laver man mest optimalt en chat?
I øjeblikket har min chat blot 15 application variabler der holder styr på
de seneste 15 beskeder hvilket går rigtig hurtigt. Men hvad nu når man gerne
vil tilføje privat snak og flere rum? Så synes jeg det bliver en anelse
uoverskueligt med en masse applications. Samtidig synes jeg heller ikke
rigtig at der er synderligt optimalt at lave et database udtræk fra en
database hele tiden... hvad gør jeg? Hvad gør de store som Ofir og Jubii
Chat?

Venlig hilsen
Morten


 
 
Lauritz Jensen (13-01-2001)
Kommentar
Fra : Lauritz Jensen


Dato : 13-01-01 17:50

MacMac wrote:
>
> Endnu en gang har jeg en generelt spørgsmål ang. performance:
> Hvordan laver man mest optimalt en chat?
> I øjeblikket har min chat blot 15 application variabler der holder styr på
> de seneste 15 beskeder hvilket går rigtig hurtigt. Men hvad nu når man gerne
> vil tilføje privat snak og flere rum? Så synes jeg det bliver en anelse
> uoverskueligt med en masse applications.

Der er vel ikke nogen grund til at have en application variabel til hver
tekstlinie (så skal du jo også bruge tid på at flytte rundt på
teksten?). (Det virker forkert med alle de application variabler, men
man må jo ikke lægge dictionary-objekter i application/session) Hvad
lige springer i hovdet er, at have nogle application-variabler: en til
hver bruger eks. "usertext_<brugernavn>" (som indeholder brugerens
chatteskt, når der indsættes i denne sørges for at den ikke er over 10k
?), en til hver rum eks. "roomusers_<rum>" (som indeholder de brugere,
som er i rummet i en kommasepereret liste), en enkelt med rumene eks.
"rooms" og en enkelt til aktive brugere eks. "activeusers" (en
kommasepereret liste over aktive brugerer (samt et timestamp og det rum
de er i), så gamle brugere kan smides ud.
Når en siger noget til hele rumme slår du op i "roomusers_<rum>" og
tilføjer teksten til alle "usertext_<brugernavn>". Når der snakkes
privat tilføjer du kun til en "usertext_<brugernavn>". Når der skiftes
rum opdaterer du "activeusers" og "roomusers_<rum>"...

> Samtidig synes jeg heller ikke
> rigtig at der er synderligt optimalt at lave et database udtræk fra en
> database hele tiden... hvad gør jeg?

Hvorfor har du database udtræk?

> Hvad gør de store som Ofir og Jubii Chat?

Ofir køre jo caputs gamle chatsystem, som er en deamon, skevet i c, som
både indeholder chatsystemet og webserveren således at alle
informationer kan holdes i hukommelsen. Jubiis system ser ud til at have
en asp frontend, men dele af den ligger nok i nogle com-objekter, som
snakker op imod en chat-service(?). Jubii gør også det, at en stor del
af logikken ligger hos klienten, serveren behøver derfor kun at sende
nye beskeder (ikke også alle de gamle beskeder) hver gang der opdateres.
Når man skriver i f.eks. c/c++/java/o-pacal har du jo fornøjelsen af
f.eks. pointerer så du kan lave nogle optimeringer, hvor al tekst kun
findes en gang ...

(disclaimer: dette er frit fra leveren og da jeg normalt tænker bedst
med hjernen er det nok ikke optimalt

--
Lauritz

Søg
Reklame
Statistik
Spørgsmål : 177511
Tips : 31968
Nyheder : 719565
Indlæg : 6408596
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste