Jump to content
Sign in to follow this  
BL1P

BL1Ps BenchMark fun.

Recommended Posts

I made a small server benchmark mission based on amount of AI created and server fps. (initial script was by DarkWanderer)

I think it would be fun to run a mini competition to get results back from server admins and the like.

This is the mission

AIServerBenchmark Download :- https://github.com/BL2P/AIServerBenchmark/archive/3.zip

There is a folder in the zip with the mission pbo and there are the mission files in the zip too.

It has a few params but if you run it without altering anything it will run untill it creates 1000ai or it reaches < 45fps on the server.

Would be good if you can post a screen shot of your ASM monitor as well as the rpt settings stuff

Ill get the ball rolling with our community server.

http://i.imgur.com/a0kU8Ul.jpg

Version 1.22 Stable.

FPS LIMIT ON"

SPLITAI OFF"

HEADLESSON = false"

FPSLIMIT = 45"

TIME PER UNIT = 0.05"

AI PER BATCH = 25"

BATCH TIME = 7.5"

MAX TOTAL AI = 1000"

so 750ai created with fps limit on at 45

beat that :)

Server specs :-

Computer: MSI MS-7816

CPU: Intel Core i7-4770 (Haswell-DT, C0)

3400 MHz (34.00x100.0) @ 3700 MHz (37.00x100.0)

Motherboard: MSI H87-G43 (MS-7816)

Chipset: Intel H87 (Lynx Point)

Memory: 32768 MBytes @ 800 MHz, 11.0-11-11-28

- 8192 MB PC12800 DDR3 SDRAM - Crucial Technology CT102464BA160B.C16

- 8192 MB PC12800 DDR3 SDRAM - Crucial Technology CT102464BA160B.C16

- 8192 MB PC12800 DDR3 SDRAM - Crucial Technology CT102464BA160B.C16

- 8192 MB PC12800 DDR3 SDRAM - Crucial Technology CT102464BA160B.C16

Graphics: Intel Haswell-DT GT2 - Integrated Graphics Controller [Micro-Star International]

Intel HD Graphics 4600, 65472 KB

Drive: INTEL SSDSC2BW240A4, 234.4 GB, Serial ATA 6Gb/s @ 6Gb/s

Drive: INTEL SSDSC2BW240A4, 234.4 GB, Serial ATA 6Gb/s @ 6Gb/s

Network: RealTek Semiconductor RTL8168/8111 PCI-E Gigabit Ethernet NIC

OS: Microsoft Windows Server 2008 R2 Web Server (x64) Build 7601

The mission will also do things like run benchmarks on Server and HC with AI amounts and also split AI 50/50 between Server and HC.

Edited by BL1P

Share this post


Link to post
Share on other sites

Great idea. However I would reckon that most 'normal' servers may hit 45FPS at around 200AI. Also posting full ASM would be useful, as CPS (and FPSMin) are the real killers of fluidity!

Share this post


Link to post
Share on other sites
Great idea. However I would reckon that most 'normal' servers may hit 45FPS at around 200AI. Also posting full ASM would be useful, as CPS (and FPSMin) are the real killers of fluidity!

I did post a full ASM screen did I not ?

Unsure if thats what you mean m8 ?

Share this post


Link to post
Share on other sites

Sorry BL1P. Not allowed to view it at work (just in case it is pr0n!)

Will test it on my dedi tonight.

Share this post


Link to post
Share on other sites
Sorry BL1P. Not allowed to view it at work (just in case it is pr0n!)

Will test it on my dedi tonight.

Cool gona give the prof a go after the weekend. see what results that gives :)

Share this post


Link to post
Share on other sites

If you are going to compare results, then I would suggest you will need to set some more parameters

For example.

  • No. of players must = X (Anything above 30 will defintely start seeing performance hits with 150-250 AI)
  • Uptime: must be
    • Result A: after a server restart
    • Result B: after X Hours (Uptime does have an effect)

    [*]Hardware and connectivity must be defined in the reply posts etc

Share this post


Link to post
Share on other sites
If you are going to compare results, then I would suggest you will need to set some more parameters

For example.

  • No. of players must = X (Anything above 30 will defintely start seeing performance hits with 150-250 AI)
  • Uptime: must be
    • Result A: after a server restart
    • Result B: after X Hours (Uptime does have an effect)

    [*]Hardware and connectivity must be defined in the reply posts etc

The mission to be used only has one slot. So player count isn't a problem. The mission is testing how many AI your server can get upto before your server goes below and stays below 45fps. not how many players you can have connected.

Hardware should be posted but this isn't a prize competition its for fun and to collect results people are getting and talk about that. so I wont be setting things in stone that people must follow :)

Uptime is upto the person running the test if they want to run the server for 24hours then run the test mission thats upto them :)

I thought it would be nice to have a benchmark for ai amounts and this seemed like a stable enough mission to use.

Maybe someone will come up with some better scripting than I used. thats fine Im no scripting guru. just some fat gamer who does the odd bit of script.

Share this post


Link to post
Share on other sites

My PC:

Stock v1.22 dedicated server exe with -name=server -config=Server\server.cfg -noSound -maxmem=2047 -mod=@ASM.

Got to 675 AI before dipping below 45. However it didn't stop until it hit 775.

RPT

2014/06/20, 17:06:12 "===========AI SERVER TEST SETTINGS==========="

2014/06/20, 17:06:12 "**** FPS LIMIT ON"

2014/06/20, 17:06:12 "**** SPLITAI OFF"

2014/06/20, 17:06:12 "**** HEADLESSON = false"

2014/06/20, 17:06:12 "**** FPSLIMIT = 45"

2014/06/20, 17:06:12 "**** TIME PER UNIT = 0.05"

2014/06/20, 17:06:12 "**** AI PER BATCH = 25"

2014/06/20, 17:06:12 "**** BATCH TIME = 7.5"

2014/06/20, 17:06:12 "**** MAX TOTAL AI = 1000"

2014/06/20, 17:06:12 "============================================="

2014/06/20, 17:06:22 "** Fps = 45 ::: FpsMin = 43 ::: time = 11 ::: _aicount = 25"

2014/06/20, 17:06:32 "** Fps = 45 ::: FpsMin = 43 ::: time = 21 ::: _aicount = 50"

2014/06/20, 17:06:42 "** Fps = 46 ::: FpsMin = 43 ::: time = 31 ::: _aicount = 75"

2014/06/20, 17:06:53 "** Fps = 45 ::: FpsMin = 42 ::: time = 42 ::: _aicount = 100"

2014/06/20, 17:07:03 "** Fps = 45 ::: FpsMin = 40 ::: time = 52 ::: _aicount = 125"

2014/06/20, 17:07:13 "** Fps = 46 ::: FpsMin = 43 ::: time = 63 ::: _aicount = 150"

2014/06/20, 17:07:24 "** Fps = 46 ::: FpsMin = 37 ::: time = 73 ::: _aicount = 175"

2014/06/20, 17:07:34 "** Fps = 46 ::: FpsMin = 43 ::: time = 83 ::: _aicount = 200"

2014/06/20, 17:07:45 "** Fps = 46 ::: FpsMin = 40 ::: time = 94 ::: _aicount = 225"

2014/06/20, 17:07:55 "** Fps = 46 ::: FpsMin = 42 ::: time = 104 ::: _aicount = 250"

2014/06/20, 17:08:06 "** Fps = 46 ::: FpsMin = 40 ::: time = 115 ::: _aicount = 275"

2014/06/20, 17:08:16 "** Fps = 47 ::: FpsMin = 43 ::: time = 125 ::: _aicount = 300"

2014/06/20, 17:08:27 "** Fps = 48 ::: FpsMin = 43 ::: time = 136 ::: _aicount = 325"

2014/06/20, 17:08:37 "** Fps = 48 ::: FpsMin = 42 ::: time = 146 ::: _aicount = 350"

2014/06/20, 17:08:48 "** Fps = 48 ::: FpsMin = 43 ::: time = 157 ::: _aicount = 375"

2014/06/20, 17:08:58 "** Fps = 48 ::: FpsMin = 45 ::: time = 167 ::: _aicount = 400"

2014/06/20, 17:09:09 "** Fps = 47 ::: FpsMin = 38 ::: time = 178 ::: _aicount = 425"

2014/06/20, 17:09:19 "** Fps = 47 ::: FpsMin = 38 ::: time = 189 ::: _aicount = 450"

2014/06/20, 17:09:30 "** Fps = 48 ::: FpsMin = 45 ::: time = 199 ::: _aicount = 475"

2014/06/20, 17:09:41 "** Fps = 48 ::: FpsMin = 40 ::: time = 210 ::: _aicount = 500"

2014/06/20, 17:09:51 "** Fps = 46 ::: FpsMin = 31 ::: time = 220 ::: _aicount = 525"

2014/06/20, 17:10:02 "** Fps = 47 ::: FpsMin = 36 ::: time = 231 ::: _aicount = 550"

2014/06/20, 17:10:13 "** Fps = 47 ::: FpsMin = 45 ::: time = 242 ::: _aicount = 575"

2014/06/20, 17:10:23 "** Fps = 47 ::: FpsMin = 37 ::: time = 253 ::: _aicount = 600"

2014/06/20, 17:10:34 "** Fps = 48 ::: FpsMin = 45 ::: time = 263 ::: _aicount = 625"

2014/06/20, 17:10:45 "** Fps = 46 ::: FpsMin = 31 ::: time = 274 ::: _aicount = 650"

2014/06/20, 17:10:56 "** Fps = 42 ::: FpsMin = 28 ::: time = 285 ::: _aicount = 675"

2014/06/20, 17:11:07 "** Fps = 42 ::: FpsMin = 29 ::: time = 296 ::: _aicount = 700"

2014/06/20, 17:11:17 "** Fps = 44 ::: FpsMin = 32 ::: time = 306 ::: _aicount = 725"

2014/06/20, 17:11:33 "** Fps = 38 ::: FpsMin = 29 ::: time = 322 ::: _aicount = 750"

2014/06/20, 17:12:41 "** Fps = 37 ::: FpsMin = 24 ::: time = 390 ::: _aicount = 775"

ASM

Untitled.png

Specs

CPU: AMD FX8350 4.0GHz @4.5GHz

Motherboard: Asus Crosshair V Formula-Z

Chipest: AMD 990Fx

Memory: 2x4Gb Crucial Ballistix Elite 1866MHz @ 2000MHz 11-11-11-24

Drive: Crucial M4 256GB SSD (Windows + Arma)

OS: Windows 8.1 Pro x64

Our Dedi server:

V1.22 perf 1 dedicated server exe with start /wait /AboveNormal Arma3server.exe -mod=@ASM -profiles=server -name=server -config=Server\Server.cfg -cfg=Server\Basic.cfg -noSound -world=empty -cpuCount=4 -enableHT -maxmem=3071 -port=2303.

Got to 725 AI before dipping below 45. However again it didn't stop until it hit 775 (note the dip).

RPT

2014/06/20, 23:43:15 "===========AI SERVER TEST SETTINGS==========="

2014/06/20, 23:43:15 "**** FPS LIMIT ON"

2014/06/20, 23:43:15 "**** SPLITAI OFF"

2014/06/20, 23:43:15 "**** HEADLESSON = false"

2014/06/20, 23:43:15 "**** FPSLIMIT = 45"

2014/06/20, 23:43:15 "**** TIME PER UNIT = 0.05"

2014/06/20, 23:43:15 "**** AI PER BATCH = 25"

2014/06/20, 23:43:15 "**** BATCH TIME = 7.5"

2014/06/20, 23:43:15 "**** MAX TOTAL AI = 1000"

2014/06/20, 23:43:15 "============================================="

2014/06/20, 23:43:24 "** Fps = 50 ::: FpsMin = 50 ::: time = 11 ::: _aicount = 25"

2014/06/20, 23:43:34 "** Fps = 50 ::: FpsMin = 48 ::: time = 21 ::: _aicount = 50"

2014/06/20, 23:43:45 "** Fps = 50 ::: FpsMin = 50 ::: time = 31 ::: _aicount = 75"

2014/06/20, 23:43:55 "** Fps = 50 ::: FpsMin = 48 ::: time = 41 ::: _aicount = 100"

2014/06/20, 23:44:05 "** Fps = 50 ::: FpsMin = 48 ::: time = 51 ::: _aicount = 125"

2014/06/20, 23:44:15 "** Fps = 50 ::: FpsMin = 50 ::: time = 61 ::: _aicount = 150"

2014/06/20, 23:44:25 "** Fps = 50 ::: FpsMin = 48 ::: time = 71 ::: _aicount = 175"

2014/06/20, 23:44:35 "** Fps = 50 ::: FpsMin = 42 ::: time = 81 ::: _aicount = 200"

2014/06/20, 23:44:45 "** Fps = 50 ::: FpsMin = 45 ::: time = 92 ::: _aicount = 225"

2014/06/20, 23:44:56 "** Fps = 50 ::: FpsMin = 48 ::: time = 102 ::: _aicount = 250"

2014/06/20, 23:45:06 "** Fps = 50 ::: FpsMin = 42 ::: time = 112 ::: _aicount = 275"

2014/06/20, 23:45:16 "** Fps = 50 ::: FpsMin = 48 ::: time = 122 ::: _aicount = 300"

2014/06/20, 23:45:26 "** Fps = 50 ::: FpsMin = 48 ::: time = 133 ::: _aicount = 325"

2014/06/20, 23:45:37 "** Fps = 50 ::: FpsMin = 45 ::: time = 143 ::: _aicount = 350"

2014/06/20, 23:45:47 "** Fps = 50 ::: FpsMin = 43 ::: time = 153 ::: _aicount = 375"

2014/06/20, 23:45:57 "** Fps = 50 ::: FpsMin = 48 ::: time = 164 ::: _aicount = 400"

2014/06/20, 23:46:08 "** Fps = 50 ::: FpsMin = 45 ::: time = 174 ::: _aicount = 425"

2014/06/20, 23:46:18 "** Fps = 50 ::: FpsMin = 48 ::: time = 184 ::: _aicount = 450"

2014/06/20, 23:46:29 "** Fps = 50 ::: FpsMin = 38 ::: time = 195 ::: _aicount = 475"

2014/06/20, 23:46:39 "** Fps = 50 ::: FpsMin = 48 ::: time = 205 ::: _aicount = 500"

2014/06/20, 23:46:49 "** Fps = 50 ::: FpsMin = 48 ::: time = 216 ::: _aicount = 525"

2014/06/20, 23:47:00 "** Fps = 50 ::: FpsMin = 43 ::: time = 226 ::: _aicount = 550"

2014/06/20, 23:47:11 "** Fps = 50 ::: FpsMin = 48 ::: time = 237 ::: _aicount = 575"

2014/06/20, 23:47:21 "** Fps = 49 ::: FpsMin = 38 ::: time = 247 ::: _aicount = 600"

2014/06/20, 23:47:32 "** Fps = 48 ::: FpsMin = 37 ::: time = 258 ::: _aicount = 625"

2014/06/20, 23:47:42 "** Fps = 49 ::: FpsMin = 42 ::: time = 269 ::: _aicount = 650"

2014/06/20, 23:47:53 "** Fps = 48 ::: FpsMin = 40 ::: time = 279 ::: _aicount = 675"

2014/06/20, 23:48:04 "** Fps = 47 ::: FpsMin = 34 ::: time = 290 ::: _aicount = 700"

2014/06/20, 23:48:14 "** Fps = 48 ::: FpsMin = 45 ::: time = 300 ::: _aicount = 725"

2014/06/20, 23:48:25 "** Fps = 43 ::: FpsMin = 33 ::: time = 311 ::: _aicount = 750"

2014/06/20, 23:48:36 "** Fps = 25 ::: FpsMin = 4 ::: time = 322 ::: _aicount = 775"

ASM

Untitled.png

*NB, the huge spike at the end was me opening up cpuz, ignore it.

Specs

CPU: Intel Xeon E3-1230 @ 3.2-3.6GHz

Motherboard: ProLiant DL120 G7

Chipest: Intel C200 series

Memory: 2x4Gb 1333MHz 9-9-9-24, brand unknown

Drive: 2x1Tb raid 1, brand unknown

OS: Windows 2008 Web R2

Edited by Sari
added dedi server results

Share this post


Link to post
Share on other sites

@sari

Pritty cool how you start off at 45fps and gradually increase! as ai are added then slowly decrease as it gets near the end.

What .exe did you use on your pc the Server.exe or client .exe ? also what start up did you use if it was server any -cpucount lines or anything ?

we use a .bat to launch the server

start /high /W arma3server.exe -port=2302 -config=Server_HC\server.cfg -cfg=Server_HC\ArmA3_test.cfg -profiles=Server_HC -name=Server_HC -enableHT

and the two things we use in there are /high and -enableHT

---------- Post added at 06:38 PM ---------- Previous post was at 05:59 PM ----------

Following your example Sari I ran the test on my Home PC as well :P

I only got upto 450ai on my Home pc before it went and stayed below 45

This is my startup .bat for my home pc

@echo off
echo Launching BL1PPYS  Arma3Server...

start "" /wait /high "C:\Program Files (x86)\Steam\steamapps\common\Arma 3\arma3server.exe"  -port=2302 "-config=D:\bl1pserver\bl1p\BL1P_config.cfg" "-cfg=D:\bl1pserver\bl1p\BL1P_basic.cfg" "-profiles=D:\bl1pserver\bl1p" -name=bl1pserver -mod=@ASM

ASM

RPT.

18:02:57 "===========AI SERVER TEST SETTINGS==========="

18:02:57 "**** FPS LIMIT ON"

18:02:57 "**** SPLITAI OFF"

18:02:57 "**** HEADLESSON = false"

18:02:57 "**** FPSLIMIT = 45"

18:02:57 "**** TIME PER UNIT = 0.05"

18:02:57 "**** AI PER BATCH = 25"

18:02:57 "**** BATCH TIME = 7.5"

18:02:57 "**** MAX TOTAL AI = 1000"

18:02:57 "============================================="

18:03:07 "** Fps = 50 ::: FpsMin = 48 ::: time = 11 ::: _aicount = 25"

18:03:17 "** Fps = 50 ::: FpsMin = 48 ::: time = 21 ::: _aicount = 50"

18:03:27 "** Fps = 50 ::: FpsMin = 48 ::: time = 31 ::: _aicount = 75"

18:03:38 "** Fps = 50 ::: FpsMin = 48 ::: time = 42 ::: _aicount = 100"

18:03:48 "** Fps = 50 ::: FpsMin = 48 ::: time = 52 ::: _aicount = 125"

18:03:58 "** Fps = 50 ::: FpsMin = 45 ::: time = 62 ::: _aicount = 150"

18:04:09 "** Fps = 50 ::: FpsMin = 42 ::: time = 73 ::: _aicount = 175"

18:04:19 "** Fps = 50 ::: FpsMin = 42 ::: time = 83 ::: _aicount = 200"

18:04:30 "** Fps = 50 ::: FpsMin = 38 ::: time = 94 ::: _aicount = 225"

18:04:40 "** Fps = 50 ::: FpsMin = 45 ::: time = 104 ::: _aicount = 250"

18:04:51 "** Fps = 50 ::: FpsMin = 43 ::: time = 115 ::: _aicount = 275"

18:05:01 "** Fps = 50 ::: FpsMin = 40 ::: time = 125 ::: _aicount = 300"

18:05:12 "** Fps = 50 ::: FpsMin = 42 ::: time = 136 ::: _aicount = 325"

18:05:23 "** Fps = 48 ::: FpsMin = 37 ::: time = 147 ::: _aicount = 350"

18:05:33 "** Fps = 48 ::: FpsMin = 30 ::: time = 157 ::: _aicount = 375"

18:05:44 "** Fps = 48 ::: FpsMin = 45 ::: time = 168 ::: _aicount = 400"

18:05:55 "** Fps = 44 ::: FpsMin = 42 ::: time = 179 ::: _aicount = 425"

18:06:10 "** Fps = 38 ::: FpsMin = 26 ::: time = 194 ::: _aicount = 450"

System Specs

AMD Phenom X6 1090T @3.8 (H2o Cooled)

16g DDR3 System Ram

2x ATI 6950s (XFIRE)

AGILITY3 60g SSD (OS)

Sam Evo 120g SSD (GAMES)

1TB HDD storage (PORN)

ps. How do I get the image to appear in the spoiler like you did ? for me it just shows a link to the image ?

Share this post


Link to post
Share on other sites

@BL1BP,

since this testmission starts to be my favorite (headless) server benchmark (because it is simple and fast to use),

i have some suggestions to improve the precision of the result and perhaps to decrease the benchmark time per run.

I think it would make sense, to start with a faster unit spawn rate and to significantly slow down in the near of FPSLIMIT.

Additional a switch from batch (group) granularity to single unit granularity for the result, would be better for fine tuning purposes.

Perhaps a smoothing avarage for this jumping FPS value could increase the precision even more.

Perfectionist greets,

Fred41 :)

Share this post


Link to post
Share on other sites

I used the v1.22 dedi server package (no perf exes) with -name=server -config=Server\server.cfg -noSound -maxmem=2047 -mod=@ASM

I dont have it particularly geared towards performance as i only use it for testing stuff every now and then. I suppose its worth noting that once i set the mission off, i disconnected my client so the server exe could have free reign of the cpu.

Edited by Sari

Share this post


Link to post
Share on other sites
@BL1BP,

since this testmission starts to be my favorite (headless) server benchmark (because it is simple and fast to use),

i have some suggestions to improve the precision of the result and perhaps to decrease the benchmark time per run.

I think it would make sense, to start with a faster unit spawn rate and to significantly slow down in the near of FPSLIMIT.

Additional a switch from batch (group) granularity to single unit granularity for the result, would be better for fine tuning purposes.

Perhaps a smoothing avarage for this jumping FPS value could increase the precision even more.

Perfectionist greets,

Fred41 :)

Although I am very pleased you like this benchmark m8.

I have some counters to your suggestions :(

The reason i have such a large time between batches spawning is based on the responses Dwarden and a dev gave in similar thread that the AI need time to run certain scripts and path finding things.

Spawning the AI too fast will give a very detrimental effect on the cps and fps because of the exponential blablabla :)

I prefer the batch to single unit but... I am open to a reason why I should use single unit over batch and if a dev gives a good reason ill definitely swap the way the script works.

the reason i like batch over single is that each group would need time and using batch lowers the overall time.

I can do a single unit version with no problems but not over the weekend :) as im playing and drinking now till monday :)

Just a note. I am really pleased your taking an interest in this Fred as I like all the work you do any suggestions are more than welcome.

I am just a stubborn old bastard that needs shit explaining too me before ill do it :)

Edited by BL1P

Share this post


Link to post
Share on other sites

... i am just a stubborn old bastard too, but probably this are best conditions, to create together the simplest server benchmark ever :)

What i meant is just this:

The very dynamical FPS value together with the high (batch) granularity, make the result a bit unprecise.

For example, i got 625 units as result in the first run, and i got 650 in the second run (with all the same conditions).

This is a difference of 4%, to much for precise tuning, i think.

I am sure, it is possible to have a precision <1% without much effort.

And you can still use batches of any size, you just have to better control the unit spawn timing inside a batch.

Better i give you a code example, basically something like this (based on your code):

	//--- run on server if headless off
if (!HEADLESSON && isServer && !SPLITAION) then {
	//--- do some stuff
	_script = [] spawn {
		_i = 0;
		_aicount = 0;
		_timer = CREATETIME / 100;
		diag_log "===========AI SERVER TEST SETTINGS===========";
		if (ENABLEFPSLIMIT > 0) then {diag_log "**** FPS LIMIT ON";}else{diag_log "**** FPS LIMIT OFF";};
		if (SPLITAI > 0) then {diag_log "**** SPLITAI ON";}else{diag_log "**** SPLITAI OFF";};
		diag_log format ["**** HEADLESSON = %1",HEADLESSON];
		diag_log format ["**** FPSLIMIT = %1",FPSLIMIT];
		diag_log format ["**** TIME PER UNIT = %1",_timer];
		diag_log format ["**** AI PER BATCH = %1",AIPERBATCH];
		diag_log format ["**** BATCH   TIME = %1",BATCHTIME];
		diag_log format ["**** MAX TOTAL AI = %1",TOTALAI];
		diag_log "=============================================";
		_grp = createGroup west;
		while {true} do {
			// slows down near FPSLIMIT endvalue
			if (ENABLEFPSLIMIT > 0) then {
				sleep (abs(50.0 - diag_fps) * abs(50.0 - diag_fps) / (50.0 - FPSLIMIT)); // slows down near endvalue
				waituntil {sleep 0.1; diag_fps > FPSLIMIT};
			};

			sleep (_timer); 
			helper setPos [(getPos helper select 0)+0.3, (getPos helper select 1)+1,getPos helper select 2];
			_unit = "B_recon_F" createUnit [getPos helper, _grp];
			_i = _i + 1;
			_aicount = _aicount + 1;

			if (_i > (AIPERBATCH - 1)) then {
				_i = 0;
				_grp = createGroup west;
				sleep (BATCHTIME);
				diag_log format ["** Fps = %1 ::: FpsMin = %2 ::: time = %3 ::: _aicount = %4",round diag_fps,round diag_fpsmin,round time,_aicount];
			};
			if (_aicount >= TOTALAI) exitwith {
				diag_log format ["======== AI CREATION STOPPED @ %1 AI ========",_aicount];
				while {true} do {
					diag_log format ["---- fps = %1 ::: fpsmin = %2 ::: loop %3sec ::: _aicount = %4",round diag_fps,round diag_fpsmin,(BATCHTIME),_aicount];
					sleep (10);
				};
			};
		};
	};
};

Far from being ready and FPS smoothing not included.

Edited by Fred41

Share this post


Link to post
Share on other sites

This is not running properly for me. All other missions run fine (and show up on ASM) on my dedi. This mission does nothing. I spawn OK in the little room, but nothing seems to be running on ASM..... even PL stays at 0 !!

Share this post


Link to post
Share on other sites

Added dedi server results to my first post.

Share this post


Link to post
Share on other sites

wow ;)

sleep (abs(50.0 - diag_fps) * abs(50.0 - diag_fps) / (50.0 - FPSLIMIT))

I have no idea wtf that does :)

It looks like its some sleep value taken from an absolute value of (50 - the servers fps) * (50-server fps) /(50-server fps) ?

Im crap at this m8 I might need help sorry :(

isnt 50-server fps a bad thing as 50-45 is 5 ?

so 5 * 5 / 5 = 5 ?

---------- Post added at 12:51 AM ---------- Previous post was at 12:39 AM ----------

This is not running properly for me. All other missions run fine (and show up on ASM) on my dedi. This mission does nothing. I spawn OK in the little room, but nothing seems to be running on ASM..... even PL stays at 0 !!

hello m8. the only thing i can think of which might stop the mission from working is the server or hc is already below 45fps.

To test that i would turn off the fps limiter in params and run it like that with just an AI amount limit

Edited by BL1P

Share this post


Link to post
Share on other sites
wow ;)

sleep (abs(50.0 - diag_fps) * abs(50.0 - diag_fps) / (50.0 - FPSLIMIT))

I have no idea wtf that does :)

It looks like its some sleep value taken from an absolute value of (50 - the servers fps) * (50-server fps) /(50-server fps) ?

Im crap at this m8 I might need help sorry :(

isnt 50-server fps a bad thing as 50-45 is 5 ?

so 5 * 5 / 5 = 5 ?

... it just delays unit creation more, if diag_fps is close to FPSLIMIT ...

Yes, in this example you would get 0.0sec delay at diag_fps = 50.0 and 5.0sec additional delay at diag_fps = FPSLIMIT.

This is probably better:

_AdditionalUnitCreationDelay = ((abs(FPSMAX - diag_fps) / (FPSMAX - FPSLIMIT))^2) * MAXDELAY;

sleep(_AdditionalUnitCreationDelay);

Where FPSMAX = 50.0 and MAXDELAY is the delay in seconds, you wish at FPSLIMIT.

Just try it out :)

  • Like 1

Share this post


Link to post
Share on other sites

I have a cunning plan !

So... the mission is on Github now and you are a collaborator :)

Share this post


Link to post
Share on other sites
I have a cunning plan !

So... the mission is on Github now and you are a collaborator :)

... this is a very good plan :cool:

Is there a link to the github repository, for collaborators, like me?

Share this post


Link to post
Share on other sites
... this is a very good plan :cool:

Is there a link to the github repository, for collaborators, like me?

https://github.com/BL2P/SeverAIBenchmark

Fluit is currently writing a function to set log levels on the .rpt reports so that server admins can turn on or off the reports or lower the amount of reports.

Share this post


Link to post
Share on other sites
https://github.com/BL2P/SeverAIBenchmark

Fluit is currently writing a function to set log levels on the .rpt reports so that server admins can turn on or off the reports or lower the amount of reports.

Reason for this is that writing to the RPT can slightly affect server performance. With this we can reduce the disk I/O while running the benchmark.

Edited by Fluit

Share this post


Link to post
Share on other sites

Updated first post with the new version.

New version has some small value changes in it from me.

A diag_log function by Fluit which allows admins to set the log level so as to be able to set the amout of reports you get sent to the rpt.

Also has an fsm by Fred41 which will smooth fps detection by the scripts and increase wait times for each unit creation the closer you get to the fps Limit.

https://github.com/BL2P/AIServerBenchmark/archive/3.zip

Happy Benchmarking.

Share this post


Link to post
Share on other sites

_AdditionalUnitCreationDelay = ((abs(FPSMAX - diag_fps) / (FPSMAX - FPSLIMIT))^2) * MAXDELAY;

sleep(_AdditionalUnitCreationDelay);

Thanks for sharing this, added it to all my spawning scripts, with the right values you barely notice anything going on in the background.

Much appreciated!

:yay:

Share this post


Link to post
Share on other sites

... nice, i didn't expect, that someone can use it for anything else :)

Share this post


Link to post
Share on other sites

lol, Grumpy tipped me off to this. It works a treat really. I was pretty careful in how many units were spawned at once anyway, and could always see a tiny stutter when they did spawn. With this, its really hard to tell when they spawn. I can only imagine it works better with a higher server count/load.

Just out of curiosity, what are the settings anyone else has used? 15 fps with 5 seconds is what I started with.

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×