使用git进行项目Merge的通常步骤

下面以计划从dev分支合并修改到master分支为例。

git checkout dev (首先切换到dev分支)

git pull (获取最新dev分支代码)

git checkout master (切换到master分支,准备merge)

git pull (可再次强制刷新获取最新master分支代码)

git merge dev (将dev分支合并到当前checkout的master分支)

git mergetool (或其他工具用于冲突处理)

git commit (提交master分支)

git push (将本地提交到master分支修改推送到远程服务器)

JVM 线上常用调试指令

  1. jstat 命令 – 查看堆内存各部分的使用量,以及加载类的数量

例如: jstat -gccapacity 7

输出如下:

NGCMN NGCMX NGC S0C S1C EC OGCMN OGCMX OGC OC MCMN MCMX MC CCSMN CCSMX CCSC YGC FGC
171008.0 2732032.0 2398208.0 16896.0 36352.0 2162688.0 343040.0 5464064.0 426496.0 426496.0 0.0 1126400.0 87680.0 0.0 1048576.0 10112.0 20 3

  • NGCMN:新生代最小容量
  • NGCMX:新生代最大容量
  • NGC:当前新生代容量
  • S0C:第一个幸存区大小
  • S1C:第二个幸存区的大小
  • EC:伊甸园区的大小
  • OGCMN:老年代最小容量
  • OGCMX:老年代最大容量
  • OGC:当前老年代大小
  • OC:当前老年代大小
  • MCMN:最小元数据容量
  • MCMX:最大元数据容量
  • MC:当前元数据空间大小
  • CCSMN:最小压缩类空间大小
  • CCSMX:最大压缩类空间大小
  • CCSC:当前压缩类空间大小
  • YGC:年轻代gc次数
  • FGC:老年代GC次数

2. jstack 找出最耗CPU的线程并定位代码

例子: top -Hp 7

输出如下:

得到最耗CPU的线程 71。然后运行命令:

printf “%x\n” 71

输出71的十六进制值为:41

运行命令:

jstack 7

查找输出:(包含字符串 nid=0x41)

输出如下:

此即为有问题的代码

Keras 安装与配置

1. 安装Tensorflow

pip install tensorflow

2. 安装Keras

pip install keras

3. 校验

from keras import models
from keras import layers

network = models.Sequential()
network.add(layers.Dense(512, activation='relu', input_shape=(28 * 28,)))
network.add(layers.Dense(10, activation='softmax'))

print(network)