求助:想各位大哥请教几个 QueryPerformanceCounter 问题,谢谢!

MJXQJ888 2008-12-15 11:57:40
请教:
在网上看到一段程序:

LARGE_INTEGER litmp; //定义变量
LONGLONG QPart1,QPart2; //定义变量
double dfMinus, dfFreq, dfTim; //定义变量
QueryPerformanceFrequency(&litmp); //取的计算机内部定时器工作频率(获取每秒多少CPU Performance Tick )
dfFreq = (double)litmp.QuadPart; //获得计数器的时钟频率
QueryPerformanceCounter(&litmp); //计数器 计算CPU运行到现在的时间
QPart1 = litmp.QuadPart;// 获得初始值

LARGE)INTEGER litmap;
LONGLONG QPart1,QPaet2;
double dfminus,dfFreq,dfTim;
QueryPerformanceFrequency(&litmap);
QPart = litmap.QuadPart;//
do
{
QueryPerformanceCounter(&litmp);
QPart2 = litmp.QuadPart;//获得中止值
dfMinus = (double)(QPart2-QPart1);
dfTim = dfMinus / dfFreq;// 获得对应的时间值,单位为秒
}while(dfTim<0.000001);


问题1:
为什么要把
dfMinus, dfFreq, dfTim 定义为 double?
定义为 LONGLONG 或者 LARGE_INTEGER 可以吗?

问题2:
dfFreq = (double)litmp.QuadPart; //获得计数器的时钟频率

QuadPart 是什么意思?
为什么要 QuadPart 呢?
还有为什么要 (double)?

问题3:
dfTim = (dfMinus * 100) / dfFreq;//
那么得到的应该是 ms ,是吗?

那么
dfMinus 和 dfFreq 可以都是 LARGE_INTEGER 类型,是不?

问题4:
如果我的电脑连续开几天
那么 LARGE_INTEGER 计数够了不?

谢谢!
...全文
148 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
FWing 2008-12-19
  • 打赏
  • 举报
回复
上面那个是从网上找来的,
32位的这样使用
LARGE_INTEGER litmp ;

litmp.LowPart=0;
litmp.HighPart=0;
FWing 2008-12-19
  • 打赏
  • 举报
回复
LARGE_INTEGER是union;用于表示一64位有符号整数值.其他定义如下:

typedef union _LARGE_INTEGER {
struct {
DWORD LowPart;
LONG HighPart;
};
LONGLONG QuadPart;
} LARGE_INTEGER;

如果你有编译器直接支持64位整数可以直接使用QuadPart(64位),否则分别对LowPart(32位)和HighPart(32位)存取,HighPart的最高位为符号位。

表示数的范围:--3689348814741910324到+4611686018427387903

LARGE_INTEGER的值等4000000000,在内存中的布局:

00 28 6B EE 00 00 00 00
(低字节 ) (高字节 )
MJXQJ888 2008-12-17
  • 打赏
  • 举报
回复
我 aa.h 文件定义

LARGE_INTEGER litmp



aa.cpp 初始化

litmp = {0};

有错啊


我应该怎么初始化呢?
herman~~ 2008-12-15
  • 打赏
  • 举报
回复
msdn
FWing 2008-12-15
  • 打赏
  • 举报
回复
建议你查MSDN,对QueryPerformanceFrequency的说明很清楚。
你提到的这些变量MSDN上都有解释。
内容概要:本文围绕“考虑用户侧柔性负荷的社区综合能源系统优化调度”展开研究,基于Matlab代码实现,构建了涵盖电、热等多种能源形式耦合的社区级综合能源系统模型。研究重点在于将用户侧具有可调节特性的柔性负荷纳入优化框架,通过建立以经济性和低碳性为目标的优化调度模型,结合YALMIP等优化工具调用Cplex求解器进行求解,在保障用户用能需求的前提下,提升系统对可再生能源的消纳能力,降低综合用能成本,并增强系统运行的灵活性与智能化水平。该研究为社区能源系统的高效、可持续运行提供了可复现的技术方案与仿真验证路径。; 适合人群:具备电力系统、能源系统等相关专业知识基础,熟悉Matlab编程环境与基本优化建模方法的研究生、科研人员及从事能源领域技术研发的工程技术人员。; 使用场景及目标:①用于高校及科研机构开展综合能源系统、需求侧响应、柔性负荷建模等方向的课题研究与算法验证;②为城市社区、产业园区等实际场景的能源管理系统开发提供优化算法支持与案例参考;③帮助研究人员深入掌握多能流协同优化、YALMIP/Cplex应用、日前调度建模及柔性负荷响应机制的代码实现方法。; 阅读建议:建议读者结合提供的Matlab代码实例,逐步搭建并调试仿真模型,重点关注目标函数的设计逻辑、各类物理约束(如功率平衡、设备出力、储能动态等)的数学表达以及柔性负荷参与调度的建模方式,可进一步拓展至不确定性优化、多时间尺度调度等进阶场景进行深化研究。

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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