Benchmark库的建立04:单个任务的长时间执行Bug
来源:互联网 发布:知其所以然 编辑:程序博客网 时间:2024/05/22 10:55
Bug类型
- 单个任务的长时间执行Bug(执行这个任务耗时很长而引起的bug)
正确版本程序
- apps/benchmark/BlinkRunTask
程序描述
- 在Blink程序的基础上添加computeTask任务并在
Timer0.fired()事件中post出去。 - 每隔0.25s/0.5s/1s的时间间隔切换LED0/LED1/LED2的状态。
Avrora运行程序
- alias avrora=’java -jar avrora-beta-1.7.113.jar -colors=false -banner=false’;
- make mica2;
- mv build/mica2/main.exe brt.elf;
avrora -platform=mica2 -monitors=leds -seconds=10
-simulation=sensor-network brt.elf运行结果分析(正确版本)
LED0,LED1、LED2切换结果正确。
bug版本程序
- /apps/benchmark/bm_BlinkRunTask
程序修改的部分
- 将computeTask修改成一个计算量大的任务。
bug的显现条件
- 当单个computeTask任务的计算量很大时
Bug症状
1. 在指定的模拟时间内,LED灯切换的次数减少且最终不再闪烁变换。
**备注**
- 任务的计算量大大影响了定时器的运行,导致LED的切换不正常;
- 应该把大计算量的任务分解成多个小任务执行。
0 0
- Benchmark库的建立04:单个任务的长时间执行Bug
- Benchmark库的建立05:任务Post失败 Bug
- Benchmark库的建立01:数组越界bug
- Benchmark库的建立02:除0 bug
- Benchmark库的建立03:空指针异常Bug
- Benchmark库的建立06:变量溢出 Bug
- poky:单个任务是如何被执行的
- 配合长时间定时任务,立即执行该定时任务的思路
- OracleJOB的建立,定时执行任务
- Oracle JOB的建立,定时执行任务
- 一个长时间parse的bug解决过程
- 在 WinForm 中使用进度条展示长时间任务的执行进度
- oracle 中DB job的建立 定时执行任务
- 关于按钮长时间按住多次执行任务
- flex as3 长时间执行一个任务
- Google benchmark:一个简单易用的C++ benchmark库
- 通过定时任务自动清理长时间挂着没commit的事物
- iOS之实现后台任务的长时间运行
- Java网络编程
- 创建Model三部曲
- MyEclipse10 Servers窗口出现“Could not create the view: An unexpected exception was thrown”解决办法
- CodeForces 612 A. The Text Splitting(水~)
- Node.JS 利用socket.io 实现dj播放及聊天程序 代码
- Benchmark库的建立04:单个任务的长时间执行Bug
- 创建代码块
- jQuery学习<1>
- VS 2013搭建PCL,不需要Cmake
- JSP页面跳转的几种实现方法
- 初识ucosii多任务
- android工程中资源模块划分
- iOS 设计模式 - 备忘录模式
- robotium注入和查找事件源码浅析