Win*_*ert 8 c++ performance profiling iostream stdio
我试图在InterviewStreet上解决问题.一段时间后,我确定我实际上花了大量时间阅读输入.这个特殊的问题有很多输入,所以这有点意义.没有意义的是为什么不同的输入方法具有如此不同的表现:
最初我有:
std::string command;
std::cin >> command;
Run Code Online (Sandbox Code Playgroud)
更换它使它明显更快:
char command[5];
cin.ignore();
cin.read(command, 5);
Run Code Online (Sandbox Code Playgroud)
重写使用scanf的所有内容使其更快
char command;
scanf("get_%c", &command);
Run Code Online (Sandbox Code Playgroud)
总而言之,我把读取输入的时间减少了大约1/3.
我想知道这些不同方法之间的性能存在这样的差异.另外,我想知道为什么使用gprof没有强调我在I/O上花费的时间,而是似乎指责我的算法.
这些例程存在很大差异,因为控制台输入速度几乎从不重要。
在它的地方(Unix shell),代码是用 C 编写的,直接从标准输入设备读取,并且效率很高。