Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@markski1
Last active June 4, 2019 13:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save markski1/13444efd17e8e6d6637e10f186fafd0f to your computer and use it in GitHub Desktop.
Save markski1/13444efd17e8e6d6637e10f186fafd0f to your computer and use it in GitHub Desktop.
Accuracy benchmark of the samp-precise-timers plugin
//////////////////
/*
These are the results of 1 minute of samp-precise-timers accuracy tests in a server with NPCs and several other timers w/ moderately sized functions on each actively running.
Please note that the most severe innacuracies are most likely to be caused by the time it takes the AMX instance to finish a callback before serving the Timer's call rather than the timer itself being inaccurate.
The results display that even in these conditions the timer's accuracy remains within a <1% threshold, 99% of the time.
Data compiled by Markski
*/
//////////////////
// Code used for testing
new StartTime = 0;
new EndTime = 0;
new StartTime1 = 0;
new EndTime1 = 0;
new StartTime2 = 0;
new EndTime2 = 0;
hook OnGameModeInit() {
SetPreciseTimer("benchmark", 1000, true);
SetPreciseTimer("benchmark1", 500, true);
SetPreciseTimer("benchmark2", 250, true);
}
forward benchmark();
forward benchmark1();
forward benchmark2();
public benchmark() {
EndTime = GetTickCount();
new result = EndTime - StartTime;
printf("1000ms timer lapse = %ims", result);
StartTime = GetTickCount();
}
public benchmark1() {
EndTime1 = GetTickCount();
new result = EndTime1 - StartTime1;
printf("500ms timer lapse = %ims", result);
StartTime1 = GetTickCount();
}
public benchmark2() {
EndTime2 = GetTickCount();
new result = EndTime2 - StartTime2;
printf("250ms timer lapse = %ims", result);
StartTime2 = GetTickCount();
}
/*
// Results
// 1000ms timer
[12:39:24] 1001ms
[12:39:25] 1001ms
[12:39:26] 1004ms
[12:39:27] 1003ms
[12:39:28] 1000ms
[12:39:29] 1001ms
[12:39:30] 1006ms
[12:39:31] 1007ms
[12:39:32] 1000ms
[12:39:33] 1003ms
[12:39:34] 999ms
[12:39:35] 1002ms
[12:39:36] 1002ms
[12:39:37] 1003ms
[12:39:38] 1000ms
[12:39:39] 1005ms
[12:39:40] 1003ms
[12:39:41] 1005ms
[12:39:42] 1004ms
[12:39:43] 1007ms
[12:39:44] 1003ms
[12:39:45] 1004ms
[12:39:46] 1005ms
[12:39:47] 1003ms
[12:39:48] 1002ms
[12:39:49] 1001ms
[12:39:50] 1005ms
[12:39:51] 1005ms
[12:39:52] 1001ms
[12:39:53] 1002ms
[12:39:54] 1001ms
[12:39:55] 1003ms
[12:39:56] 1003ms
[12:39:57] 1002ms
[12:39:58] 1004ms
[12:39:59] 1005ms
[12:40:00] 1004ms
[12:40:01] 1006ms
[12:40:02] 1004ms
[12:40:03] 1004ms
[12:40:04] 1002ms
[12:40:05] 1004ms
[12:40:06] 1005ms
[12:40:07] 1004ms
[12:40:08] 1001ms
[12:40:09] 1004ms
[12:40:10] 1005ms
[12:40:11] 1001ms
[12:40:12] 1004ms
[12:40:13] 1002ms
[12:40:14] 1003ms
[12:40:15] 1005ms
[12:40:16] 1001ms
[12:40:17] 1004ms
[12:40:18] 1000ms
[12:40:19] 1003ms
[12:40:20] 1002ms
[12:40:21] 1006ms
[12:40:22] 1003ms
[12:40:23] 1004ms
//////////////////////////////////////////////
// -1ms offsets = 1 //
// 0ms offsets = 4 //
// 1ms offsets = 9 //
// 2ms offsets = 8 //
// 3ms offsets = 11 //
// 4ms offsets = 13 //
// 5ms offsets = 9 //
// 6ms offsets = 3 //
// 7ms offsets = 2 //
// >=8ms offsets = 0 //
//////////////////////////////////////////////
// 500ms timer
[12:39:24] 503ms
[12:39:24] 501ms
[12:39:25] 505ms
[12:39:25] 505ms
[12:39:26] 503ms
[12:39:26] 500ms
[12:39:27] 501ms
[12:39:27] 505ms
[12:39:28] 501ms
[12:39:28] 503ms
[12:39:29] 501ms
[12:39:29] 501ms
[12:39:30] 502ms
[12:39:30] 505ms
[12:39:31] 501ms
[12:39:31] 504ms
[12:39:32] 508ms
[12:39:32] 501ms
[12:39:33] 503ms
[12:39:33] 502ms
[12:39:34] 501ms
[12:39:34] 501ms
[12:39:35] 501ms
[12:39:35] 505ms
[12:39:36] 506ms
[12:39:36] 504ms
[12:39:37] 504ms
[12:39:37] 505ms
[12:39:38] 502ms
[12:39:38] 505ms
[12:39:39] 505ms
[12:39:39] 500ms
[12:39:40] 502ms
[12:39:40] 500ms
[12:39:41] 504ms
[12:39:41] 500ms
[12:39:42] 504ms
[12:39:42] 501ms
[12:39:43] 505ms
[12:39:43] 504ms
[12:39:44] 505ms
[12:39:44] 501ms
[12:39:45] 503ms
[12:39:45] 504ms
[12:39:46] 502ms
[12:39:46] 503ms
[12:39:47] 504ms
[12:39:47] 501ms
[12:39:48] 500ms
[12:39:48] 504ms
[12:39:49] 502ms
[12:39:49] 504ms
[12:39:50] 502ms
[12:39:50] 504ms
[12:39:51] 501ms
[12:39:51] 503ms
[12:39:52] 504ms
[12:39:52] 504ms
[12:39:53] 504ms
[12:39:53] 501ms
[12:39:54] 504ms
[12:39:54] 500ms
[12:39:55] 502ms
[12:39:55] 506ms
[12:39:56] 502ms
[12:39:56] 502ms
[12:39:57] 501ms
[12:39:58] 505ms
[12:39:58] 504ms
[12:39:59] 501ms
[12:39:59] 505ms
[12:40:00] 504ms
[12:40:00] 500ms
[12:40:01] 503ms
[12:40:01] 503ms
[12:40:02] 501ms
[12:40:02] 502ms
[12:40:03] 504ms
[12:40:03] 504ms
[12:40:04] 501ms
[12:40:04] 503ms
[12:40:05] 505ms
[12:40:05] 504ms
[12:40:06] 503ms
[12:40:06] 503ms
[12:40:07] 505ms
[12:40:07] 502ms
[12:40:08] 505ms
[12:40:08] 500ms
[12:40:09] 501ms
[12:40:09] 503ms
[12:40:10] 504ms
[12:40:10] 502ms
[12:40:11] 502ms
[12:40:11] 500ms
[12:40:12] 504ms
[12:40:12] 500ms
[12:40:13] 504ms
[12:40:13] 501ms
[12:40:14] 505ms
[12:40:14] 500ms
[12:40:15] 502ms
[12:40:15] 503ms
[12:40:16] 502ms
[12:40:16] 505ms
[12:40:17] 501ms
[12:40:17] 502ms
[12:40:18] 501ms
[12:40:18] 504ms
[12:40:19] 504ms
[12:40:19] 504ms
[12:40:20] 500ms
[12:40:20] 504ms
[12:40:21] 501ms
[12:40:21] 500ms
[12:40:22] 504ms
[12:40:22] 500ms
[12:40:23] 503ms
[12:40:23] 503ms
//////////////////////////////////////////////
// -1ms offsets = 0 //
// 0ms offsets = 15 //
// 1ms offsets = 24 //
// 2ms offsets = 17 //
// 3ms offsets = 16 //
// 4ms offsets = 28 //
// 5ms offsets = 17 //
// 6ms offsets = 2 //
// 7ms offsets = 0 //
// 8ms offsets = 1 //
// >=9ms offsets = 0 //
//////////////////////////////////////////////
// 250ms timer
[12:39:24] 252ms
[12:39:24] 255ms
[12:39:24] 249ms
[12:39:24] 251ms
[12:39:25] 251ms
[12:39:25] 252ms
[12:39:25] 252ms
[12:39:25] 255ms
[12:39:26] 255ms
[12:39:26] 252ms
[12:39:26] 250ms
[12:39:26] 255ms
[12:39:27] 251ms
[12:39:27] 254ms
[12:39:27] 251ms
[12:39:27] 253ms
[12:39:28] 253ms
[12:39:28] 253ms
[12:39:28] 252ms
[12:39:28] 251ms
[12:39:29] 252ms
[12:39:29] 254ms
[12:39:29] 250ms
[12:39:29] 251ms
[12:39:30] 251ms
[12:39:30] 254ms
[12:39:30] 250ms
[12:39:30] 253ms
[12:39:31] 255ms
[12:39:31] 251ms
[12:39:31] 250ms
[12:39:31] 254ms
[12:39:32] 251ms
[12:39:32] 254ms
[12:39:32] 251ms
[12:39:32] 253ms
[12:39:33] 252ms
[12:39:33] 252ms
[12:39:33] 253ms
[12:39:33] 254ms
[12:39:34] 251ms
[12:39:34] 255ms
[12:39:34] 252ms
[12:39:34] 255ms
[12:39:35] 252ms
[12:39:35] 255ms
[12:39:35] 253ms
[12:39:35] 252ms
[12:39:36] 252ms
[12:39:36] 255ms
[12:39:36] 252ms
[12:39:36] 261ms
[12:39:37] 256ms
[12:39:37] 252ms
[12:39:37] 251ms
[12:39:37] 252ms
[12:39:38] 252ms
[12:39:38] 251ms
[12:39:38] 254ms
[12:39:38] 251ms
[12:39:39] 256ms
[12:39:39] 255ms
[12:39:39] 252ms
[12:39:39] 253ms
[12:39:40] 255ms
[12:39:40] 252ms
[12:39:40] 250ms
[12:39:40] 250ms
[12:39:41] 251ms
[12:39:41] 257ms
[12:39:41] 251ms
[12:39:41] 252ms
[12:39:42] 252ms
[12:39:42] 256ms
[12:39:42] 254ms
[12:39:42] 253ms
[12:39:43] 253ms
[12:39:43] 252ms
[12:39:43] 255ms
[12:39:43] 253ms
[12:39:44] 255ms
[12:39:44] 251ms
[12:39:44] 253ms
[12:39:44] 251ms
[12:39:45] 252ms
[12:39:45] 251ms
[12:39:45] 251ms
[12:39:46] 275ms
[12:39:46] 254ms
[12:39:46] 252ms
[12:39:46] 252ms
[12:39:47] 252ms
[12:39:47] 251ms
[12:39:47] 253ms
[12:39:47] 251ms
[12:39:48] 252ms
[12:39:48] 270ms
[12:39:48] 252ms
[12:39:48] 255ms
[12:39:49] 252ms
[12:39:49] 254ms
[12:39:49] 252ms
[12:39:49] 253ms
[12:39:50] 256ms
[12:39:50] 253ms
[12:39:50] 253ms
[12:39:50] 255ms
[12:39:51] 251ms
[12:39:51] 253ms
[12:39:51] 251ms
[12:39:51] 255ms
[12:39:52] 252ms
[12:39:52] 252ms
[12:39:52] 250ms
[12:39:52] 251ms
[12:39:53] 256ms
[12:39:53] 255ms
[12:39:53] 255ms
[12:39:53] 252ms
[12:39:54] 266ms
[12:39:54] 255ms
[12:39:54] 254ms
[12:39:54] 254ms
[12:39:55] 251ms
[12:39:55] 253ms
[12:39:55] 253ms
[12:39:55] 252ms
[12:39:56] 251ms
[12:39:56] 253ms
[12:39:56] 250ms
[12:39:56] 253ms
[12:39:57] 251ms
[12:39:57] 252ms
[12:39:57] 253ms
[12:39:57] 252ms
[12:39:58] 254ms
[12:39:58] 257ms
[12:39:58] 252ms
[12:39:58] 278ms
[12:39:59] 248ms
[12:39:59] 251ms
[12:39:59] 254ms
[12:39:59] 253ms
[12:40:00] 253ms
[12:40:00] 253ms
[12:40:00] 250ms
[12:40:00] 253ms
[12:40:01] 271ms
[12:40:01] 253ms
[12:40:01] 254ms
[12:40:02] 253ms
[12:40:02] 251ms
[12:40:02] 251ms
[12:40:02] 256ms
[12:40:03] 253ms
[12:40:03] 251ms
[12:40:03] 253ms
[12:40:03] 252ms
[12:40:04] 256ms
[12:40:04] 252ms
[12:40:04] 263ms
[12:40:04] 251ms
[12:40:05] 253ms
[12:40:05] 254ms
[12:40:05] 255ms
[12:40:05] 251ms
[12:40:06] 251ms
[12:40:06] 255ms
[12:40:06] 250ms
[12:40:06] 254ms
[12:40:07] 256ms
[12:40:07] 271ms
[12:40:07] 250ms
[12:40:07] 254ms
[12:40:08] 252ms
[12:40:08] 256ms
[12:40:08] 255ms
[12:40:08] 251ms
[12:40:09] 255ms
[12:40:09] 254ms
[12:40:09] 255ms
[12:40:09] 254ms
[12:40:10] 254ms
[12:40:10] 253ms
[12:40:10] 254ms
[12:40:10] 251ms
[12:40:11] 254ms
[12:40:11] 255ms
[12:40:11] 254ms
[12:40:11] 252ms
[12:40:12] 254ms
[12:40:12] 251ms
[12:40:12] 252ms
[12:40:12] 250ms
[12:40:13] 254ms
[12:40:13] 254ms
[12:40:13] 253ms
[12:40:13] 253ms
[12:40:14] 257ms
[12:40:14] 252ms
[12:40:14] 252ms
[12:40:14] 254ms
[12:40:15] 253ms
[12:40:15] 227ms
[12:40:15] 254ms
[12:40:15] 253ms
[12:40:16] 252ms
[12:40:16] 251ms
[12:40:16] 254ms
[12:40:16] 254ms
[12:40:17] 251ms
[12:40:17] 251ms
[12:40:17] 250ms
[12:40:17] 255ms
[12:40:18] 254ms
[12:40:18] 264ms
[12:40:18] 250ms
[12:40:19] 253ms
[12:40:19] 251ms
[12:40:19] 253ms
[12:40:19] 251ms
[12:40:20] 255ms
[12:40:20] 253ms
[12:40:20] 255ms
[12:40:20] 255ms
[12:40:21] 251ms
[12:40:21] 250ms
[12:40:21] 255ms
[12:40:21] 252ms
[12:40:22] 252ms
[12:40:22] 254ms
[12:40:22] 254ms
[12:40:22] 251ms
[12:40:23] 259ms
[12:40:23] 258ms
[12:40:23] 253ms
[12:40:23] 254ms
[12:40:24] 251ms
//////////////////////////////////////////////
// -1ms offsets = 1 //
// 0ms offsets = 15 //
// 1ms offsets = 46 //
// 2ms offsets = 46 //
// 3ms offsets = 40 //
// 4ms offsets = 35 //
// 5ms offsets = 30 //
// 6ms offsets = 9 //
// 7ms offsets = 3 //
// 8ms offsets = 1 //
// 9ms offsets = 1 //
// >=10ms offsets = 4 //
//////////////////////////////////////////////
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment