gpt4 book ai didi

c++ - 如何衡量应用程序每秒可以产生多少结果

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:22:51 29 4
gpt4 key购买 nike

我有一个名为 IDCreator 的 C++ 应用程序,它使用两个参数来生成 ID。它将其返回值打印到 STDOUT ---- 使用 printf ---- 从调用进程获取的位置。

现在,我想知道 IDCreator 每秒能够生成多少个 ID(必须在此应用程序之外完成),我该如何实现? 下面的代码适合做这样的工作吗?还有别的办法吗?

string getid;
getid.append("./IDCreator arg1 arg2");

int count = 0;
const int PERIOD = 100;

const int LEN = 512;
char buff[LEN] = {0};

time_t tick1 = time(NULL);
while(1)
{
time_t tick2 = time(NULL);
if ((tick2 - tick1) > PERIOD)
break;

FILE* res = popen(cmd.c_str(), "r");
if (res)
{
fgets(res, buff, sizeof(buf));
pclose(res);

count++;
}
}

printf("Products Per Second is: %d", count/PERIOD);

最佳答案

我不想创建一个独立测量函数时间的函数并做那些花哨/复杂的事情,我想建议一种简单的方法。

  1. 在您的 ID 生成模块的开头和结尾添加记录器/计时器,例如,

    做点什么

    记录器信息(时间)

    { 代号

    记录器信息(时间)

    做点什么

Loggers 用于示例目的(通常是实现时间戳的最简单方法)这将帮助您找到生成一个 id 所需的时间基于此,我希望时间以毫秒/微秒为单位(如果它以微秒为单位,那么您需要使用微秒粒度的计时器)。

如果您需要 x 毫秒来生成 1 个 id,那么您将在一秒钟内生成 round(1000/x) 个 id。这是一个简单的等式。

  1. 您可以在程序的开始和结束时添加记录器,并限制程序只执行固定的持续时间(使用定时器或手动停止程序的逻辑中断)

如果程序在 x 秒内生成 y 个 ID,则在 1 秒内程序生成 y/x id

运行程序 2-3 次,持续时间足够长,以获得平均值和准确性,从而获得程序的吞吐量。

希望对您有所帮助。

关于c++ - 如何衡量应用程序每秒可以产生多少结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30814628/

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