0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

英创信息技术WinCE检测CPU负载及内存占用介绍

英创信息技术 来源:英创信息技术 作者:英创信息技术 2020-02-03 09:09 次阅读

通过CPU负载信息,可以判断程序运行环境是否稳定,帮助分析程序中是否有死循环,造成系统变慢。

通过内存使用信息,可以评估程序内存占用情况,帮助分析程序中是否有内存泄漏的情况。

客户在开发初期,可能经常需要用到以上功能,英创提供一个简单的例程实现以上功能。

CPU负载检测

通过GetTickCount获得系统时间读数,通过GetIdleTime获得CPU空闲时间读数,通过计算它们之间的百分比,就可以获得CPU的负载。代码如下:
DWORD m_dwStartTick;
DWORD m_dwEndTick;
DWORD m_dwStartIdle;
DWORD m_dwEndIdle;
m_dwStartTick = GetTickCount();
m_dwStartIdle = GetIdleTime();
//Sleep(1000);
DWORD dwCpuIdle;
m_dwEndTick = GetTickCount();
m_dwEndIdle = GetIdleTime();
dwCpuIdle = ((100*(m_dwEndIdle - m_dwStartIdle)) / (m_dwEndTick - m_dwStartTick));
RETAILMSG(1, (L'CPU:%d%%\r\n', 100 - dwCpuIdle));

内存占用检测

CE中,内存一部分分配给系统使用,一部分分配给用户程序使用,这个分配的比例可以通过userinfo.txt配置文件中的Store字段来分配。
[SYSTEM]
Store='15'


这里的15表示内存15%大小分配给系统使用,剩下85%分配给用户程序使用。详情请参考光盘《使用必读》文档。

通过函数GlobalMemoryStatus,可以获得分配给用户程序的内存大小(字节为单位),及目前空余的大小。
MEMORYSTATUS memstatus;
GlobalMemoryStatus(&memstatus);
STORE_INFORMATION storeinfo;
GetStoreInformation(&storeinfo);
RETAILMSG(1, (L'MEM:%d%%\r\nuser: total%8dKB\r\n used%8dKB\r\n',
memstatus.dwMemoryLoad,memstatus.dwTotalPhys/1024,(memstatus.dwTotalPhys-memstatus.dwAvailPhys)/1024);
通过函数GetStoreInformation,可以获得分配给系统的内存大小(字节为单位),及目前空余的大小。
STORE_INFORMATION storeinfo;
GetStoreInformation(&storeinfo);
RETAILMSG(1, (L'system:total%8dKB\r\n used%8dKB\r\n\r\n',
storeinfo.dwStoreSize/1024, (storeinfo.dwStoreSize-storeinfo.dwFreeSize)/1024));
例程说明

运行程序,程序会周期性读取CPU占用率及内存占用信息,显示在界面中。

同时将信息打印到DEBUG调试串口,方便无显示屏主板使用。

该程序不会占用太多CPU资源及内存,可以放到后台运行。

例程及源码已包含在最新的开发光盘中,客户也可以联系英创工程师获得。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式主板
    +关注

    关注

    7

    文章

    6085

    浏览量

    35218
收藏 人收藏

    评论

    相关推荐

    如何检测电脑的RAM内存

    在现代计算机系统中,随机存取存储器(RAM)是至关重要的组件之一。它负责存储当前正在使用的程序和数据,以便CPU可以快速访问。随着技术的发展,RAM的速度和容量都有了显著的提升,但如何准确地检测
    的头像 发表于 11-11 09:51 208次阅读

    中科达荣获2024年软件和信息技术服务优秀企业

    及前百家企业”名单。中科达凭借非凡的技术实力与持续的创新能力,成功入选“2024年度软件和信息技术服务竞争力百强企业”以及“2024年软件和信息技术服务优秀企业”。
    的头像 发表于 10-30 11:44 385次阅读

    服务器cpu占用率高怎么解决

    长时间运行的计算任务 应用程序存在内存泄漏,导致CPU占用率上升 系统问题 操作系统配置不当,导致CPU占用率高 系统存在病毒或者恶意软件,
    的头像 发表于 10-10 15:14 735次阅读

    国产化背景下的工控主板发展现状

    ,是信息技术应用创新产业的简称,于2016年“信工委会”(信息技术应用创新工作委员会)提出,目的就是要推动我们国内软硬件关键技术的研发
    的头像 发表于 09-21 16:15 332次阅读

    梯度科技入选2023年信息技术应用创新解决方案名单

    日前,工业和信息化部网络安全产业发展中心(工业和信息化部信息中心)在天津举办2024信息技术应用创新发展大会暨解决方案应用推广大会。会上正式公布了2023年
    的头像 发表于 09-09 16:29 392次阅读

    主板内存故障灯亮会是cpu的问题吗

    主板内存故障灯亮并不一定是CPU的问题,但CPU内存之间的交互确实可能影响这一故障现象。以下是对主板内存故障灯亮可能原因的分析: 一、
    的头像 发表于 09-02 14:42 2229次阅读

    主板自检cpu内存灯一直来回闪

    当你遇到主板自检时CPU内存灯一直来回闪烁的情况,这通常意味着硬件检测过程中存在问题。这个问题可能涉及到多个方面,包括硬件故障、BIOS设置错误、兼容性问题等。 1. 硬件故障 1.1 CP
    的头像 发表于 09-02 14:38 7842次阅读

    如何检测内存泄漏

    检测内存泄漏是软件开发过程中一项至关重要的任务,它有助于识别和解决那些导致程序占用过多内存资源,从而影响程序性能甚至导致程序崩溃的问题。以下将详细阐述几种常见的
    的头像 发表于 07-30 11:50 1579次阅读

    mesh的内存占用能否优化?

    我测试到esp_mesh在开启的情况下,即打开wifi和打开mesh,DRAM会占用大约130kb内存。且测试发现esp32剩余内存不足大约60kb的时候系统会重启。这样来说300KB内存
    发表于 06-28 15:32

    linux下查询进程占用内存方法有哪些?

    linux下查询进程占用内存方法
    发表于 04-08 06:03

    龙芯中科三项信方案入围工信部2023年信息技术应用创新应用示范案例名单

    近日,工业和信息化部通报了2023年信息技术应用创新解决方案征集遴选结果,本次共评选出典型解决方案173个、应用示范案例83个、单项创新案例64个。
    的头像 发表于 03-07 16:45 863次阅读
    龙芯中科三项信<b class='flag-5'>创</b>方案入围工信部2023年<b class='flag-5'>信息技术</b>应用创新应用示范案例名单

    在MDK中使用RTT为什么内存占用这么大?

    为什么在MDK中使用RTT ,内存占用这么大?
    发表于 02-26 07:19

    软通动力与捷技术签订战略合作协议

    近日,软通动力信息技术(集团)股份有限公司(以下简称“软通动力”)与宁波捷技术股份有限公司(以下简称“捷技术”)正式签订战略合作协议,并
    的头像 发表于 02-03 16:35 1084次阅读

    基于飞腾CPU的机场安检系统和航旅大模型荣获信民航赛道大奖

    近日,2023 信 “大比武” 活动颁奖总结大会在北京召开。中国工程院院士、信工委会专家技术委员会副主任委员邬江兴,工业和信息化部信息技术
    的头像 发表于 01-03 09:51 728次阅读
    基于飞腾<b class='flag-5'>CPU</b>的机场安检系统和航旅大模型荣获信<b class='flag-5'>创</b>民航赛道大奖

    java中cpu占用过高如何分析

    Java中CPU占用过高是一种常见的问题,需要通过多种方法进行分析和解决。本文将详细介绍Java中CPU占用过高的原因以及如何进行分析和优化
    的头像 发表于 12-05 11:15 9114次阅读