gpt4 book ai didi

c++ - 每秒运行代码 10000 次

转载 作者:太空宇宙 更新时间:2023-11-04 05:36:43 24 4
gpt4 key购买 nike

我正在为我的程序编写测试代码。我需要代码每秒运行 10000 次。我的解决方案是:

for(int i = 0; i < 1000; ++i) {
for(int j = 0; j < 10; ++j) {
// do something here. Maybe ++k or some code else
}
usleep(1);
}

结果时间超过 1 秒。所以我必须调整 1000 和 100 以满足要求。这不是一个好的做法:当运行时间发生变化时,我必须更改代码。

有什么想法吗?

更新:

该程序正在 Linux 上运行。我编写了一个消息队列。像往常一样,它有生产者和消费者。我想从头到尾进行测试。我需要测试代码以很小的间隔(最好是 100μs)发送几条消息。

如果我在没有 sleep 的情况下发送所有消息,消息队列将已满并且无法在整个测试中工作。

最佳答案

It's not a good practice: when the running time changes, I have to change the code.

你是对的,定时循环从来都不是一个好主意,自 20 世纪 80 年代以来我什至没有听说过有人编写它们。如今高端电脑和低端电脑之间存在太大差异,因此这不是一个可行的策略。更不用说它在单个多任务机器上的脆弱性了。

您应该使用计时器。 API 依赖于平台,但您没有告诉我们您的目标平台是什么。检查您的操作系统文档以获取更多详细信息。根据您需要的分辨率,可能有几种不同类型的计时器可供选择。

请记住,即使是相对高分辨率的计时器也不一定能保证毫秒精度,除非您在实时操作系统上运行。

接下来的问题是为什么您需要在此时间间隔内执行代码。我想可能有更好的方法来解决您的问题,无论是什么。但问题中没有提供足够的信息来猜测这一点。

关于c++ - 每秒运行代码 10000 次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17545672/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com