forked from cory/tildefriends
		
	Start of a benchmark.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4076 ed5197a5-7fde-0310-b194-c3ffbd925b24
This commit is contained in:
		@@ -279,7 +279,6 @@ bool tf_ssb_db_store_message(tf_ssb_t* ssb, JSContext* context, const char* id,
 | 
			
		||||
				{
 | 
			
		||||
					printf("%s\n", sqlite3_errmsg(db));
 | 
			
		||||
				}
 | 
			
		||||
				printf("changes = %d\n", sqlite3_changes(db));
 | 
			
		||||
				stored = r == SQLITE_DONE && sqlite3_changes(db) != 0;
 | 
			
		||||
				if (stored)
 | 
			
		||||
				{
 | 
			
		||||
 
 | 
			
		||||
@@ -542,3 +542,38 @@ void tf_ssb_test_following(const tf_test_options_t* options)
 | 
			
		||||
 | 
			
		||||
	sqlite3_close(db0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void tf_ssb_test_bench(const tf_test_options_t* options)
 | 
			
		||||
{
 | 
			
		||||
	printf("Testing following.\n");
 | 
			
		||||
	sqlite3* db0 = NULL;
 | 
			
		||||
	int r = sqlite3_open(":memory:", &db0);
 | 
			
		||||
	(void)r;
 | 
			
		||||
	assert(r == SQLITE_OK);
 | 
			
		||||
 | 
			
		||||
	uv_loop_t loop = { 0 };
 | 
			
		||||
	uv_loop_init(&loop);
 | 
			
		||||
 | 
			
		||||
	tf_ssb_t* ssb0 = tf_ssb_create(&loop, NULL, db0);
 | 
			
		||||
	tf_ssb_generate_keys(ssb0);
 | 
			
		||||
 | 
			
		||||
	char id0[k_id_base64_len] = { 0 };
 | 
			
		||||
	tf_ssb_whoami(ssb0, id0, sizeof(id0));
 | 
			
		||||
 | 
			
		||||
	struct timespec start_time = { 0 };
 | 
			
		||||
	struct timespec end_time = { 0 };
 | 
			
		||||
	clock_gettime(CLOCK_REALTIME, &start_time);
 | 
			
		||||
	for (int i = 0; i < 10 * 1024; i++) {
 | 
			
		||||
		tf_ssb_append_post(ssb0, "Hello, world!");
 | 
			
		||||
	}
 | 
			
		||||
	clock_gettime(CLOCK_REALTIME, &end_time);
 | 
			
		||||
	printf("delta = %f seconds\n", (float)(end_time.tv_sec - start_time.tv_sec) + (end_time.tv_nsec - start_time.tv_nsec) / 1e9f);
 | 
			
		||||
 | 
			
		||||
	uv_run(&loop, UV_RUN_DEFAULT);
 | 
			
		||||
 | 
			
		||||
	tf_ssb_destroy(ssb0);
 | 
			
		||||
 | 
			
		||||
	uv_loop_close(&loop);
 | 
			
		||||
 | 
			
		||||
	sqlite3_close(db0);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -6,3 +6,4 @@ void tf_ssb_test_id_conversion(const tf_test_options_t* options);
 | 
			
		||||
void tf_ssb_test_ssb(const tf_test_options_t* options);
 | 
			
		||||
void tf_ssb_test_following(const tf_test_options_t* options);
 | 
			
		||||
void tf_ssb_test_rooms(const tf_test_options_t* options);
 | 
			
		||||
void tf_ssb_test_bench(const tf_test_options_t* options);
 | 
			
		||||
 
 | 
			
		||||
@@ -697,5 +697,6 @@ void tf_tests(const tf_test_options_t* options)
 | 
			
		||||
	_tf_test_run(options, "sign", _test_sign);
 | 
			
		||||
	_tf_test_run(options, "b64", _test_b64);
 | 
			
		||||
	_tf_test_run(options, "rooms", tf_ssb_test_rooms);
 | 
			
		||||
	_tf_test_run(options, "bench", tf_ssb_test_bench);
 | 
			
		||||
	printf("Tests completed.\n");
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user