FAQ |
Kalender |
|
![]() |
#1 | ||
|
|||
Medlem
|
node.js tycker jag ser helt fantastiskt ut men jag har haft en jäkla tid att försöka installera det och sen köra. Det funkar inte :/.
Men mitt sätt som ja beskrev det gör ju att på varje request så hämtar en innehål ur en fil och inte en fråga till databasen. Det borde väl vara såååå mycket snabbare? |
||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Flitig postare
|
Nja, är mer eller mindre de samma. Handlar mer om datamängd då. Databaser är snabba.
Däremot får du se upp så att du inte ställer till det när det skrivs i filen. Så inte två försöker skriva samtidigt. Dvs lås filen, öppna och skriv, spara filen och sen går det att skriva i filen igen. |
||
![]() |
![]() |
![]() |
#3 | ||
|
|||
Klarade millennium-buggen
|
Citat:
|
||
![]() |
![]() |
![]() |
#4 | ||
|
|||
Administratör
|
Citat:
Använder du en push-teknologi istället så kommer en ny kommentar att pushas ut direkt till de andra i chatten och därmed inte behövas hämtas från databasen annat än om en ny användare ska få gammal chat-data (även här kan man eventuellt behålla en array i node.js som man skickar till nya klienter). Måste du tvunget använda pull så skulle jag dock göra mig av med text-filen, du får en fördröjning på upp till 1.99s om reload och text-fil är max out of sync. Och om du vill halvera den fördröjningen genom att skriva alla uppdateringar direkt till text-filen så finns en viss risk att du korrumperar text-filen. Istället för text-filen borde du isåfall fundera över antingen en cache (memcache, apc etc) eller byta till en mycket lättare databas-lösning (se t ex Redis, Membase). Om du gör detta så kommer ditt val av pull att ge dig en första bottleneck i CPU eller RAM vid ditt dynamiska språk som PHP/Ruby/vadsom (förutsatt att du använder en bra webbserver). Men som redan tidigare föreslagits, push är absolut bäst.
__________________
eldefors.com - Personlig (teknik)-blogg |
||
![]() |
![]() |
![]() |
#5 | |||
|
||||
Har WN som tidsfördriv
|
Citat:
Citat:
Men som sagt är push en bättre lösning, men också betydligt svårare och jobbigare att implementera. Så gör det enkelt för dig och kör du på AJAX + textfil till att börja med om du känner dig osäker på det där med push. Det går ju alltid att byta till push senare om behovet skulle finnas. |
|||
![]() |
![]() |
![]() |
#6 | ||
|
|||
Klarade millennium-buggen
|
Databaser brukar normalt ta hand om cachening så det är mest naturligt att låta databasen hantera detta och inte lägga utvecklingstid på sånt som hanteras automatiskt.
|
||
![]() |
![]() |
![]() |
#7 | |||
|
||||
Har WN som tidsfördriv
|
Visst, men det är väldigt stor skillnad i prestanda och resursåtgång mellan query cache i databasen och en vettig applikationscache. Är det dessutom tal om många förfrågningar av exakta samma data finns det ju ingen anledning till att inte cacha. Det blir sällan mer än 2-3 rader kod extra per query som ska cachas så utvecklingstiden blir ju inte något att tala om.
|
|||
![]() |
![]() |
![]() |
#8 | ||
|
|||
Administratör
|
Citat:
Fördelen med memcache/http proxy är att de skalar utan problem från 1 server till 100, från 1 skrivning i sekunden till 100 skrivningar i sekunden och 100 anrop i sekunden till 10 000 anrop i sekunden. Ska du hantera detta med på ett bra sätt med 4234242 textfiler (när chatten även har privata konversationer en längre tid) i slutändan så har du nog skrivit en väldigt ineffektiv cachelösning som dessutom slukar serverns diskcache. Och dessa fördelar får du med mindre jobb och krångel från första början... (förutsatt att du någonsin sett eller använt memcache kanske).
__________________
eldefors.com - Personlig (teknik)-blogg |
||
![]() |
![]() |
![]() |
#9 | |||
|
||||
Har WN som tidsfördriv
|
Citat:
Utifrån TS frågeställning här känns det inte som det finns några behov av en extremt högpresterande och skalbar lösning och då bör man nog hålla det så enkelt som möjligt, så länge man är medveten om alternativen och beredd på att göra om när man får prestandaproblem. Räknar man med ett stort antal besökare direkt är det såklart en helt annan sak, men jag fick uppfattningen om att det inte var fallet här. Om man har en vettig webbserver(t.ex. Nginx) så blir vinsten med att köra en reverse proxy framför väldigt liten när man bara ska serva statiskt innehåll som i det här fallet. Nu skulle det ju bara vara en chatt, och då hanterar diskcachen detta tillräckligt bra. Att blanda in C för detta känns väldigt avlägset. Då är det mycket bättre att satsa på en pushlösning direkt i så fall. |
|||
![]() |
![]() |
![]() |
#10 | |||
|
||||
Administratör
|
Citat:
Citat:
Citat:
__________________
eldefors.com - Personlig (teknik)-blogg |
|||
![]() |
![]() |
Svara |
|
|