Linux下检查内存泄漏、系统性能的系列工具--s(精选五篇)

时间:2019-05-12 20:35:24下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《Linux下检查内存泄漏、系统性能的系列工具--s》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《Linux下检查内存泄漏、系统性能的系列工具--s》。

第一篇:Linux下检查内存泄漏、系统性能的系列工具--s

Linux下检查内存泄漏、系统性能的系列工具

Pub Date:2008-02-16 10:45:34 Author: moon Click:1641、定位内存泄漏问题

在我先前的博客文章中我介绍了如何在Windows.NET环境下如何定位内存泄漏问题,今天我就来介绍一个在Linux下定位此类问题的工具Valgrind和Callgrind,以及基于 Callgrind分析结果的GUI分析工具KCachegrind。Callgrind和KCachegrind在后面的专题讲。

首先介绍Valgrind,网址是:

Valgrind的Memcheck使用举例:

假定你当前的程序,myprog arg1 arg2

若使用Memcheck,命令如下:

valgrind--leak-check=yes myprog arg1 arg2

Memcheck是Valgrind的缺省工具。--leak-check选项将打开内存泄漏的详细检测器。

如果说你的内存泄漏错误代码,即myprog如下所示:

(1)#include

(2)

(3)void f(void)

(4){

(5)int* x = malloc(10 * sizeof(int));

(6)x[10] = 0;// problem 1: heap block overrun

(7)} // problem 2: memory leak--x not freed

(8)

(9)int main(void)

(10){

(11)f();

(12)return 0;

(13)}

运行过程中,问题1的错误指示消息将会显示出来,主要是内存越界

==19182== Invalid write of size 4

==19182== at 0x804838F: f(example.c:6)

==19182== by 0x80483AB: main(example.c:11)

==19182== Address 0x1BA45050 is 0 bytes after a block of size 40 alloc'd

==19182== at 0x1B8FF5CD: malloc(vg_replace_malloc.c:130)

==19182== by 0x8048385: f(example.c:5)

==19182== by 0x80483AB: main(example.c:11)

对于问题2,内存泄漏的消息如下所示:

==19182== 40 bytes in 1 blocks are definitely lost in loss record 1 of 1

==19182== at 0x1B8FF5CD: malloc(vg_replace_malloc.c:130)

==19182== by 0x8048385: f(a.c:5)

==19182== by 0x80483AB: main(a.c:11)

怎么样?这里只是一个非常简单的例子,你不妨可以一试。

2、系统性能瓶颈的分析工具

这一节我们主要讲两个关联在一起的系统性能瓶颈的分析工具Callgrind和KCachegrind。这两个工具的主页是:

但文中的参数不对,你可以从Novel的FTP镜像服务器列表中灵活选择:

我使用的服务器参数是:mirrors.kernel.org,路径是/suse/i386/9.2

然后你在Yast中搜索kdesdk3-profile,安装即可。

或者你可以从Novell对Suse9.2的近期KDE应用的列表中下载RPM自行安装也可以

看 到kdesdk3-profile就是我们要找的,其描述如下:This package contains KCachegrind and the needed Calltree skin for Valgrind.You can profile your application with Valgrind using Calltree skin and display the result in KCachegrind to easily find bottlenecks.直接下载地址是:ftp://ftp.suse.com/pub/suse/x86_64/supplementary/KDE/update_for_9.2/applications/.link/kdesdk3-profile.rpm

如果你自行手动编译安装,请参考:http://kcachegrind.sourceforge.net/cgi-bin/show.cgi/KcacheGrindInstallation

安装完后,下面我就来讲讲如何使用这两个工具:

首先用Callgrind来加载我的应用程序myprog, 命令是callgrind myprog,系统运行完后,或者自己使用Ctrl+C强制停止后,系统会生成一个文件,格式如下:callgrind.out.pid

Callgrind还用很多复杂的应用,可以参见:http://kcachegrind.sourceforge.net/cgi-bin/show.cgi/KcacheGrindUsage,这里不再详述。

下面介绍一下KCachegrind对输出的数据文件的分析图,下面是一个参考图,该图中包含三个子视图,Cost Type View, Call Graph View and Callee Map View。

在Callee Map View中,你能看到每一个函数的开销百分比包括Inclusive,即涵带子函数的总开销和Self,函数自己的开销,另外每一个函数的调用次数也列写在上面。

在Cost Type View中,每一个函数通过调用关系以模块的形式表现出来,往往在这里,通过显示的模块大小,并且结合Callee Map View中的函数Self开销,可以发现系统中的瓶颈函数。这点非常实用。

最后一个Call Graph View可以分析出函数的调用关系和流程,这是一个非常好的辅助工具,帮助你快速理解系统的工作流Work Flow。

第二篇:如何检查制冷剂泄漏维护空调系统制冷功能

如何检查制冷剂泄漏维护空调系统制冷功能

空调系统已逐渐成为轿车的标准设备。现有汽车使用的空调器种类较多,其结构大同小异。维护间隔一般应为一年一次或视需进行。在使用中如发现其制冷效果不佳时,应进行检查,故障一般多为制冷剂泄漏所致。可以通过以下步骤进行检查修理。

1.查找泄漏部位

目前车辆上使用的空调系统一般为单冷开启式,制冷剂多采用氟里昂(R12或氟里昂的替代产品134a)。在使用中,制冷剂易从各连接接头、油封处泄漏,制冷剂泄漏将会导致制冷效果差或不制冷等现象。

(1)检查漏油痕迹。在空调制冷循环系统中,冷却油是用来润滑密封轴承以及压缩机内其他运动部件的,少量的润滑油将会与制冷剂一起进入制冷循环系统中。如果制冷循环系统发生泄漏,泄漏处就会出现油渍,所以在检查中,发现管路及接头处有油渍,就可以确定该处有泄漏故障,应进行修理。

(2)观察检视窗,判定制冷剂泄漏情况。起动发动机(约1000r/min),打开制冷控制开关(A/C),将温度开关控制杆置于COLD(冷)位置,风扇开关开到最大的位置,可以从检查窗处观察到制冷剂的流动状态,来判断制冷循环系统中有无泄漏,制冷剂流动正常:制冷剂大体上透明,此时出风口的风是冷的。制冷系统的状态正常。制冷剂不足:制冷剂不足时,就会经常看到气泡流动,制冷剂呈乳白色,这时制冷效果不佳。

没有制冷剂:如果制冷系统严重泄漏,观察玻璃窗内就什么也看不到,此时空调系统不会制冷。富康轿车的储液罐上有A、B两个检视窗。检视窗A可以判断储液罐中干燥剂的水分含量是否饱和。若呈蓝色,表示正常;若呈红色,表示水分已呈饱和状态。应缓慢的排尽空调系统中的制冷剂,更换储液罐中的干燥剂,然后重新加注制冷剂。B检视窗的作用和前面介绍的内容相同,主要用于观察制冷剂的情况。

在检查时,所有连接部位或冷凝器表面一旦发现油渍,一般都说明此处有制冷剂泄漏。发现有泄漏现象时,应及时进行排除泄漏故障,补充制冷剂和润滑油,以防泄漏润滑油,损坏空调系统。

2.检查空调系统的工作情况

检查时将汽车停放在通风良好的场地上,保持发动机中等转速,将空调机风速开到最大挡,使车内空气内循环。

(1)从各部的温度判断空调状态。用手触摸空调系统及各部件,检查表面温度。正常情况下,低压管路呈低温状态,高压管路呈高温状态。

高压管路:压缩机出口冷凝器储液罐膨胀阀进口处。这些部件应该先暖后热,手摸时应特别小心,避免被烫伤。如果在其中某一点发现有特别热的部位,则说明此处有问题,散热不好。如果某一点特别凉或结霜,也说明此处有问题,可能有堵塞。干燥储液器进出口之间若有明显温差,说明此处有堵塞。

低压管路:膨胀阀出口蒸发器压缩机进口,这些表面应该由凉到冷,但膨胀阀处不应发生霜冻现象。

压缩机高低侧之间应该有明显的温差,若没有明显温差,则说明空调系统内没有制冷剂,系统有明显的泄漏。

(2)清理空调装置上的杂物。检查蒸发器通道及冷凝器表面,以及冷凝器与发动机水箱之间(停机检查)是否有杂物、污泥,要注意清理,仔细清洗。冷凝器可用毛刷轻轻刷洗,注意不能用蒸气冲洗。

(3)检查调整空调皮带。检查皮带松紧度是否适宜、表面是否完好(与发动机皮带检查调整相同)。以上检查如果发现异常时,应进行修理。

第三篇:Linux系统下的压片转换工具Mencoder应用[最终版]

首先,确定你的系统内码是中文编码,如GB2312,GBK。如果不清楚,请在终端下输入locale查看,不是就修改。这里,我提供在Suse下的修改方法:启动Yast2控制中心,打开“系统”——>“/etc/sysconfig编辑器”,展开“System Environment Language“项,把你面以RC打头的项的值全改成GB2312,完成后还要修改/etc/fstab文件,将Windows分区的参数修改成这样:/dev/hdb1 /windows/C vfat defaults,iocharset=gb2312,codepage=936 0 0

重启系统,接着再进行下列操作:

1.xmms

在字体设置中把“选项”和“主窗口”中字体设为一个中文字体,编码设为一个中文编码,并在最后加上“,fixed,*”,如“-zyec-simsun-medium-r-normal-*-12-*-*-*-c-*-gbk,fixed,*”,同时勾上“使用字体集”和“使用X字体”,点击确定,完成。

2.amaroK

设置——配置amaroK,把“ID3v1”和“shoutcast元数据”选上,并把编码改为GB2312,完成。

3.kaffeine

修改~/.kde/share/config下的kaffeinerc文件,把Alternate Encoding Name=UTF-8改为Alternate Encoding Name=GB2312,保存,完成。

4.RhythmBox

在gnome-cn上看到以gstreamer0.8.8为后台程序的RhythmBox的ID3乱码问题已得到解决,不过以xine-lib为后台就没这么幸运了,你需要下载一个补丁重新编译RhythmBox,这是补丁的下载地址:http://61.153.200.30/lucida/linux-patch/files/rhythmbox-0.8.4-cjk.diff

5.Juk

本身不支持中文ID3V1,必须打补丁重新编译,这是补丁的下载地址:http://61.153.200.30/lucida/linux-patch/files/juk-2.0-cjk.diff

6.noatun

同样需要打补丁,不过不是重新编译noatun,需要重新编译的是KDEMultiMedia。这是补丁的下载地址:http://61.153.200.30/lucida/linux-patch/files/k-mp3meta.diff

第四篇:黑马程序员C语言教程:linux系统下好用的文件恢复工具

Linux系统下好用的文件恢复工具

不同于windows,在Linux下我们常常借助命令操作整个文件系统。而删除数据是使用过程中出现较为频繁的操作。但命令rm删除掉的文件不像我们熟悉的windows躺在回收站中,轻轻一拉就回来。因此在操作过程中需要大家对Linux系统命令及文件存储特性有所了解。掌握其基本原理后,再借助工具完成数据恢复就不那么困难了。

许多同学习惯于Windows系统操作电脑的方式,使用鼠标配合图形界面完成操作。不得不承认这种方式十分简洁,易于学习和操作。这也是很多人初学Linux系统不习惯的重要原因之一。

Linux系统秉持Unix操作系统的作风,受时代潮流的影响也加入了图形操作系统的方法,同时保留了使用命令操系统的特性。因此,要想彻底掌握Linux系统的操作,必须要熟练使用常用的系统命令。像创建文件的touch命令,复制文件的cp命令,查看目录的ls命令以及查看文件内容的cat命令,既能挪动文件位置又能修改文件名的mv命令,以及删除文件的rm命令等都是Linux入门必须熟练掌握的系统操作命令。下面介绍两款实用的,借助字符终端,恢复文件的工具。testdisk和photorec。

testdisk的使用 testdisk简介

testdisk 是分区表恢复、raid 恢复、分区恢复的开源免费工具。它可以解决一些因为分区的原因而造成数据无法访问的问题。可以帮助你恢复丢失的分区,让磁盘重新变得可以启动,整理分区表,恢复主引导记录,恢复引导扇区以及文件系统表,testdisk支持如下文件系统:FAT12/FAT16/FAT32/NTFS/ext2/ext3/ext4。

testdisk 支持的功能: 修复分区表, 恢复已删除分区,用 FAT32 备份表恢复启动扇区,重建 FAT12/FAT16/FAT32 启动扇区,修复 FAT 表,重建 NTFS 启动扇区,用备份表恢复 NTFS 启动扇区,用 mft 镜像表修复 mft 表,查找 ext2/ext3 备份的 superblock,从 FAT,NTFS 及ext2文件系统恢复删除文件,从已删除的 FAT,NTFS 及 ext2/ext3 分区复制文件。

使用步骤

首先安装

#apt-get install testdisk 无法在线安装的用户可以在http://www.xiexiebang.com/wiki/TestDisk_Download 下载源代码编译安装。但需要注意,下载安装 testdisk 之前要安装几个辅助软件包 libjpeg8,libncursesw5,libuuid1,zlib1g。

启动testdisk #testdisk testdisk 启动后的工作界面首先要指定恢复操作过程中欲创建的的 log 文件(testdisk.log)。见下图。

[Create]新建一个log [Append]在现有log上追加 [No Log]不使用log 选择了 log 文件的记录方式后,testdisk会显示处于连接状态的分区设备。选择要恢复的分区设备,选择[Proceed]继续。见下图。

在列出的磁盘设备中,选择要恢复的分区,然后选择磁盘分区的种类。一般选择[Intel] Intel/PC partition即可。如果是 GPT 分区,应选择[EFI GPT]。对于ext4 文件系统来说应选择 [None ] Non partitioned media。但,通常选择 [Intel] Intel/PC partition 也可以正确识别,只是分析硬盘时间较长。见下图。

在接下来的的画面中选择[Analyse],对分区进行分析。见下图。

而后选择[Quick Search]进行快速检查。见下图。

选择[Continue]继续。

接下来会显示当前分区状态。这是testdisk分析的当前分区表的分区结果,我们选择可以[Deep Search]进行一次深入检测。

耐心等待检测完成。下图的20%表示检测进度。完成会提示[Continue]选项,选择继续。

检测完成界面如下图所示:

在此界面下,根据下方提示,按“P”按键,可列出分区上的文件。见下图。

下图,红色文件名称即为已被删除的文件,选择你要恢复的文件后,按“c”键。

testdisk会询问你要复制到哪个目录中去,选择你要保存的目标位置。

选好保存目标位置后,再次按“c”键。可看到如下绿色提示:Copy done!1 ok, 0 failed

可在设定的恢复文件存储目录下查看到恢复回来的文件。

按“q”键回退上一步,直至退出testdisk工具。

photorec的使用 photorec简介

photorec 是一款用于恢复硬盘、光盘中丢失的视频、文档、压缩包等文件,或从数码相机存储卡中恢复丢失图片的数据恢复软件(软件命名为 photo recovery的缩写)。photorec 忽略文件系统,能直接从介质底层恢复数据,因此,在介质的文件系统严重破坏或被重新格式化后,它也能进行数据恢复。出于安全考虑, photorec 以只读方式来访问您要恢复数据所在的磁盘或存储卡介质。

提示:一旦发现丢失或意外删除了某个图片、文件,请不要继续往该存储设备或磁盘保存新文件,否则您可能会覆盖原来的数据。这意味着在使用 photorec 时,千万不要将恢复的文件写入到原数据所存储的同一分区。

使用步骤

软件安装

photorec 无需格外安装,testdisk安装好后 photorec 可直接使用。

启动photorec #photorec 启动成功会显示当前已连接磁盘分区,选择准备恢复的文件所在分区,然后选择 [Proceed] 选项继续下一步。见下图。

接下来,选择欲恢复的文件所在磁盘分区格式。如FAT32。下图下方[File Opt]中有可供恢复的文件种类。

选择[File Opt]选项进入后可以看到photorec支持恢复的文件种类。默认是全部选中的,可以根据需要按“s”键取消全部勾选,然后移动光标到想要恢复的文件类型,使用“空格”键来选中指定类型。按“b”按键可以保存选择。如下图所示。

如没有特殊设置可以选择[Quit]选项退出,从上一级页面选择[Search]选项。进入如下页面。

选择好分区文件系统类型后,按Enter键进入如下页面。设定要分析的磁盘空间区域,可整个分区搜索[Whole],也可只搜索自由空间[Free]。如下图。

设定恢复成功后导出的文件存储目录位置。如:/home/itcast/my_recover。

存储目录选定好以后,按“Y”键即可进入数据恢复页面。开始数据恢复。如下图。

恢复完成后photorec会提示恢复的文件数,及存储位置。选择[Quit]退出 photorec。

被恢复的文件被保存在指定目录下,photorec会在其内部创建一个recup_dir.1目录,将恢复的文件保存在该目录下。

在recup_dir.1目录下,以字母数字组合为恢复文件重新命名。同时生成了一个report.xml文件。

对比

使用 testdisk 恢复文件,多用于硬盘上分区已经损坏的情形,该分区有原有数据纪录。但是如果损坏之后,重新再次做成了新分区的话,文件恢复的可能性比较小。

photorec 不仅针对硬盘、USB 设备、CD-ROM、SD 卡,而且还可以对其它存储设备进

行应用。因此大多数常用的文件如果被误操作的话,均可利用其来进行恢复。只不过它的初衷是针对照片而制作的,从该软件的命名可看出端倪。

下载Linux下检查内存泄漏、系统性能的系列工具--s(精选五篇)word格式文档
下载Linux下检查内存泄漏、系统性能的系列工具--s(精选五篇).doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐