Szerző Téma: Mi lassít egy szervert?  (Megtekintve 1723 alkalommal)

Mi lassít egy szervert?
« Dátum: 2011. május 11. - 17:46:26 »
0 Show voters
Felsorolnátok nekem mindazokat a dolgokat amitõl egy szerver laggolhat?
Ha valaki már írt valamit azt lécci ne irja le más mégegyszer.

Nem elérhető a]X[e

  • 538
    • Profil megtekintése
Mi lassít egy szervert?
« Válasz #1 Dátum: 2011. május 11. - 17:50:49 »
0 Show voters
A nagyon sok objektõl..

Nem elérhető InAceX

  • 501
    • Profil megtekintése
Mi lassít egy szervert?
« Válasz #2 Dátum: 2011. május 11. - 17:53:28 »
0 Show voters
A sok kocsitól,aztán még ha sok a timer.

Mi lassít egy szervert?
« Válasz #3 Dátum: 2011. május 11. - 18:05:00 »
0 Show voters
Szerintetek
egy ilyen timer csoporttol laggolhat a szeró?
SetTimer(\"Second\",1000,1);
   SetTimer(\"GodUpdate\",5000,1);
   SetTimer(\"OnPlayerKey\",50,1);
    SetTimer(\"AutoRespawn\",600000,1);
    SetTimer(\"AutoSave\",1000,1);
    KincsTimer = SetTimer(\"KincskeresesPublic\",10000,0);
    ReakcioTimer = SetTimer(\"ReakcioTeszt\",60000,0);
    MatekTesztTimer = SetTimer(\"MatekTeszt\",30000,0);
    SetTimer(\"PositionCheck\",200,1);
fontos tudni hogy a positioncheckben foreach van helyenként egymásba töb is.
« Utoljára szerkesztve: 2011. május 11. - 18:09:20 írta hegdavid95 »

Mi lassít egy szervert?
« Válasz #4 Dátum: 2011. május 11. - 18:05:57 »
0 Show voters
az is ha házi a szerver  8) :angel: ^-^

Mi lassít egy szervert?
« Válasz #5 Dátum: 2011. május 11. - 18:13:55 »
0 Show voters
hostos
és amugy megfigyelhetõ hogy kb 15 player felett ezért gyanakszok legjobban a positionheck re ahol is egy rakás dolog van ami lefut 200 miniszekundumonként és egy helyen foreach ban foreach is van persze ez csak sok feltétel után.

Nem elérhető Csabesz

  • 7827
    • Profil megtekintése
Mi lassít egy szervert?
« Válasz #6 Dátum: 2011. május 11. - 18:18:36 »
0 Show voters
Hiába van 100 idõzítõd... A lényeg az idõzítõk tartalma!
A szerver lazán elvégzi a számolásokat, de a számolások végén munka van ott picit laggolhat.
Pl: Összes autó mentése.. Ugye itt elég nagy munka van ezért lehet lagg.

Nem elérhető kurta999

  • 2759
  • Éllő fédisznó
    • Profil megtekintése
Mi lassít egy szervert?
« Válasz #7 Dátum: 2011. május 11. - 18:35:57 »
0 Show voters
AutoSave-val egy másodpercenként mented a játékosok statját ? ( Gondolom MySQL-be xD )
Mert akkor meg is van.

Mi lassít egy szervert?
« Válasz #8 Dátum: 2011. május 11. - 18:37:34 »
0 Show voters
még arra lennék kiváncsi abbol lehet e lagg hogy végülis szinte mündenütt a mód elején létrehozott str[128] tömböt használom karakterláncok kezelésére pl SendClientMessageToAll nál meg végülis OnPlayerText nél meg mindenütt
igen gondolod hogy ez miatt?

Nem elérhető kurta999

  • 2759
  • Éllő fédisznó
    • Profil megtekintése
Mi lassít egy szervert?
« Válasz #9 Dátum: 2011. május 11. - 18:41:01 »
0 Show voters
Az, hogy felül létrehoztad ( Globálisan ), az csak jó megoldás.
Még szép, hogy azmiatt. Annál nálam is belaggol, ha elmentem a playerok statját amikor már kb van 10+ player.
Elég lenne rá egy perc is..

Mi lassít egy szervert?
« Válasz #10 Dátum: 2011. május 11. - 18:48:49 »
0 Show voters
igaz én a gmx miatt csináltam igy utolag eléggé rohadthülye megoldás volt xD
cska  irni kell egy saját gmx parancsot :P
na most asszem megérdemelném  ha valaki lójol le NOOB ozna xD

Mi lassít egy szervert?
« Válasz #11 Dátum: 2011. május 11. - 21:16:45 »
0 Show voters
Ezt a témát egyszer megvitattuk ChuckNorrissal katt ide az hogy te egyetlen egy str[128] használsz mindenhol az nem igazán nyerõ. A megfelelõ az hogy egy funkción belül használsz egy globális változót, fõleg azoknál amelyek igen csak igénybe vannak véve, gondolok itt OnPlayerText OnPlayerCommandText funkciókra, tehát a helyes megoldás:
 

new
    strcmd[128],
    strtext[128];
// Globál változók és mindegyiket külön külön használod egy adott funkción belül.
 
OnPlayerCommandText(..
{
  format(strcmd,..
}
OnPlayerText(..
{
    format(strtext, ...
}

 
Más.
Egy kérdés minek kell adatmentés rendszeres idõközönként?
Nem lenne elég csak akkor adatot menteni mikor egy esemény történik?
Pl.:
 
  • Ha lelõnek valakit akkor OnPlayerDeath alatt mentésre kerül az új kill és death score (pont).
  • Ha távozik a szerverrõl OnPlayerDisconnect mentünk mindent adatot amit kell.
  • Ha csatlakozik a szerverre OnPlayerConnect akkor csatlakozási idõpont mentés
  • Ha épp beírta és elküldte a jelszavát bejelentkezésnél akkor menteni valami adatot és még sorolhatnám.

 

Az én véleményem szerint felesleges az összes adatot újra menteni adott idõközönként.
És igen a rövid idõzítésû timerek alatt lényeges hogy mi szerepel. Itt az egy másodpercnél kisebb ismétlõdõ timerekre gondolok. (még hogy \"timerek\", mennyi angol szót veszünk már át magyarosítva?)
És igen, minek is használsz egy másodpercnél kisebb ismétlõdésû idõzítõket, szükség van rá tényleg?

Mi lassít egy szervert?
« Válasz #12 Dátum: 2011. május 12. - 20:05:47 »
0 Show voters
a GodUpdate mit takar?


Laggolhatsz attól is, ha esetleg Warning van a mododban

Nem elérhető Buba

  • 540
    • Profil megtekintése
Mi lassít egy szervert?
« Válasz #13 Dátum: 2011. május 14. - 17:16:35 »
0 Show voters

SetTimer(\"Second\",1000,1);

 
[/quote]
ez mit takar?

Nem elérhető kurta999

  • 2759
  • Éllő fédisznó
    • Profil megtekintése
Mi lassít egy szervert?
« Válasz #14 Dátum: 2011. május 19. - 21:24:38 »
0 Show voters
Nemkellett volna azt a globális változók témát zárni, mer én akarnák vmit hozzátenni :D.
Nekem ez a véleményen, hogy szerintem nem lassít a globális, mert a pawn single thread. Azaz egy dolog fut egyszerre. Akkor indul a másik, ha az elõtte lévõ lefut. Úgyhogy ugyanúgy fog végezni egy lokális változóval, mint egy globálissal.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal