1. 1、Solaris Dtrace

    DTrace是Sun Solaris内置的全面动态追踪工具,可供管理员和开发人员检查用户程序和操作系统自身的行为。您可利用DTrace浏览系统,以了解它的工作方式、追踪在软件的许多层面中存在的性能问题,或者探明异常行为的原因。在软件开发系统中使用该工具是安全的,且不必重启系统或应用程序。

    DTrace动态地修改操作系统内核和用户进程,以记录特别位置的数据,这称为probe(s)。probe就是位置或活动,DTrace可将其与请求绑定在一起,以执行一组活动,如记录堆栈追踪、时间戳或函数的实参。probe就像遍布于Solaris系统中各个感兴趣位置的可编程传感器。DTrace probe来自一组称为“provider”的内核模块,每个模块都执行某种特殊方法的来创建probe。

    DTrace包含一中称为“D”的脚本语言,它是专门为动态追踪而设计的。使用D语言,很容易编写动态启动probe、收集信息及处理信息的脚本。D脚本使用户可以方便地同其他人员共享知识和故障检修方法。Solaris 10中包含大量有用的D脚本,在Sun公司的BigAdmin 站点:sun.com/bigadmin/content/dtrace/和OpenSolaris项目站点:opensolaris.org/os/community/ dtrace/上可以找到更多脚本。

    跟踪工具大全_系统调用
  2. 2

    2、Linux Strace

    strace常用来跟踪进程执行时的系统调用和所接收的信号。 在Linux世界,进程不能直接访问硬件设备,当进程需要访问硬件设备(比如读取磁盘文件,接收网络数据等等)时,必须由用户态模式切换至内核态模式,通 过系统调用访问硬件设备。strace可以跟踪到一个进程产生的系统调用,包括参数,返回值,执行消耗的时间。

    跟踪工具大全_.net_02
  3. 3

    3、Btrace

    BTrace是一个开源项目,旨在为java提供安全可靠的动态跟踪分析工具。 Btrace基于动态字节码修改技术(Hotswap)来实现运行时java程序的跟踪和替换。Btrace的脚本是用纯java编写的,基于一套官方提供的annotation,使跟踪逻辑实现起来异常简单。

    跟踪工具大全_应用程序_03
  4. 4

    4、DotTrace

    DotTrace 是一个包含了可用于.NET应用程序的性能分析器(dotTrace Performance) 和内存分析器(dotTrace Memory)的套件。

    dotTrace Performance可帮助用户对各种.NET框架内的应用程序的性能瓶颈进行检测,能够帮助.Net开发者以最快的方式找到并移除性能上的瓶颈。 [1]

    dotTrace Memory 则能帮助用户发现内存泄露并能对基于.NET 4.0以上框架的应用程序进行内存占用优化。

    跟踪工具大全_应用程序_04
  5. 5

    5、Dynatrace

    dynatrace ajax 是一个详细的底层追踪工具,它不仅可以显示所有请求和文件在网络中传输的时间,还会记录浏览器render,CPU消耗、JS解析和运行情况等详细的信息,而这些也只是dynatrace ajax的冰山一角。

    jQuery、GWT、YUI、DoJo等兴起的框架让构建Web 2.0应用变得更加容易,糟糕的是,随之而来的,定位这些应用的问题也越来越难,尤其是与性能相关的时候。

    最让人头疼的浏览器依然是Internet Explorer – 企业级环境也一样。垃圾的IE诊断工具让开发和测试人员都十分头痛。Web 2.0/Ajax应用的挑战不仅是理解网络交互(有多少或何时一些资源被下载),我们也要理解这些效果的性能。问题将扩展到JavaScript、XmlHttpRequests对象、DOM操纵、框架、布局和绘制。dynaTrace Ajax的出现就是为了解决以上的所有问题,它致力于帮助人们了解到在现代的Ajax应用中哪些问题导致了性能瓶颈。

    跟踪工具大全_系统调用_05
  6. 6

    6、Oracle SQL trace

    当SQL语句出现性能问题时,我们可以用SQL_TRACE来跟踪SQL的执行情况,通过跟踪,我们可以了解一条SQL或者PL/SQL包的运行情况,SQL_TRACE命令会将SQL执行的整个过程输出到一个trace文件中,我们可以读这个trace 文件来了解在这个SQL执行过程中Oracle 都做了哪些操作。可以通过sql命令启动SQL_TRACE,或者在初始化参数里面。SQL>alter session set sql_trace=true;