添加内存锻炼器代码

This commit is contained in:
zsyg
2025-06-28 09:00:15 +08:00
committed by GitHub
parent 0efd3a9e32
commit 6df4a9a534
18 changed files with 800 additions and 0 deletions

View File

@@ -0,0 +1,19 @@
#ifndef BENCHMARK_H
#define BENCHMARK_H
#include <stddef.h>
// 内存性能测试结果
typedef struct {
double allocation_time; // 分配时间(ms)
double fill_time; // 填充时间(ms)
double free_time; // 释放时间(ms)
} BenchmarkResult;
// 运行内存性能测试
BenchmarkResult run_memory_benchmark(size_t size_mb);
// 打印测试结果(支持中文)
void print_benchmark_result(const BenchmarkResult* result);
#endif // BENCHMARK_H

View File

@@ -0,0 +1,22 @@
#ifndef CONFIG_H
#define CONFIG_H
#include <stddef.h>
// 内存训练器配置
typedef struct {
size_t default_memory_size; // 默认内存大小(MB)
size_t max_memory_size; // 最大内存大小(MB)
int fill_mode; // 默认填充模式
} Config;
// 初始化配置
void init_config();
// 获取当前配置
Config* get_config();
// 保存配置到文件
void save_config();
#endif // CONFIG_H

View File

@@ -0,0 +1,9 @@
#ifndef ERROR_H
#define ERROR_H
#include "../include/memory_trainer.h"
// 获取错误描述
const wchar_t* get_error_message(ErrorCode code);
#endif // ERROR_H

View File

@@ -0,0 +1,21 @@
#ifndef LOG_H
#define LOG_H
#include <stdarg.h>
#include <stddef.h>
// 日志级别
typedef enum {
LOG_DEBUG,
LOG_INFO,
LOG_WARNING,
LOG_ERROR
} LogLevel;
// 初始化日志系统
void init_logger();
// 记录日志(支持中文)
void log_message(LogLevel level, const wchar_t* format, ...);
#endif // LOG_H

View File

@@ -0,0 +1,54 @@
#ifndef MEMORY_TRAINER_H
#define MEMORY_TRAINER_H
#include <stddef.h>
#include <windows.h>
// 错误代码定义
typedef enum {
ERR_SUCCESS = 0,
ERR_ALLOCATION,
ERR_INVALID_PARAM,
ERR_SYSTEM
} ErrorCode;
// 进度回调函数类型
typedef void (*ProgressCallback)(int percent);
// 内存操作函数声明
void* allocate_memory(size_t size);
void fill_memory(void* ptr, size_t size, int mode, ProgressCallback callback);
void free_memory(void* ptr, size_t size);
// 错误处理函数
void report_error(ErrorCode code, const wchar_t* message);
// 全局窗口句柄(外部声明)
extern HWND g_hMainWnd;
// 进度回调函数
void update_progress(int percent);
// UI控件ID定义
#define IDC_RUN_TEST 1001
#define IDC_PROGRESS 1002
#define IDC_RETAIN_MEM 1003
#define IDC_FILL_ZERO 1004
#define IDC_FILL_RANDOM 1005
// 窗口过程函数声明
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
// UI函数声明
void init_main_window_ui(HWND hWnd);
LRESULT handle_ui_message(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
// 初始化函数声明
void initialize_application(HINSTANCE hInstance);
HINSTANCE get_app_instance(void);
// 版本信息函数
const wchar_t* get_version_string(void);
const wchar_t* get_build_date(void);
#endif // MEMORY_TRAINER_H

View File

@@ -0,0 +1,15 @@
#ifndef UTILS_H
#define UTILS_H
#include <stddef.h>
// 字节转换工具MB转字节
size_t mb_to_bytes(size_t mb);
// 获取当前时间戳(毫秒)
long long get_timestamp();
// 打印调试信息(支持中文)
void debug_print(const wchar_t* message);
#endif // UTILS_H