- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我要感谢大家的快速回复^^ Sleep() 按预期工作,我的 CPU 不再被这个程序恶意吞噬了!我会保留这个问题,但要让大家知道 CPU 问题已经得到了方便和专业的回答:D
顺便说一句,面对更大、更重要的问题,我一定会确保将微优化保持在最低限度!
============================================= =================================
出于某种原因,我的程序(我为欢笑和练习而制作的控制台闹钟)非常占用 CPU。它消耗大约 2mB RAM,对于这样一个小程序来说已经相当多了,但它有时会破坏我的 CPU 超过 50% 的资源。
大多数时候我的程序除了倒数秒什么都不做,所以我猜我的程序的这一部分对我的 CPU 造成了如此大的压力,虽然我不知道为什么。如果是这样,您能否推荐一种使其更少的方法,或者如果问题不能轻易解决的话,也许可以使用一个库来代替?
/* The wait function waits exactly one second before returning to the *
* called function. */
void wait( const int &seconds )
{
clock_t endwait; // Type needed to compare with clock()
endwait = clock() + ( seconds * CLOCKS_PER_SEC );
while( clock() < endwait ) {} // Nothing need be done here.
}
万一有人浏览 CPlusPlus.com,这是他们为 clock() 编写的 clock() 函数的真实复制/粘贴。为什么注释 //Nothing need be done here
如此乏味。我还不完全确定 clock() 到底做了什么。
程序的其余部分调用另外两个函数,它们每 60 秒才激活一次,否则返回调用者并再倒计时一秒,所以我认为这不会太占用 CPU - 虽然我不知道,这是我第一次尝试优化代码。
第一个功能是使用 system("cls")
清除控制台,我知道这真的非常慢而且不是一个好主意。我将更改后加速,但是,由于它每 60 秒才激活一次并且有明显的滞后峰值,我知道大多数时候这不是问题。
第二个函数也是每 60 秒用更新的剩余时间重写屏幕内容。
我将在调用 wait、clearScreen 和 display 的函数中进行编辑,如果很明显这个函数不是问题的话。我已经尝试引用大多数变量,这样它们就不会被复制,并避免使用 endl
,因为我听说它与 \n
相比有点慢。
最佳答案
这个:
while( clock() < endwait ) {}
不是“什么都不做”。在 while
的 中肯定没有做任何事情。循环,但是 clock() < endwait
的测试不是免费的。事实上,它会以你的系统可能处理的速度一遍又一遍地执行,这就是增加你的负载的原因(可能是 50%,因为你有一个双核处理器,这是一个单线程程序只能使用一个核心)。
正确的做法是将整个 wait
都丢弃。功能,而只是使用:
sleep(seconds);
这实际上会停止您的程序执行指定的秒数,并且不会消耗任何处理器时间。
根据您的平台,您需要包含 <unistd.h>
(UNIX 和 Linux)或 <windows.h>
(Windows) 访问此功能。
关于c++ - 极度 CPU 密集型闹钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2717341/
在哥哥的帮助下,我制作了这个小闹钟。我昨晚尝试了它,没有使用 nonBlockingRawInput 并且工作正常,但是使用 nonBlockingRawInput 它没有工作。今天我已经试过了,但它
我创建了一个简单的闹钟通知应用程序,通过它我可以获取实时信息、设置闹钟打开或关闭以及播放单音音频。但我需要播放应以类 VOID 开头的声音。 下面是代码: 获取并启动警报通知: - (void)vie
我尝试在 Xcode 4.6.3 - http://vimeo.com/29824336 下重写以下教程 但我有一个问题,在 24:00 左右我的代码没有发出警报: -(void) scheduleL
在我的 Activity 中: Intent myIntent = new Intent(this, MyAlarmService.class); pendingIntent = PendingInt
我正在尝试制作一个可以设置多次的闹钟。这是代码 std::cout>link; std::cout<<"\n\nProccessing..."; loop3: //Ke
我构建了一个带有计时器的 Cordova 闹钟应用程序。一切正常,除了我现在想在时钟到达时通过视觉和音频警报通知用户。 我使用以下插件进行本地通知:https://github.com/katzer/
我正在编写一个应用程序,用户可以在其中配置警报/警报。在这一点上,我已经做好了一切工作。我正在使用 触发警报 Intent alarmIntent = new Intent(AlarmClock.AC
我正在尝试将后台闹钟功能添加到我正在开发的应用中。 我已经阅读了 UILocalNotification 对象及其用法,并且知道它限制为 30 秒的音频。 我正在考虑安排间隔 30 秒的多个通知(比如
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 9
这是一个非常简单的问题。我正在开发一个 iPhone 应用程序,其中使用自定义日历。用户可以在此应用程序中设置闹钟。用户添加到日历的事件不应在默认日历应用程序中可见,这意味着我无法使用默认日历应用程序
是否可以在我的应用程序代码中为 iPhone 的闹钟应用程序设置闹钟和闹钟描述?例如,在代码中设置一个早上 7:00 的闹钟,并带有“煮咖啡”的描述。因此,当用户退出我的程序时,如果他们进入 iPho
我必须创建一个示例应用程序,其中当我单击一个按钮时,应该打开 native 闹钟,以便用户可以使用它来设置闹钟? 最佳答案 对于默认应用程序 MobileClock.app 存在多个 url 方案。如
我的应用程序播放闹钟。在 Android 声音设置中,此声音由“铃声音量” slider 控制,而不是由“闹钟音量” slider 控制。如何更改由“闹钟音量”控制的声音? public void
我正在尝试构建一个闹钟,用户可以在其中选择闹钟必须响起的时间和工作日。为此,我使用了 setAlarmClock() ,因为即使设备进入打盹模式,警报也必须触发。 问题是,setAlarmClock(
我正在创建一个简单的时间选择器对话框,当用户设置时间时,我将该时间存储在日历实例中。 public void onTimeSet(TimePicker timePicker, int i, int
关闭。这个问题需要debugging details .它目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and th
主要问题:如果我想在我的应用程序中为任务附加截止日期,我应该使用本地通知、警报或提醒吗?我希望他们在截止日期到来时即使应用程序未运行也能收到通知。 我找到了 this关于使用它说可以的 UILocal
我正在开发一个闹钟,它会按规定的时间间隔振动。因此,如果我选择 5 秒,应用程序将每隔 5 秒振动一次。但我需要停止、暂停和恢复应用程序。 这是我的课: public class AndroidAla
过去几天我一直在为 Android 构建自定义闹钟。到目前为止一切顺利,警报响起,我使用 HTTP 流播放一些远程声音(当然需要网络,否则,有本地声音的后备)。现在是时候将这个应用程序带到 iOS 上
有没有办法从我的应用程序访问和更新 iPhone 中的 native 闹钟设置?我需要一个根据一年中的时间变化的滑动闹钟,我想为此使用原生 iPhone 闹钟。这在 iOS SDK 中是否可行,例如,
我是一名优秀的程序员,十分优秀!