| 04-11-2008, 05:17 AM | #1 |
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 |
~ use StopWatch native TT |
| 04-11-2008, 01:27 PM | #3 |
This is more accurate and easier to use with a lot less issues |
| 04-11-2008, 04:53 PM | #4 | |
Quote:
|
| 04-11-2008, 07:31 PM | #5 |
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 | |
Quote:
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 |
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 |
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 |
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 |
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 | ||
Quote:
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:
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 |
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 |
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 |
you should throw CSData in there too and Jaz what is script 1/2/3/etc. ?? |
| 04-12-2008, 04:16 AM | #15 |
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... |
