GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Leírások/Útmutatók => A témát indította: GroX - 2011. Június 28. - 10:49:25

Cím: Alternatív módja az összes játékos elérésének.
Írta: GroX - 2011. Június 28. - 10:49:25
Ebben a kis leckében el fogom magyarázni a másik módszerét az összes játékos elérésének.
Nyílván mindenki ismeri a \"for\" ciklust... Az is hatásos, viszont lassabb, mint a while.
Most a while-t fogjuk használni.
 
new players = 0; //létrehozzuk a játékosoknak szánt változót
while(players < MAX_PLAYERS) //megkezdjük a ciklust, megadjuk a feltételt: amíg a játékos változónk kisebb mint a MAX_PLAYERS
{
//csinálni ezt azt, pl: GetPlayerHealth(players);
players++; //játékos változó növelése (tehát a következõ lefutásban a következû ID-û játékost fogja kezelni
}

 
A tesztek szerint gyorsabb, igazi helyzetben még nem nagyon próbáltam ki.
E: Lefuttattam néhány tesztet megint, bizonyos helyzetekben gyorsabb, néha nem. Az én észrevételeim szerint kevesebb mûveletnél gyorsabb.
Cím: Alternatív módja az összes játékos elérésének.
Írta: MaD - 2011. Június 28. - 20:02:28
Hasznos, sokaknak segíthet :)
Cím: Alternatív módja az összes játékos elérésének.
Írta: jana4 - 2011. Június 28. - 20:17:05
Kiváncsi lennék 1-2 profibb szkripter véleményére, pl. Zsolesszka, Epsilon...

Csak hogy megtudjam mennyire jobb a for-al ellentétben.
Cím: Alternatív módja az összes játékos elérésének.
Írta: Koncz_Norbert - 2011. Június 28. - 21:20:56

SA-MP Dedicated Server
----------------------
v0.3c R2, (C)2005-2011 SA-MP Team
[21:18:32]
[21:18:32] Server Plugins
[21:18:32] --------------
[21:18:32]  Loaded 0 plugins.
[21:18:32]
[21:18:32] Filter Scripts
[21:18:32] ---------------
[21:18:32]   Loaded 0 filter scripts.
[21:18:32] ------------------------------------------
[21:18:32]  1. menet :
[21:18:32]  [  for  ]  [ Eredmény : 6 ]
[21:18:32]  [ while ]  [ Eredmény : 2 ]
[21:18:32] ------------------------------------------
[21:18:32]  2. menet :
[21:18:32]  [  for  ]  [ Eredmény : 3 ]
[21:18:32]  [ while ]  [ Eredmény : 1 ]
[21:18:32] ------------------------------------------
[21:18:32]  3. menet :
[21:18:32]  [  for  ]  [ Eredmény : 4 ]
[21:18:32]  [ while ]  [ Eredmény : 2 ]
[21:18:32] ------------------------------------------
[21:18:32]  4. menet :
[21:18:32]  [  for  ]  [ Eredmény : 4 ]
[21:18:32]  [ while ]  [ Eredmény : 8 ]
[21:18:32] ------------------------------------------
[21:18:32]  5. menet :
[21:18:32]  [  for  ]  [ Eredmény : 2 ]
[21:18:32]  [ while ]  [ Eredmény : 11 ]
[21:18:32] Number of vehicle models: 0
[21:18:40] --- Server Shutting Down.

 
Lehet elbattam :laugh:
Szerk1.: Jah. Most már rájöttem :D
Szerk2.:
 

[22:13:43] ---------------------------------------
[22:13:43] [for ciklus loop]    Teszt eleje: 44644775, Teszt vége: 44644776, Idõköz: 1 
[22:13:43] [while ciklus loop]  Teszt eleje: 44644776, Teszt vége: 44644776, Idõköz: 0 
[22:13:43] ---------------------------------------
Cím: Alternatív módja az összes játékos elérésének.
Írta: Zsolesszka - 2011. Június 29. - 02:04:55
@Koncz Norbert
Ilyen eredményeket hogy is kaptál?
Csak azért mert nem csak az eredményt szokás postolni hanem a kódot is amivel ezeket kaptad, ha valaki kíváncsi lenne a saját gépén is hasonló lenne-e az eredmény, akkor könnyebben tudná ezt megtenni ha a kód is postolva lenne.
Egyébként Fade már választ is adott a kérdésre ami felmerült a topicban.
 
Idézetet írta: Fade シ date=1309250965\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"9234\" data-ipsquote-contentclass=\"forums_Topic
E: Lefuttattam néhány tesztet megint, bizonyos helyzetekben gyorsabb, néha nem. Az én észrevételeim szerint kevesebb mûveletnél gyorsabb.
 
Például az IsPrime topicban a for ciklus lett a gyorsabb a while helyett.
Abban még az is kiderült ha egy változó értéket kettesével kell növelni akkor
 

i += 2;

 
helyett gyorsabb
 

i++; i++;

 
ez a forma.
Cím: Alternatív módja az összes játékos elérésének.
Írta: GroX - 2011. Június 29. - 11:55:13
Idézetet írta: Zsolesszka date=1309305895\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"9234\" data-ipsquote-contentclass=\"forums_Topic
Abban még az is kiderült ha egy változó értéket kettesével kell növelni akkor
 

i += 2;

 
helyett gyorsabb
 

i++; i++;

 
ez a forma.
 
Pontosan. Ehhez még azt is megjegyezném, hogy bizonyos szempontokból a += rövidítés nem azt csinálja, amit akarunk. Ezt egy korábbi témában leírtam, nem tudom pawn-ban ez így megy-e, sok más program nyelvnél gondot okozott.
Cím: Alternatív módja az összes játékos elérésének.
Írta: Zsolesszka - 2011. Június 29. - 18:18:28
Hát lefuttattam én is pár tesztet aminek az eredményét közlöm nem sokára és elég érdekes dolog lesz a végeredménye:
Kezdetnek itt a script amivel vizsgálom:
[pawn]
#include <a_samp>
/*
A tesztnél törekedtem arra hogy az egyik vizsgált funkció ugyanannyiszor fusson le mint a másik,
kinézetre hasonló legyen mind a kettõ.
*/
#define ISMETLODESERTEK 5000 // Egy vizsgált mûveletet többször kell lefuttatni ahhoz hogy mérhetõ idõbeli különbséget kapjunk,
                     // ennek az ismetlõdésnek a lefuttatott tesztek során nõvelhetjük vagy csökkenthetjük tetszés szerint az értékét
                     // értelem szerûen ha egy vizsgált kód vagy kód sorozat kevés(rövid kinek hogy tetszik) akkor sokkal több ismétlõdésre van szükség akár 1 millio is
                     // ahhoz hogy látható mérési eredményt kapjunk.
stock
forteszt()
{
new
   count = 0,                                                // Változó azért hogy tudjuk ellenõrízni hogy mind a két vizsgált kód ugyanannyiszor ismétlõdõtt-e?      
   loop = 0;
for(new i; i < ISMETLODESERTEK; i++)                               // Többszörös ismétlõdés azért hogy mérhetõ idõbeli különbséget kapjunk.
{
// A vizsgálandó kód:
   loop = 0;
   for( ; loop < ISMETLODESERTEK; )
   {
      loop++;
      count++;
   }
//
}
return count;
}
stock
whileteszt()
{
new
   count = 0,                                             // Változó azért hogy tudjuk ellenõrízni hogy mind a két vizsgált kód ugyanannyiszor ismétlõdõtt-e?
   loop = 0;
for(new i; i < ISMETLODESERTEK; i++)                               // Többszörös ismétlõdés azért hogy mérhetõ idõbeli különbséget kapjunk.
{
// A vizsgálandó kód:
   loop = 0;                                                 // Itt nullázva a ciklus léptetésének változója azért hogy minden egyes alkalommal végig fusson.
   while(loop < ISMETLODESERTEK)
   {
      loop++;
      count++;
   }
//
}
return count;
}
public
OnFilterScriptInit()
{
// És hogy még biztosabb eredményt kapjunk érdemes még ezt az egészet is többször lefuttatni mondjuk 5 alkalommal
for(new t; t < 5; t++)
{
   printf(\"[----------------------------------------------------------]\");
   printf(\"Az egész vizsgálat többszöri lefutása %d. alkalommal.\", t + 1);
   printf(\" \");
   new time; // Az eltelt idõ kiszámításához szükséges változó
   new count; // A tesztelt dolgok ismétlõdésének ellenõrzésének változója
//------
   time = GetTickCount();                                        // vizsgálat kezdetének ideje tárolva time változóban.
   count = whileteszt(); // A tesztelt funkció
   time = GetTickCount() - time; printf(\"while ciklus ideje: %dms | Ismétlõdések száma: %d\", time, count);      // Teszt lefutásának vége az eltelt idõ kiszámítása eredmény kiírása konzolba   
//------
   time = GetTickCount();
   count = forteszt(); // A tesztelt funkció
   time = GetTickCount() - time; printf(\"for ciklus ideje: %dms | Ismétlõdések száma: %d\", time, count);      // Teszt lefutásának vége az eltelt idõ kiszámítása eredmény kiírása konzolba
//------
   time = GetTickCount();
   count = forteszt(); // A tesztelt funkció
   time = GetTickCount() - time; printf(\"for ciklus ideje: %dms | Ismétlõdések száma: %d\", time, count);      // Teszt lefutásának vége az eltelt idõ kiszámítása eredmény kiírása konzolba
//------
   time = GetTickCount();
   count = whileteszt(); // A tesztelt funkció
   time = GetTickCount() - time; printf(\"while ciklus ideje: %dms | Ismétlõdések száma: %d\", time, count);    // Teszt lefutásának vége az eltelt idõ kiszámítása eredmény kiírása konzolba
//------
   printf(\" \");
}
}
[/pawn]
És az eredmény:
 

[18:10:09] Az egész vizsgálat többszöri lefutása 1. alkalommal.
[18:10:09] 
[18:10:12] while ciklus ideje: 3022ms | Ismétlõdések száma: 25000000
[18:10:15] for ciklus ideje: 2979ms | Ismétlõdések száma: 25000000
[18:10:18] for ciklus ideje: 3046ms | Ismétlõdések száma: 25000000
[18:10:21] while ciklus ideje: 2955ms | Ismétlõdések száma: 25000000
[18:10:21] 
[18:10:21] [----------------------------------------------------------]
[18:10:21] Az egész vizsgálat többszöri lefutása 2. alkalommal.
[18:10:21] 
[18:10:24] while ciklus ideje: 3061ms | Ismétlõdések száma: 25000000
[18:10:27] for ciklus ideje: 3013ms | Ismétlõdések száma: 25000000
[18:10:31] for ciklus ideje: 3464ms | Ismétlõdések száma: 25000000
[18:10:34] while ciklus ideje: 3002ms | Ismétlõdések száma: 25000000
[18:10:34] 
[18:10:34] [----------------------------------------------------------]
[18:10:34] Az egész vizsgálat többszöri lefutása 3. alkalommal.
[18:10:34] 
[18:10:37] while ciklus ideje: 2970ms | Ismétlõdések száma: 25000000
[18:10:40] for ciklus ideje: 2981ms | Ismétlõdések száma: 25000000
[18:10:43] for ciklus ideje: 2982ms | Ismétlõdések száma: 25000000
[18:10:46] while ciklus ideje: 2971ms | Ismétlõdések száma: 25000000
[18:10:46] 
[18:10:46] [----------------------------------------------------------]
[18:10:46] Az egész vizsgálat többszöri lefutása 4. alkalommal.
[18:10:46] 
[18:10:49] while ciklus ideje: 2981ms | Ismétlõdések száma: 25000000
[18:10:52] for ciklus ideje: 3071ms | Ismétlõdések száma: 25000000
[18:10:55] for ciklus ideje: 3129ms | Ismétlõdések száma: 25000000
[18:10:58] while ciklus ideje: 3178ms | Ismétlõdések száma: 25000000
[18:10:58] 
[18:10:58] [----------------------------------------------------------]
[18:10:58] Az egész vizsgálat többszöri lefutása 5. alkalommal.
[18:10:58] 
[18:11:01] while ciklus ideje: 3088ms | Ismétlõdések száma: 25000000
[18:11:04] for ciklus ideje: 3111ms | Ismétlõdések száma: 25000000
[18:11:07] for ciklus ideje: 2968ms | Ismétlõdések száma: 25000000
[18:11:10] while ciklus ideje: 3017ms | Ismétlõdések száma: 25000000

 
Ezután csak a tesztelt ciklus képletet és az eredményt közlöm.
Edit1:
[pawn]
//
   loop = 0;                                                 
   while(loop++ != ISMETLODESERTEK) {count++;}
//
   loop = 0;
   for(; loop++ != ISMETLODESERTEK;) {count++;}
//
//[18:28:53] while ciklus ideje: 1818ms | Ismétlõdések száma: 25000000
//[18:28:55] for ciklus ideje: 1801ms | Ismétlõdések száma: 25000000
[/pawn]
Edit2:
[pawn]
//
   loop = 0;                                                 
   while(loop != ISMETLODESERTEK) {loop++; count++;}
//
   loop = 0;
   for(; loop != ISMETLODESERTEK;) {loop++; count++;}
//
//[18:34:13] while ciklus ideje: 2541ms | Ismétlõdések száma: 25000000
//[18:34:15] for ciklus ideje: 2524ms | Ismétlõdések száma: 25000000
[/pawn]
Hát szóval én arra a következtetésre jutottam hogy nem igazán lehet eldönteni melyik ciklus utasítás gyorsabb különbözõ féle képpen lehet megírni õket és elég nagy eltéréseket lehet mérni köztük.
Annyi bizonyossá vált számomra hogy ha a ciklus utasításban magában a feltétel vizsgálatban van kiadva a változó értékének növelése, jóval gyorsabb lefutási idejû kódot kapunk.
 
while(loop++ != ISMETLODESERTEK)
for(; loop++ != ISMETLODESERTEK;)
[/quote]
Cím: Alternatív módja az összes játékos elérésének.
Írta: Koncz_Norbert - 2011. Június 29. - 18:56:01

...
 
[18:10:12] while ciklus ideje: 3022ms | Ismétlõdések száma: 25000000
[18:10:15] for ciklus ideje: 2979ms | Ismétlõdések száma: 25000000
[18:10:18] for ciklus ideje: 3046ms | Ismétlõdések száma: 25000000
[18:10:21] while ciklus ideje: 2955ms | Ismétlõdések száma: 25000000

 
...
 
[/quote]
Jó lassú géped van. :D
2000 milliszekundum = 2 másodpercnek felel meg.
Amúgy meg minek kell megismételni 5000-szer mikor csak 500 slottos lehet 1 szerver.
Cím: Alternatív módja az összes játékos elérésének.
Írta: Zsolesszka - 2011. Június 29. - 19:18:08
Idézetet írta: Koncz Norbert date=1309366561\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"9234\" data-ipsquote-contentclass=\"forums_Topic


...
 
[18:10:12] while ciklus ideje: 3022ms | Ismétlõdések száma: 25000000
[18:10:15] for ciklus ideje: 2979ms | Ismétlõdések száma: 25000000
[18:10:18] for ciklus ideje: 3046ms | Ismétlõdések száma: 25000000
[18:10:21] while ciklus ideje: 2955ms | Ismétlõdések száma: 25000000

 
...
 
Jó lassú géped van. :D
2000 milliszekundum = 2 másodpercnek felel meg.
Amúgy meg minek kell megismételni 5000-szer mikor csak 500 slottos lehet 1 szerver.
 
[/quote]
Hát ez van nem anyám vette nekem, úgy dolgoztam meg érte de mindegy.
Kösz az elméleti oktatást nem tudtam tényleg hogy 2000ms az 2 másodperc.
Nem az a lényeg hogy most 5 ezerszer van ismételve mert 500 a max slot!  :D
És slotos.
És te milyen eredményeket kaptál a gépeden a fenti kód lefuttatásával? (Nem kell ám átírni az eredményeket!)
Edit:
Újabb teszteket futtattam le más vizsgálandó dolgokkal és az meg teljesen felborította a következtetésem, most ott tartok hogy minden egyes kódnak szinte más és más ciklus utasítás a megfelelõ. Ez van, ezt kell szeretni.
Cím: Alternatív módja az összes játékos elérésének.
Írta: GroX - 2011. Június 29. - 19:40:01
Idézetet írta: Zsolesszka date=1309367888\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"9234\" data-ipsquote-contentclass=\"forums_Topic
Újabb teszteket futtattam le más vizsgálandó dolgokkal és az meg teljesen felborította a következtetésem, most ott tartok hogy minden egyes kódnak szinte más és más ciklus utasítás a megfelelõ. Ez van, ezt kell szeretni.
 
Igen, én is ezt vettem észre, csak hát igen nehéz észrevenni, hogy hol gyorsabb, bár ezzel jobban lehet optimalizálni a kódunkat.
Bár én eddig nem nagyon használtam :D
Cím: Alternatív módja az összes játékos elérésének.
Írta: Koncz_Norbert - 2011. Június 29. - 19:57:51
CPU: 10-14%, PF: 669 MB
 

SA-MP Dedicated Server
----------------------
v0.3c R2, (C)2005-2011 SA-MP Team
[19:38:09]
[19:38:09] Server Plugins
[19:38:09] --------------
[19:38:09]  Loaded 0 plugins.
[19:38:09]
[19:38:09] Filter Scripts
[19:38:09] ---------------
[19:38:09]   Loaded 0 filter scripts.
[19:38:09] [----------------------------------------------------------]
[19:38:09] Az egész vizsgálat többszöri lefutása 1. alkalommal.
[19:38:09] 
[19:38:10] while ciklus ideje: 1332ms | Ismétlõdések száma: 25000000
[19:38:12] for ciklus ideje: 1331ms | Ismétlõdések száma: 25000000
[19:38:13] for ciklus ideje: 1331ms | Ismétlõdések száma: 25000000
[19:38:14] while ciklus ideje: 1335ms | Ismétlõdések száma: 25000000
[19:38:14] 
[19:38:14] [----------------------------------------------------------]
[19:38:14] Az egész vizsgálat többszöri lefutása 2. alkalommal.
[19:38:14] 
[19:38:16] while ciklus ideje: 1332ms | Ismétlõdések száma: 25000000
[19:38:17] for ciklus ideje: 1342ms | Ismétlõdések száma: 25000000
[19:38:18] for ciklus ideje: 1343ms | Ismétlõdések száma: 25000000
[19:38:20] while ciklus ideje: 1339ms | Ismétlõdések száma: 25000000
[19:38:20] 
[19:38:20] [----------------------------------------------------------]
[19:38:20] Az egész vizsgálat többszöri lefutása 3. alkalommal.
[19:38:20] 
[19:38:21] while ciklus ideje: 1337ms | Ismétlõdések száma: 25000000
[19:38:22] for ciklus ideje: 1344ms | Ismétlõdések száma: 25000000
[19:38:24] for ciklus ideje: 1339ms | Ismétlõdések száma: 25000000
[19:38:25] while ciklus ideje: 1333ms | Ismétlõdések száma: 25000000
[19:38:25] 
[19:38:25] [----------------------------------------------------------]
[19:38:25] Az egész vizsgálat többszöri lefutása 4. alkalommal.
[19:38:25] 
[19:38:26] while ciklus ideje: 1326ms | Ismétlõdések száma: 25000000
[19:38:28] for ciklus ideje: 1328ms | Ismétlõdések száma: 25000000
[19:38:29] for ciklus ideje: 1327ms | Ismétlõdések száma: 25000000
[19:38:30] while ciklus ideje: 1325ms | Ismétlõdések száma: 25000000
[19:38:30] 
[19:38:30] [----------------------------------------------------------]
[19:38:30] Az egész vizsgálat többszöri lefutása 5. alkalommal.
[19:38:30] 
[19:38:32] while ciklus ideje: 1324ms | Ismétlõdések száma: 25000000
[19:38:33] for ciklus ideje: 1326ms | Ismétlõdések száma: 25000000
[19:38:34] for ciklus ideje: 1327ms | Ismétlõdések száma: 25000000
[19:38:36] while ciklus ideje: 1328ms | Ismétlõdések száma: 25000000
[19:38:36] 
[19:38:36] Number of vehicle models: 0

 


CPU 4-8%, PF, 490MB
 
SA-MP Dedicated Server
----------------------
v0.3c R2, (C)2005-2011 SA-MP Team
[19:45:00]
[19:45:00] Server Plugins
[19:45:00] --------------
[19:45:00]  Loaded 0 plugins.
[19:45:00]
[19:45:00] Filter Scripts
[19:45:00] ---------------
[19:45:00]   Loaded 0 filter scripts.
[19:45:00] [----------------------------------------------------------]
[19:45:00] Az egész vizsgálat többszöri lefutása 1. alkalommal.
[19:45:00] 
[19:45:01] while ciklus ideje: 894ms | Ismétlõdések száma: 25000000
[19:45:03] for ciklus ideje: 901ms | Ismétlõdések száma: 25000000
[19:45:04] for ciklus ideje: 902ms | Ismétlõdések száma: 25000000
[19:45:05] while ciklus ideje: 898ms | Ismétlõdések száma: 25000000
[19:45:05] 
[19:45:05] [----------------------------------------------------------]
[19:45:05] Az egész vizsgálat többszöri lefutása 2. alkalommal.
[19:45:05] 
[19:45:06] --- Server Shutting Down.
[19:45:07] while ciklus ideje: 896ms | Ismétlõdések száma: 25000000
[19:45:08] for ciklus ideje: 909ms | Ismétlõdések száma: 25000000
[19:45:09] for ciklus ideje: 910ms | Ismétlõdések száma: 25000000
[19:45:11] while ciklus ideje: 896ms | Ismétlõdések száma: 25000000
[19:45:11] 
[19:45:11] [----------------------------------------------------------]
[19:45:11] Az egész vizsgálat többszöri lefutása 3. alkalommal.
[19:45:11] 
[19:45:12] while ciklus ideje: 901ms | Ismétlõdések száma: 25000000
[19:45:13] for ciklus ideje: 920ms | Ismétlõdések száma: 25000000
[19:45:15] for ciklus ideje: 918ms | Ismétlõdések száma: 25000000
[19:45:16] while ciklus ideje: 895ms | Ismétlõdések száma: 25000000
[19:45:16] 
[19:45:16] [----------------------------------------------------------]
[19:45:16] Az egész vizsgálat többszöri lefutása 4. alkalommal.
[19:45:16] 
[19:45:17] while ciklus ideje: 905ms | Ismétlõdések száma: 25000000
[19:45:19] for ciklus ideje: 904ms | Ismétlõdések száma: 25000000
[19:45:20] for ciklus ideje: 909ms | Ismétlõdések száma: 25000000
[19:45:21] while ciklus ideje: 901ms | Ismétlõdések száma: 25000000
[19:45:21] 
[19:45:21] [----------------------------------------------------------]
[19:45:21] Az egész vizsgálat többszöri lefutása 5. alkalommal.
[19:45:21] 
[19:45:23] while ciklus ideje: 930ms | Ismétlõdések száma: 25000000
[19:45:24] for ciklus ideje: 950ms | Ismétlõdések száma: 25000000
[19:45:25] for ciklus ideje: 931ms | Ismétlõdések száma: 25000000
[19:45:27] while ciklus ideje: 945ms | Ismétlõdések száma: 25000000
[19:45:27] 
[19:45:27] Number of vehicle models: 0

 
Nincs rajta változtatás
Ismétlõdések száma meg marhaság volt. Már ránézésbõl is rálehet jönni hogy 25 000 000. Egy kis szorzás :D
Cím: Alternatív módja az összes játékos elérésének.
Írta: Zsolesszka - 2011. Június 29. - 21:37:32
Idézetet írta: Koncz Norbert date=1309370271\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"9234\" data-ipsquote-contentclass=\"forums_Topic
Nincs rajta változtatás
Ismétlõdések száma meg marhaság volt. Már ránézésbõl is rálehet jönni hogy 25 000 000. Egy kis szorzás :D
 
Az ismétlõdések száma csak egy ellenõrzés hogy a két vizsgált folyamat tényleg annyiszor fut-e le.
Szép teszt lehet nekem is csak ezt az egyet kellene betennem nem 8 filterscriptet 5 plugint mikor a teszteket próbálgatom:
Meg is tettem  8)
 

v0.3c R2, (C)2005-2011 SA-MP Team
[21:31:49] filterscripts = \"\"  (string)
[21:31:49]
[21:31:49] Server Plugins
[21:31:49] --------------
[21:31:49]  Loaded 0 plugins.
[21:31:49]
[21:31:49] Ban list
[21:31:49] --------
[21:31:49]  Loaded: samp.ban
[21:31:49]
[21:31:49]
[21:31:49] Filter Scripts
[21:31:49] ---------------
[21:31:49]   Loaded 0 filter scripts.
[21:31:49] [----------------------------------------------------------]
[21:31:49] Az egész vizsgálat többszöri lefutása 1. alkalommal.
[21:31:49] 
[21:31:50] while ciklus ideje: 948ms | Ismétlõdések száma: 25000000
[21:31:51] for ciklus ideje: 1272ms | Ismétlõdések száma: 25000000
[21:31:53] for ciklus ideje: 1293ms | Ismétlõdések száma: 25000000
[21:31:54] while ciklus ideje: 943ms | Ismétlõdések száma: 25000000
[21:31:54] 
[21:31:54] [----------------------------------------------------------]
[21:31:54] Az egész vizsgálat többszöri lefutása 2. alkalommal.
[21:31:54] 
[21:31:55] while ciklus ideje: 938ms | Ismétlõdések száma: 25000000
[21:31:56] for ciklus ideje: 1271ms | Ismétlõdések száma: 25000000
[21:31:57] for ciklus ideje: 1264ms | Ismétlõdések száma: 25000000
[21:31:58] while ciklus ideje: 937ms | Ismétlõdések száma: 25000000
[21:31:58] 
[21:31:58] [----------------------------------------------------------]
[21:31:58] Az egész vizsgálat többszöri lefutása 3. alkalommal.
[21:31:58] 
[21:31:59] while ciklus ideje: 939ms | Ismétlõdések száma: 25000000
[21:32:00] for ciklus ideje: 1272ms | Ismétlõdések száma: 25000000
[21:32:02] for ciklus ideje: 1269ms | Ismétlõdések száma: 25000000
[21:32:02] while ciklus ideje: 946ms | Ismétlõdések száma: 25000000
[21:32:02] 
[21:32:02] [----------------------------------------------------------]
[21:32:02] Az egész vizsgálat többszöri lefutása 4. alkalommal.
[21:32:02] 
[21:32:03] while ciklus ideje: 933ms | Ismétlõdések száma: 25000000
[21:32:05] for ciklus ideje: 1283ms | Ismétlõdések száma: 25000000
[21:32:06] for ciklus ideje: 1257ms | Ismétlõdések száma: 25000000
[21:32:07] while ciklus ideje: 932ms | Ismétlõdések száma: 25000000
[21:32:07] 
[21:32:07] [----------------------------------------------------------]
[21:32:07] Az egész vizsgálat többszöri lefutása 5. alkalommal.
[21:32:07] 
[21:32:08] while ciklus ideje: 949ms | Ismétlõdések száma: 25000000
[21:32:09] for ciklus ideje: 1257ms | Ismétlõdések száma: 25000000
[21:32:10] for ciklus ideje: 1268ms | Ismétlõdések száma: 25000000
[21:32:11] while ciklus ideje: 984ms | Ismétlõdések száma: 25000000
[21:32:11] 
[21:32:11] Number of vehicle models: 0
Cím: Alternatív módja az összes játékos elérésének.
Írta: Koncz_Norbert - 2011. Június 29. - 22:10:22
Nice result. while WIN! Én inkább maradok a Cpp és a Batch-nál, mellé az inicializálás.
De azt nézem hogy a két eredmény között van eltérés.
 

[21:31:49] [----------------------------------------------------------]
[21:31:49] Az egész vizsgálat többszöri lefutása 1. alkalommal.
[21:31:49] 
[21:31:50] while ciklus ideje: 948ms | Ismétlõdések száma: 25000000
[21:31:51] for ciklus ideje: 1272ms | Ismétlõdések száma: 25000000
[21:31:53] for ciklus ideje: 1293ms | Ismétlõdések száma: 25000000
[21:31:54] while ciklus ideje: 943ms | Ismétlõdések száma: 25000000
[21:31:54] 
[21:31:54] [----------------------------------------------------------]

 


[19:38:09] [----------------------------------------------------------]
[19:38:09] Az egész vizsgálat többszöri lefutása 1. alkalommal.
[19:38:09] 
[19:38:10] while ciklus ideje: 1332ms | Ismétlõdések száma: 25000000
[19:38:12] for ciklus ideje: 1331ms | Ismétlõdések száma: 25000000
[19:38:13] for ciklus ideje: 1331ms | Ismétlõdések száma: 25000000
[19:38:14] while ciklus ideje: 1335ms | Ismétlõdések száma: 25000000
[19:38:14] 
[19:38:14] [----------------------------------------------------------]

 
Neked mennyi volt a CPU Usage?
Cím: Alternatív módja az összes játékos elérésének.
Írta: Zsolesszka - 2011. Június 29. - 23:05:19
Idézetet írta: Koncz Norbert date=1309378222\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"9234\" data-ipsquote-contentclass=\"forums_Topic
Neked mennyi volt a CPU Usage?
 
Elég magas míg a teszt futott
CPU 55 % memoria 1.07GB 
amint végzett
CPU 10-15 % memoria 1.04GB
Cím: Alternatív módja az összes játékos elérésének.
Írta: TengeriMalac - 2011. Július 12. - 22:22:00
Ha hozzászólhatok, szerintem ez is olyan, mint a fájlkezelõ include-k harca.. pár MS-ért harcoltok.. Van, akinek ez jön be, van akinek az.
Én személy szerint a for ciklust használom többször.


És hogy OFFoljak is.
 
Idézetet írta: Zsolesszka date=1309367888\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"9234\" data-ipsquote-contentclass=\"forums_Topic
Hát ez van nem anyám vette nekem, úgy dolgoztam meg érte de mindegy.
 
Hát tudod ha anyuci veszi, az nem olyan \"jó\" érzés, mintha magadnak dolgozol meg érte :D
Én is ezt fogom tenni.. 2 hónap, 150.000.. nem tudom hogy elég lesz-e egy gépre, mert amit néztem, az 200 fölött van xD
Cím: Alternatív módja az összes játékos elérésének.
Írta: Zsolesszka - 2011. Július 12. - 23:13:51
Mindenki azt használja amelyik neki szimpatikus viszont a while sokkal sokoldalúbb mint a for.
Off:
Jó érzés vagy nem amiért az ember megdolgozik azt jobban becsüli mint amit csak úgy kap, kicsit maradandóbb nyom marad az emberben ha 3-4 vagy akár 5 hónapot is dolgozik azért hogy tudjon venni egy számítógépet, vagy bármit.  :-\\
Cím: Alternatív módja az összes játékos elérésének.
Írta: mauladam - 2011. Július 19. - 21:31:59
Szerintem a foreach include használata a legmegfelelõbb arra, hogy végigmenjen valaki a játékoson, mivel az \"üres\" ID-ket nem veszi figyelembe,  csak a konnektált játékosokat.
Cím: Alternatív módja az összes játékos elérésének.
Írta: krisk - 2011. Július 24. - 18:06:14
Itt nem csak a játékosokról van szó. A foreach tud akármit kezelni, amit beadsz neki, és végig tud menni rajta hatékonyan.
Egyébként szerintem nem az határozza meg, hogy melyiket használod, hogy for vagy while, hogy milyen gyorsan fut le, hanem az, hogy mire kell. Van, ahol a while-t szeressük (ragzani is tudolunk), van ahol a for. Fõleg akkor, ha csak miliszekundumokban (vagy abban sem) mérhetõ a különbség.