对于做应用级别(相对内核开发)的开发,如果只想快速找到代码性能瓶颈而对OProfile的工作原理不感兴趣,只看该示例应该就足够了。
假如我们的代码文件是/home/leo/oprofile_test/main.cpp,内容是:
#include <stdio.h>
#include <unistd.h>
#include <string.h>
class FileOp
{
public:
FileOp(char *file)
{
strcpy(m_fileName, file);
m_buff = new char[1024];
memset(m_buff, 0, 1024);
}
~FileOp()
{
delete []m_buff;
m_buff = NULL;
}
void DoWork()
{
FILE *fp = fopen(m_fileName, "r");
if(!fp)
{
return;
}
int count = 0;
int i = 0;
while(!feof(fp))
{
fgets(m_buff, 1023, fp);
count = strlen(m_buff);
usleep(100);
fprintf(stderr, "The %ld has %ld characters!\n", ++i, count);
}
fclose(fp);
}
private:
char m_fileName[1024];
char *m_buff;
};
int main(int argc, char **argv)
{
if(argc != 2)
{
return -1;
}