怎样让我的程序占用一定比率的CPU时间?(跪求高手指点)

koolfool 2006-04-21 05:00:15
最近看到一篇论文中提到,作者仿真实验的时候,他能够维持他的仿真程序始终占用CPU 80%的时间,并且这个比率是可以调节的。我现在想模拟它的程序,控制一定比率的CPU时间被我的程序占用,当然,这80%的时间是用来对数据库内容进行搜索的,并不是做无用功:)

我有个大概的想法:

创建一个父进程进行调度,不停地fork()直到父进程和子进程占用时间比率达到80%,然后让子进程在数据库中搜索,但是我不太清楚怎么获得占用CPU的情况,不知道用struct tms和times()函数这个法子行不行?请高手指点一二,如果有更好的办法,小弟不胜感激 55555
...全文
331 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
bolixin008 2006-04-23
  • 打赏
  • 举报
回复
错了 是第5章
bolixin008 2006-04-23
  • 打赏
  • 举报
回复
在windows核心编程一书中有讨论. 在第4章. 如果你想约束进程,必须要把它捆绑到一个作业中去,然后可以通过调用系统函数SetInformationJobObject(...)来对作业进行限制.其中的一个结构体可以约束作业的CPU占用时间.
wlzqi 2006-04-21
  • 打赏
  • 举报
回复
好像作业可以吧
kui3000 2006-04-21
  • 打赏
  • 举报
回复
那怎么调整呢?
另外20%空闲的不想忙等待for();这种
想留出来做紧急时间发生的时候处理
DentistryDoctor 2006-04-21
  • 打赏
  • 举报
回复
随时判断你当前程序的CPU使用率。
使用Perform Couters来取得CPU占用率。
koolfool 2006-04-21
  • 打赏
  • 举报
回复
怎么获得所有线程或线程的CPU时间?struct tms和times()函数可以么?
Qiushen 2006-04-21
  • 打赏
  • 举报
回复
那个线程,然后
double tt = 1.0;
while(true)
{
for (int i = 0; i < n; i++)
{
tt = 1.0 * 2.0 * 3.7 / 8.9 * 4.5.....; // 一些无用的计算
}
nCpuTime = 取得CPU占用率;
if (nCpuTime != 自己要所要)
{
调整 n
}
}
sycnick 2006-04-21
  • 打赏
  • 举报
回复
控制进程优先级,推荐资料《window核心编程》+ MSDN
本资源包收录了一套采用Python编程语言与Flask轻量级框架构建的考勤管理平台,作为一项获得优异评价的学术研究成果,其设计过程得到了专业教师的全面指导与正式认可。在最终答辩环节中,该系统的评审得分高达97分,体现了其在技术实现与学术规范方面的卓越表现。 项目文件经过系统化的环境适配测试,分别在macOS与Windows 10/11操作系统平台上完成了全面验证,确保用户获取后可直接部署运行。配套文档详细阐述了系统的安装流程与配置步骤,为使用者提供了完整的技术参考。 该考勤管理系统具备完善的员工出勤记录、请假审批及考勤统计等核心功能模块,采用模块化架构设计,代码结构清晰规范。除作为毕业设计参考外,该系统亦适用于计算机相关专业的课程实践教学,可作为软件工程、数据库原理等课程的配套实践项目。 资源包内包含完整的源代码集合与系统使用指南,所有技术文档均采用标准化格式编写。开发过程中严格遵循软件工程规范,确保了系统的可维护性与扩展性。各功能模块均经过多轮测试验证,保证了系统运行的稳定性与数据处理的准确性。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!

15,467

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧