Minden elindított folyamatnak (ofc a programkódod minden utasítása egy-egy folyamat [na jó azért nem teljesen]) van egy futásideje, és ha ezzel számolsz, talán te is megérted:
pszeudo:
ismételd 10x: ezt
folyamat1() // futásidő 0.2mp
folyamat2() // futásidő 0.3mp
folyamat3() //futásidő 0.5mp --> pl egy nagy sql tábla beolvasása változóba
eddig
Na ez lépésenként ~1mp, azaz ha ezt mind egy szálon csinálod, 10 másodpercig fog futni a ciklus. Tehát mi laggoltat?.
Mielőtt beleköttök ebbe is, egy-egy ilyen szar függvény nyílván nem kér tizedmásodpercnyi CPU időket, csak .
Jééé, ha PAWN-ban pl:
halt(seconds)
{
new _newTime[4], _oldTime[4];
gettime(_oldTime[0], _oldTime[1], _oldTime[2]);
_oldTime[3] = _oldTime[2] + (_oldTime[1] * 60) + (_oldTime[0] * 600);
while(_newTime[3] != (_oldTime[3] + seconds))
{
gettime(_newTime[0], _newTime[1], _newTime[2]);
_newTime[3] = _newTime[2] + (_newTime[1] * 60) + (_newTime[0] * 600);
}
}
halt(30); akkor 30 másodpercig ROHADUL megáll a szerver, hisz ezt a függvényt csinálja. Írd át luába és nézd meg, ha ennyire nem értesz hozzá.