gpt4 book ai didi

c++ 日志类效率低下?

转载 作者:行者123 更新时间:2023-11-28 07:57:41 26 4
gpt4 key购买 nike

我为一个游戏编写了一个非常简单的日志类,我正在编写它只是为了在终端中查看一些信息。但是我这样做的方式让我很烦恼,因为我觉得它效率太低了。每次我记录一些东西时,它的构造函数和析构函数都会被调用。因此,如果我想打印当前帧速率(例如 60fps),cont/desct 每秒调用 60 次(每秒创建和销毁 60 个日志对象)。我不想每次我想记录一些东西时都在游戏中传递一个日志对象,我不想使用 signletons。有没有更好的解决方案。

#include <iostream>
#include <sstream>


class Log
{
public:
Log() : os()
{

}

~Log()
{
fprintf(stderr, "%s\n", os.str().c_str());
}

std::ostringstream &Write()
{
os << "from log class: " << 1337 << "\t";

return os;
}

private:
std::ostringstream os;
};

int main(int argc, char *argv[])
{
Log().Write() << "Hello world " << 45;

return 0;
}

最佳答案

我建议使用一些现有的日志记录框架。人们付出了很多努力使其尽可能快速和灵活。

这里是对现有日志框架的很好的描述:

https://stackoverflow.com/questions/696321/best-logging-framework-for-native-c

关于c++ 日志类效率低下?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12332522/

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