【善用工具】程序性能分析Gperftools初探(libwind+pprof+Kcachegrind)

gperftools性能分析通过抽样方法完成,默认是1秒100个样本,so,一个样本是10毫秒,即时间单位是10毫秒. 之所以要在这里特别说明,是因为需要注意到:如果程序运行时间不到10ms,那么得到的结果可能会和开始执行的时候不同.0.系统信息sjc@sjc-pc:~/baidu/gperfto...

2018-07-05 20:43:57

阅读数:57

评论数:0

使用def文件简化dll导出

在C++中,我们可以通过 __declspec(dllexport) 将函数导出为Dll中供其它程序使用,例如:    _declspec(dllexport) int add(int a, int b);在这种方式下,如果调用该dll的是一个c++程序(同一个编译器的版本)是没有问题的。但是,如...

2018-05-12 11:20:29

阅读数:54

评论数:0

MySQL索引背后的数据结构及算法原理

下面是一位牛人写得关于数据库索引的精品之作,因为很好,不敢修饰,转载至此与博友共享。原文链接:MySQL索引背后的数据结构及算法原理本文以MySQL数据库为研究对象,讨论与数据库索引相关的一些话题。特别需要说明的是,MySQL支持诸多存储引擎,而各种存储引擎对索引的支持也各不相同,因此MySQL数...

2018-04-13 13:50:42

阅读数:46

评论数:1

glib scanner

Re: [gtk-list] Glib Lexical ScannerFrom: Tim Janik <timj gtk org>To: Gtk List <gtk-list redhat com>cc: Em...

2018-04-04 16:02:02

阅读数:41

评论数:0

cygwin跨平台移植 gcc+vc联合使用的方法和注意事项

前段时间做一个把linux代码移植到vc上的工程,选择cygwin环境,直接交叉编译通过。后来为了调试方便需要把源代码全部放到vc下编译,在网上搜索相关资料,发现在cygwin官方的FAQ中给出了具体的方法。下面我就里面的关键步骤做一个简单的解释:首先是官方的原文:   How do ...

2017-09-28 17:07:40

阅读数:180

评论数:0

Windows中使用CRT函数检查内存泄露和溢出

C++中可以使用new或malloc等函数分配内存,通常与delete和free配合使用,但是如果不小心遗忘而程序在持续new或malloc时就会造成程序所占用的内存越来越大,即为“内存泄露”。通常写数据的时候必须在程序开辟的空间中写,如果不小心写到了不是程序请求分配的地址中,就可能覆盖别的有效数...

2017-09-27 15:15:46

阅读数:146

评论数:0

vs2010 问题 >LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏

>LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏 问题说明:当安装VS2012之后,原来的.NET 4.0会被替换为.NET 4.5。卸载VS2012时,不会恢复.NET 4.0。 l 当VS2012安装后,VS2010的cvtres...

2017-09-01 10:06:10

阅读数:97

评论数:0

从零开始学C++之模板(三):缺省模板参数(借助标准模板容器实现Stack模板)、成员模板、关键字typename

一、缺省模板参数 回顾前面的文章,都是自己管理stack的内存,无论是链栈还是数组栈,能否借助标准模板容器管理呢?答案是肯定的,只需要多传一个模板参数即可,而且模板参数还可以是缺省的,如下: template > class Stack { … pr...

2017-08-31 10:13:31

阅读数:140

评论数:0

typedef和typename关键字

1、类型说明typedef 类型说明的格式为: typedef  类型 定义名; 类型说明只定义了一个数据类型的新名字而不是定义一种新的数据类型。定义名表示这个类型的新名字。 例如: 用下面语句定义整型数的新名字: typedef int SIGNED_INT; ...

2017-08-30 17:28:02

阅读数:89

评论数:0

yang模型理解

前言 继之前分享的几篇文章之后,这篇文章分享自己对于YANG模型的理解。 关于其他如何搭建环境以及编写app等等请阅读下前几篇文章。 一、Yang的来源 早在2003年,IETF成立了一个NETCONF工作组,提出一种基于XML的网络配置管理协议,也就是NETCONF(Netw...

2017-02-07 09:06:52

阅读数:12312

评论数:0

MapReduce的理解

1 什么是MapReduce?   Map本意可以理解为地图,映射(面向对象语言都有Map集合),这里我们可以理解为从现实世界获得或产生映射。Reduce本意是减少的意思,这里我们可以理解为归并前面Map产生的映射。   2 MapReduce的编程模型   按照googl...

2017-02-06 09:38:14

阅读数:323

评论数:0

R6034错误,C Runtime Error

这是我转的一篇非常全的帖子  能查到的解决方法都在里面有提及:  我是使用 stdafx.h加入这句 code #pragma comment(linker, "\"/manifestdependency:type='Win32' name='Microsof...

2017-02-04 16:20:11

阅读数:168

评论数:0

oProfile的安装与使用

0.引言 基于DPDK的发包工具的性能今天已经达到双向1900Wpps了,比昨天又高了200Wpps,正是得益于oProfile检测与调优的结果,而且今天还只是很简单的用了一下(类似于下面的示例),跟踪出对几个结构体字段的访问比较缓慢,于是对结构体字段进行了仔细的顺序调整与Cache对齐(之前急...

2016-04-26 17:02:14

阅读数:376

评论数:0

linux新定时器:timefd及相关操作函数

timerfd是Linux为用户程序提供的一个定时器接口。这个接口基于文件描述符,通过文件描述符的可读事件进行超时通知,所以能够被用于select/poll的应用场景。 一,相关操作函数 #include int timerfd_create(int clockid, int flags)...

2015-11-09 11:22:46

阅读数:246

评论数:0

眉目传情之匠心独运的kfifo

学不考儒,务掇精华;文不按古,匠心独运。Linux kernal 鬼斧神工,博大精深,让人叹为观止,拍手叫绝。然匠心独运的设计并非扑朔迷离、盘根错节,真正的匠心独运乃辞简理博、化繁为简,在简洁中昭显优雅和智慧,kfifo就是这样一种数据结构,它就是这样简约高效,匠心独运,妙不可言,下面就跟大家一起...

2015-09-22 14:35:08

阅读数:251

评论数:0

为什么需要内存屏障

来自一篇墙外的文章,要了解如何使用memory barrier,最好的方法是明白它为什么存在。CPU硬件设计为了提高指令的执行速度,增设了两个缓冲区(store buffer, invalidate queue)。这个两个缓冲区可以避免CPU在某些情况下进行不必要的等待,从而提高速度,但是这两个缓...

2015-09-22 14:34:00

阅读数:873

评论数:1

OO真经——关于面向对象的哲学体系及科学体系的探讨(中)

真经第六章——运作 Moving       “运动是绝对的——牛顿” 6.1、导言       在前五章中,我们从世界观的这话题开始,逐步引出了抽象、层次、继承和耦合。这些内容,形成了对象论中关于世界的结构体系。       然而,要想真正描述一个世界,仅有结构式不行的。开始...

2015-02-07 14:18:58

阅读数:388

评论数:0

OO真经——关于面向对象的哲学体系及科学体系的探讨(上)

目录 Catelog                        目录 Catelog                        序言 Perface                        真经第一章:世界 Waltanschauung            ...

2015-02-07 13:58:37

阅读数:370

评论数:0

程序设计中的计算复用(Computational Reuse)

从斐波那契数列说起 我想几乎每一个程序员对斐波那契(Fibonacci)数列都不会陌生,在很多教科书或文章中涉及到递归或计算复杂性的地方都会将计算斐波那契数列的程序作为经典示例。如果现在让你以最快的速度用C#写出一个计算斐波那契数列第n个数的函数(不考虑参数小于1或结果溢出等异常情况),我不...

2015-02-07 10:39:24

阅读数:348

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭