首页 > 编程语言 >2-程序性能优化

2-程序性能优化

时间:2023-04-08 11:23:41浏览次数:51  
标签:func1 性能 gprof 程序 test new 优化 void

1、C++ 性能测试工具GPROF

http://sourceware.org/binutils/docs-2.17/gprof/index.html

http://blog.csdn.net/stanjiang2010/article/details/5655143

GPROF是GCC自带的性能测试工具,可以统计出各个函数的调用次数、时间、以及函数调用图。

使用GRPOF分为三个步骤 (1)编译时候打开编译开关,-pg (2)运行程序(程序一定要正常运行完毕才会生成性能报告) (3)运行性能测试工具来生成报告。

CSDN优化参考:https://blog.csdn.net/u013471946/article/details/43957423

1.编码:

这里编写一个示例代码,随后对其进行性能测试

//test_gprof.c
#include<stdio.h>

void new_func1(void);

void func1(void)
{
    printf("\n Inside func1 \n");
    int i = 0;
   
    for(;i<0xffffffff;i++);
    new_func1();
   
    return;
}

static void func2(void)
{
    printf("\n Inside func2 \n");
    int i = 0;
   
    for(;i<0xffffffaa;i++);
    return;
}

int main(void)
{
    printf("\n Inside main()\n");
    int i = 0;
   
    for(;i<0xffffff;i++);
    func1();
    func2();
   
    return 0;
}

 

//test_gprof_new.c
#include<stdio.h>
 
void new_func1(void)
{
    printf("\n Inside new_func1()\n");
    int i = 0;
 
    for(;i<0xffffffee;i++);
 
    return;
}

 

2.编译并执行

g++  -pg test_gprof.cpp test_gprof_new.cpp -o test_gprof

可以看到执行后会新生成一个gmon.out文件

 

3.运行性能测试工具

gprof test_gprof gmon.out

可以看到各种参数跃然于屏上

(1)flat profile,包括每个函数的调用次数,以及每个函数消耗的处理器时间

 

(2)call graph包括函数的调用关系,每个函数调用花费的时间

 

标签:func1,性能,gprof,程序,test,new,优化,void
From: https://www.cnblogs.com/cheng020406/p/17298197.html

相关文章

  • 腾讯出品小程序自动化测试框架【Minium】系列(七)测试框架的设计和开发
    前言整个框架的开发及调通是在3月27日晚上22点完成,如下:这篇文章真的是拖了太久了,久到我居然把代码部分完成后,彻底给忘了,这记性,真的是年纪大了!框架的设计开发1、框架搭建设计要素日志&测试步骤报告&失败截图配置文件&数据源设计公共函数&API封装测试数据&参数化、解耦......
  • 移动端技术:如何优化网站以适应不同设备?
    ​ 随着移动设备的普及,越来越多的用户使用手机和平板电脑来访问网站。因此,网站的移动端优化变得越来越重要。本文将介绍如何优化网站以适应不同设备。一、响应式设计响应式设计是一种能够自适应不同设备的网站设计方式。它可以根据用户的设备大小和屏幕分辨率来自动调整网站的......
  • 程序设计应用2023-04-08
    visualstudiocode里面可以安装docker插件newdevcontainer  db_index=true普通索引unique=true唯一索引classMeta:  indexes=[]  unique_together pythonmanage.pymakemigrations 现根据类生成迁移脚本pythonmanage.pymigrate 打脚本 ......
  • 顺序结构程序设计实验题目
    计算机实验思路(与上机模板代码不同,仅作参考)第一次实验题目第3章顺序结构程序设计1. 编一程序,从键盘上输入四门功课成绩,求总成绩、平均成绩并输出。#include<stdio.h>intmain(){ floata,b,c,d,total,average; printf("Pleaseenterfournum:"); scanf_s("%f......
  • Android性能优化
     在如今的移动互联网时代,移动设备的使用越来越普遍,而Android作为一个开放、免费的操作系统,更是占据了全球智能手机市场的绝大部分份额。然而,Android设备的性能问题也是使用者非常关心的问题,因此,Android性能优化也是开发者不得不重视的问题。Android应用的性能问题主要体现......
  • 系统资源不足会如何影响接口性能表现?
    现象同样TPS低、响应时间长,但这个接口走的路径不一样,你将看到在资源真不足时,只有增加相应节点的资源才能提升性能。不要轻易给出资源不足的结论。因为但凡有优化空间,都要尝试优化,而不是直接告诉领导加资源。给“增加资源”结论,须建立在有足够证据基础上1压力场景数据对查询商品接......
  • ReflectASM高性能反射Java库
    1.简介  在日常开发中,经常需要使用反射操作类中的属性或方法。ReflectASM是一个非常小的Java库,它提供高性能反射能力。  Github地址:https://github.com/EsotericSoftware/reflectasm2.官方性能报告3.用法ReflectASM仅可访问public属性和方法。pom引入依赖<de......
  • 最新中国福彩分析大数据分析大师拥有双色球数据展示微信小程序源码支持双色球数据分析
    demo软件园每日更新资源,请看到最后就能获取你想要的: 1.最新中国福彩分析大数据分析大师拥有双色球数据展示微信小程序源码支持双色球数据分析多个接口福彩大数据分析小程序,数据来自于中国福利彩票 拥有双色球数据展示 双色球数据分析多个接口 数据有每日奖金和往期记录......
  • sync.Pool:提高Go语言程序性能的关键一步
    1.简介本文将介绍Go语言中的sync.Pool并发原语,包括sync.Pool的基本使用方法、使用注意事项等的内容。能够更好得使用sync.Pool来减少对象的重复创建,最大限度实现对象的重复使用,减少程序GC的压力,以及提升程序的性能。2.问题引入2.1问题描述这里我们实现一个简单的JSON序......
  • 新浪博客营销经验分享,优化推广两不误
    以前做过一个人才网站,通过新浪博客来做过相关营销。所以今天分享一些新浪博客的营销经验。对于新浪博客,有着非常好的优势,因为它的权重,当你在新浪博客上发布文章(原创基础),基本都是秒收。搜索引擎对于新浪博客的响应是非常快的。新浪博客的营销如何做?1.建立博客账号当然现在新浪博客处......