使用火焰图(FlameGraph)分析性能热点

1. 介绍

火焰图是一个可视化工具,可以将诸多性能检测相关的命令行工具的结果进行可视化展示,方便侦测性能热点。其支持将以下工具的采样结果进行可视化展示:

Linux: perf, eBPF, SystemTap, and ktap

Solaris, illumos, FreeBSD: DTrace

Mac OS X: DTrace and Instruments

Windows: Xperf.exe

本文以perf为例介绍(关于perf的用法可以参考perf examples如何在Linux上采集性能数据并且生成火焰图。

因为我们采集的是JAVA进程,perf......

mac开发环境配置(2017)

1. 概述

以前一直用的windows,后来公司发了mac之后,用了大半年,终于感受到mac系统作为程序员工作系统的优势。类UNIX环境、很多优秀的工具、强大的触摸板和手势让我外接显示器的时候,多窗口操作的效率得到大大提升。

这里简单对自己开发环境的配置做个介绍,分享给大家,主要从以下几方面来说明:

系统配置: 主要是为了关闭一些效果,减少散热;另外一些方便的配置可以提升效率

开发工具配置

以下是我的mac,用的2017款mac pro 带touch bar,平时外接2台4K显示器,P2715Q

jenv来管理多个版本的java

1. 安装

我们这里以mac系统为例说明安装和使用。如果Linux安装可以参考jenv官网

brew install jenv

# for bash

echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile

echo 'eval "$(jenv init -)"' >> ~/.bash_profile

# for zsh

echo 'export PATH="$HOME/.jenv/bin:$PATH&quo......

IDEA中自定义外部工具external tool

1. javap工具使用说明

我们会使用javap工具来反汇编class字节码文件,查看编译后的字节码命令。其用法如下:

2. 将javap工具集成到IDEA中

为了方便我们分析反汇编的内容,我们可以把该功能集成到IDEA中。打开IDEA的设置,选择external tools。然后创建两个外部工具,称为show byte code和compile java code,分别......

gradle安装使用

1. 介绍

有些开源项目用gradle来构建的,所以也稍微学习下怎么用吧。

2. 安装使用

到[gradle官方]下载,然后安装好设置下环境变量PATH和GRADLE_HOME

然后用gradle -version看看是否安装好了

3. 构建项目

这里假设我们需要构建的开源项目为hystrix。从github clone之后。我们打开其目录,发现有build.gradle文件(类似maven......