sph_benchmark.c

来自「游戏编程精粹6第中关于粒子的实时流体仿真系统,对入门的游戏开发者很有帮助.」· C语言 代码 · 共 55 行

C
55
字号
/** 
 * Benchmark code for performance analysis
 *
 * Copyright (c) Takashi AMADA  All Rights Reseved
 **/


#include "sph_benchmark.h"
#include <memory.h>
#include <windows.h>

int benchmark_cpu(cpu_sph* sph, int itr, float timestep)
{
	int i;
	DWORD st;

	st = GetTickCount();
	for (i = 0; i < itr; i++)
	{
		cpu_sph_elapse(sph, timestep);
	}

	return (GetTickCount() - st);
}


int benchmark_neighbour_search_cpu(cpu_sph* sph, int itr)
{
	int i;
	DWORD st;

	st = GetTickCount();
	for (i = 0; i < itr; i++)
	{
		//sph_grid_get_neighbours(&sph->grids, sph->pos, 0, sph->fluid_start, sph->n_particles, &sph->n_list, sph->r_search);
	}

	return (GetTickCount() - st);
}


void print_benchmark(cpu_sph* sph, int itr, float timestep)
{
	float cpu_search;
	float cpu_overall;

	printf("Started SPH on CPU Benchmarking ...\n");
	cpu_search = benchmark_neighbour_search_cpu(sph, itr)/(float)itr;
	cpu_overall = benchmark_cpu(sph, itr, timestep)/(float)itr;

	printf("CPU: Overall %6.2f ms.; Search %6.2f ms.; Eq. %6.2f ms.\n",
		cpu_overall, cpu_search, cpu_overall - cpu_search);
	printf("Finished Benchmarking\n");
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?