# simulate **Repository Path**: yelisheng_admin/simulate ## Basic Information - **Project Name**: simulate - **Description**: # CPU 和内存占用率控制工具 ## 项目简介 本工具是一个系统资源调控解决方案,能够通过动态负载生成技术将CPU和内存使用率维持在用户设定的目标水平。采用Spring Boot框架实现,支持通过配置参数快速调整资源占用策略。 ## 核心功能 ### CPU负载控制 - 自动检测CPU核心数 - 按比例创建计算密集型线程 - 实时线程数量调节 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 1 - **Created**: 2025-02-18 - **Last Updated**: 2025-05-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # CPU 和内存占用率控制工具 ## 项目简介 本工具是一个系统资源调控解决方案,能够通过动态负载生成技术将CPU和内存使用率维持在用户设定的目标水平。采用Spring Boot框架实现,支持通过配置参数快速调整资源占用策略。 ## 核心功能 ### CPU负载控制 - 自动检测CPU核心数 - 按比例创建计算密集型线程 - 实时线程数量调节 示例代码: ```java int threadCount = (int) (numProcessors * cpuUsage); ``` ### 内存占用管理 - JVM内存空间动态分配 - 对象池化内存占用技术 - 内存溢出保护机制 示例代码: ```java long memorySize = (long) (totalMemory * memoryUsage / (1024 * 1024)); memorySize = (long) (memorySize / 1.3); ``` ## 快速开始 ### 环境要求 - JDK 17+ - Maven 3.6+ ### 安装运行 1. 克隆仓库: ```bash git clone https://github.com/yourusername/simulate-load-parent.git ``` 2. 编译打包: ```bash mvn clean package ``` 3. 运行服务(带参数启动): ```bash java -jar target/simulate-load.jar --cpuUsage=0.6 --memoryUsage=0.5 ``` ## 配置参数 | 参数名称 | 类型 | 默认值 | 说明 | |---------------|--------|--------|-------------------------------| | cpuUsage | double | 0.4 | 目标CPU使用率(0.0-1.0) | | memoryUsage | double | 0.7 | 目标内存使用率(0.0-1.0) | ## 实现原理 ### CPU控制机制 1. 获取可用处理器数量 2. 根据目标使用率计算活跃线程数 3. 启动无限循环计算线程保持负载 示例代码: ```java new Thread(() -> { while(true) i++; }).start(); ``` ### 内存管理策略 1. 计算目标内存空间 2. 创建Object对象填充ArrayList 3. 保持内存引用防止GC回收 示例代码: ```java ArrayList al = new ArrayList<>(arrCapacity); ``` ## 注意事项 1. 需要运行权限:`sudo`(Linux/Mac) 2. 内存控制存在±5%的误差范围 3. CPU控制精度取决于物理核心数 ## 许可证 [MIT License](LICENSE) ## 联系支持 - 联系邮箱:807448395@qq.com - 微信: - ![img.png](img.png) ## 贡献指南 欢迎贡献代码!请在提交前确保: 1. 遵循代码风格 2. 提交清晰的提交信息 3. 提供单元测试 ## 鸣谢 感谢所有贡献者和用户的支持!