HomeUser Control Panel (unavailable in archive)ForumsTutorialsArt GalleryResourcesMaps

Benchmarking + HSAS v3.40 is out

04-11-2008, 05:17 AM#1
PandaMine
I just wanted to tell everyone that I released a new version of HSAS (who's last stable version lasted half a year )

The link the the system is in my signature

What is added in the new version is the ability to scope your static/dynamic databases (like HAIL) and debugging statements were added

The test map was also updated with bob666's benchmarking system v1.10, and I have re benchmarked everything, here are the results shown

Attaching and Retrieving Structs through a single handle (timer)
HSAS = 75.497 Executions per millisecond
ABC = 63.515 Executions per millisecond
HAIL = 68.283 Executions per millisecond
GC = 62.512 Executions per millisecond

Attaching and Retrieving Structs through a multiple handles stored in an array (timer)
HSAS = 90.939 Executions per millisecond
ABC = 63.717 Executions per millisecond
HAIL = 68.510 Executions per millisecond
GC = 64.526 Executions per millisecond[/hidden]

Note that for the attaching/retrieving to single handle I artificially floated the handle index stack otherwise HSAS/HAIL are almost identical for handles index's less then 8190
04-11-2008, 01:04 PM#2
Toadcop
~ use StopWatch native TT
04-11-2008, 01:27 PM#3
PandaMine
This is more accurate and easier to use with a lot less issues
04-11-2008, 04:53 PM#4
Toadcop
Quote:
This is more accurate and easier to use with a lot less issues
lol nooboz die TT... one of the most stupid posts i ever readed.
04-11-2008, 07:31 PM#5
Strilanc
Question: how is HSAS still faster than HAIL? I modified it to use a dedicated array for the first 8191 indexes, so the results for the single handle should be identical.

Nice work.
04-11-2008, 10:29 PM#6
PurgeandFire111
Quote:
Originally Posted by PandaMine
This is more accurate and easier to use with a lot less issues

Nazghul's Benchmark is a little buggy. I've occured weird stuff. I tested Cos vs. SquareRoot and Cos returned faster, but SquareRoot returned faster when I switched the order...

I've tested it a bit, not sure but it doesn't seem too much as accurate as stopwatch natives.
04-11-2008, 10:44 PM#7
Toadcop
lol StopWatch does count proccesing time. aka nothing on PC can be more accurate than it (~). simply lol no words.
04-11-2008, 11:15 PM#8
Vexorian
I never knew if StopWatch used clock() or GetTimeOfDay, if it uses the later then it is not accurate if there are too many processes in the computer, not like using the old method is immune to that use...
04-11-2008, 11:37 PM#9
Toadcop
Code:
typedef __int64 watch_t;

watch_t *jNATIVE StopWatchCreate()
{
	watch_t *x = new watch_t;
	QueryPerformanceCounter((LARGE_INTEGER *)x);
	//*x = clock();
	return x;
}

//got to return int to make it go on eax instead of floating point stack
int jNATIVE StopWatchMark(watch_t *x)
{
	watch_t y,interval,freq;
	float f;
	QueryPerformanceCounter((LARGE_INTEGER *)&y);
	QueryPerformanceFrequency((LARGE_INTEGER *)&freq);
	//y = clock();
	interval = y - (*x);
	f = ((double)interval)/((double)freq);
//	f = (float)interval/(float)CLOCKS_PER_SEC;
	return *(int *)&f;
}
04-11-2008, 11:43 PM#10
Jazradel
I don't get anything remotely close to your results when I benchmark it.

Yours gets around 2.6 executions per second, while the gamecache gets around 70.
04-12-2008, 12:18 AM#11
PandaMine
Quote:
Originally Posted by Strilanc
Question: how is HSAS still faster than HAIL? I modified it to use a dedicated array for the first 8191 indexes, so the results for the single handle should be identical.

Nice work.

I artificially floated the handle index above 9000, if you don't float the handle index and start from the first index, HAIL is slightly faster then HSAS because HAIL doesn't the subtraction

Quote:
Originally Posted by Jazradel
I don't get anything remotely close to your results when I benchmark it.

Yours gets around 2.6 executions per second, while the gamecache gets around 70.

Could you post your benchmark? Also the results differ depending on how many threads you have a second, If i was to reduce it below 500 again the results would be more accurate
04-12-2008, 01:00 AM#12
Jazradel
Script 1 - 0.419 //HSAS
Script 2 - 24.272 //ABC
Script 3 - 2.789 //HIAL
Script 4 - 178.008 //Gamecache
Script 5 - 80.086 //DataStore (my ownsystem)

Tested with Execution/Thread counts of 40, with 25 Benchmarks. That was just the most recent one I ran, but my other results (at different Threads/Benchmarks, with/without my script) were similar.
04-12-2008, 01:05 AM#13
PandaMine
Yeah well I had 500 executions per thread with 2 benchmarks, so if you alter the numbers in the HSAS test map you would find similar results
04-12-2008, 03:49 AM#14
emjlr3
you should throw CSData in there too

and Jaz what is script 1/2/3/etc. ??
04-12-2008, 04:16 AM#15
Vexorian
I always forget to update CSData to use more arrays now that they are so cheap. And I actually released a cs update yesterday!

Use grim's datasystem instead of CSData.

Edit: Hmm even grim's datasystem uses just 3 arrays...