平时在 Git 的使用过程中,遇到了好些场景需要把多个 Commit 合并成一个 Commit。经过在网上一通搜索,大家也是仁者见仁,智者见智。在本文中总结了几种常见场景,如果大家还遇到过其他的场景,也欢迎留言讨论。
开发人员常用的国内镜像仓库
本文如果对你有帮助请帮忙Star一下,以帮助更多的人。
由于众所周知的原因,中国的开发者在下载各种依赖的时候速度都比较慢。因此部分有实力的高校、公司在国内搭建了方便开发者的各种镜像仓库,并且几乎都是和国外的源定时同步的。本仓库主要收集方便中国开发者提速的源,以及配置的方式。
下面的操作方式在不同的系统可能会有细微的差别,欢迎大家补充和纠正。
加速 Hyperledger Fabric 的 Docker 镜像构建过程
Hyperledger Fabric 从v2.0
开始,全面将docker基础镜像替换成了体积更小、潜在安全风险更少、更加轻量的Alpine Linux
,从而使得make docker
出来的各种镜像的体积几乎都缩小为原来的一半,确实能够节省更多的硬盘空间。但是,由于众所周知的原因,对于生在红旗下,长在新中国的程序员们,第一次在Fabric项目下构建docker镜像时,依然是奇慢无比,屡次超时。
那么这个问题怎么解决呢?
分析速度的瓶颈
首先通过分析速度慢的原因,找出可以优化的点。通过分析make docker
命令,大概过程是这样的:首先是docker会从docker registry pull Alpine作为基础镜像,然后使用apk add --no-cache xxx
安装一些软件,最后通过make命令build出Peer、Order以及其他的tools的二进制包。到这里相信国内的各种奇人义士已经磨刀霍霍,迫不及待的开始替换各种国内的mirror了。
JVM 执行 Java 程序时的内存区域划分
在学习 Java 虚拟机(后面简称:JVM
)中的垃圾回收机制(GC)之前,先需要了解 在 JVM 中的 Java 程序(class 文件)加载到内存之后到底是怎么存的。在阅读了 JVM规范和周志明的《深入理解Java虚拟机(第2版)》之后,总结一下JVM中的内存划分以及各个区域的作用。