mirror of
https://github.com/zs-yg/kortapp-z.git
synced 2025-12-07 00:20:43 +08:00
添加内存锻炼器代码
This commit is contained in:
40
others/C/memory/src/benchmark.c
Normal file
40
others/C/memory/src/benchmark.c
Normal file
@@ -0,0 +1,40 @@
|
||||
#include "../include/benchmark.h"
|
||||
#include "../include/utils.h"
|
||||
#include "../include/memory_trainer.h"
|
||||
#include <windows.h>
|
||||
#include <stdio.h>
|
||||
|
||||
// 运行内存性能测试
|
||||
BenchmarkResult run_memory_benchmark(size_t size_mb) {
|
||||
BenchmarkResult result = {0};
|
||||
LARGE_INTEGER freq, start, end;
|
||||
QueryPerformanceFrequency(&freq);
|
||||
|
||||
// 测试内存分配
|
||||
QueryPerformanceCounter(&start);
|
||||
void* ptr = allocate_memory(size_mb);
|
||||
QueryPerformanceCounter(&end);
|
||||
result.allocation_time = (end.QuadPart - start.QuadPart) * 1000.0 / freq.QuadPart;
|
||||
|
||||
// 测试内存填充
|
||||
QueryPerformanceCounter(&start);
|
||||
fill_memory(ptr, mb_to_bytes(size_mb), 0, NULL);
|
||||
QueryPerformanceCounter(&end);
|
||||
result.fill_time = (end.QuadPart - start.QuadPart) * 1000.0 / freq.QuadPart;
|
||||
|
||||
// 测试内存释放
|
||||
QueryPerformanceCounter(&start);
|
||||
free_memory(ptr, size_mb);
|
||||
QueryPerformanceCounter(&end);
|
||||
result.free_time = (end.QuadPart - start.QuadPart) * 1000.0 / freq.QuadPart;
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
// 打印测试结果(支持中文)
|
||||
void print_benchmark_result(const BenchmarkResult* result) {
|
||||
wprintf(L"=== 内存性能测试结果 ===\n");
|
||||
wprintf(L"分配时间: %.2f 毫秒\n", result->allocation_time);
|
||||
wprintf(L"填充时间: %.2f 毫秒\n", result->fill_time);
|
||||
wprintf(L"释放时间: %.2f 毫秒\n", result->free_time);
|
||||
}
|
||||
Reference in New Issue
Block a user