系统启动后应用程序延迟

时间:2017-05-16 12:16:11

标签: c++ logging delay system-calls

我有应用程序(单线程),每次操作系统成功启动时都会被Windows事件触发。

一次大约十几次启动我观察到我的应用程序崩溃,无法按时发送数据到服务。经过调查,我发现代码扇区导致问题(花费太多时间)。

我无法手动重现这一点,所以我在臭臭的行中对我的代码进行了一些残酷的记录。

我发现第58行和第59行之间的延迟接近1.5秒!

...
LIF_DBG << "LINE 58";
Buffer request(static_cast<uint32_t>(cmdSize)); // around 50-100 bytes
LIF_DBG << "LINE 59";
...

缓冲区构造函数:

Buffer(uint32_t size_) : buf(nullptr), size(size_)
{
    buf = new uint8_t[size];
    if (buf != NULL && size > 0)
    {
        memset(buf, 0, size);
    }
}

注意:延迟不仅发生在这一行,我观察到间接调用 new malloc() memset()<的其他行的奇怪延迟/ em>等。

我不明白是什么原因造成了这种奇怪的行为,我打赌有两种选择:

  1. 系统调用延迟

  2. 记录器有时会导致延迟(不太可能,因为最初的记录是在臭臭的代码部门之外)

  3. 我还能做些什么来找到根本原因?

0 个答案:

没有答案