使用火焰图(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......

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......

github的star项目管理

1. 介绍

作为一名开源爱好者,平时关注了不少在github上的项目。但是很坑爹的是,github没有推出相关功能来方便star项目的管理。事实上这个需求还是蛮多的。不过幸运的是,我们有第三方的工具可以使用。今天就推荐个工具astral

2. 使用介绍

进入首页,点击注册,并且在github上授权。然后就可以方便的使用了。

Goggle Protobuf序列化工具使用

1.介绍

最近在工作的时候涉及到需要对结构化对象进行序列化的工作,在做了一番调研之后,有很多比JAVA自带的序列化工具要好很多的工具。其中使用最广泛,先在用的比较多的工具就是这个protobuf。

JAVA序列化工具对比:

几种 Java 序列化方案的性能比较

protobuf是由Google开发的一套对数据结构进行序列化的方法,可用做通信协议,数据存储格式,等等。其特点是不限语言、不限平台、扩展性强,就像XML一样。与XML相比,protobuf有以下特点:

操作更简单

序列化后生成的代码体积更小

解析速度更快

缺点:序列化后的是二进制代码(其实也不算缺点......

IDEA中使用Git和Github

1. 前言

在Jetbrains系列的产品中,以下方法基本都是差不多的。下面我们以IDEA为例,来看看如何在IDEA中使用Git到Github上托管代码,或者下载代码。在一次因为硬盘挂了,丢了部分项目代码之后,我意识到时刻同步自己代码的重要性。

2. IDEA中使用Git把代码托管到Github

首先确保你已经安装了Git.Git官网下载

这里首先要说一下git工作的原理。首先在你的电脑上有个本地仓库,这个本地仓库就是你本地一个目录。还有个是远程仓库,也就是github上的托管仓库。他们互相是对应起来的。当你要把本地的代码同步到远程仓库一定会经历三个过程:

Add(先放......