What’s the difference between `Commit hash`, `Parent Hash` and `Tree hash` in git?

Parent hashes$ git log --grap* commit c06c4c912dbd9ee377d14ec8ebe2847cf1a3ec7|\ Merge: 79e6924 311376| | Author: linjie <linjielig@gmail.com>| | Date: Mon Mar 14 16:02:09 2016 +080| | | commit| | | Merge branch 'dev| | * commit 31137606f85d8960fa1640d0881682a081ffa9d| | Author: linjie <linjielig@gmail.com>| | Date: Mon Mar 14 16:01:26 2016 +080| | | commit| * | comm... Read More

引用计数 vs GC

内存管理问题内存管理是编程过程中的一个经典问题,早期在 C 语言时代,几乎都靠 malloc/free 手动管理内存。随着各个平台的发展,到现在被广泛采用的主要有两个方法引用计数 (ARC,Automatic Reference CountingGC (Garbage Collection管理方法 ARC/G因为 Java 的流行,GC 被广泛的认知。GC 简单的说是定期查找不再使用的对象,释放对象占用的内存。基于 GC,申请的对象不需要手动释放,只需要确认对象在不再需要时,不再被其他对象引用。引用计数早期主要用于底层系统,比如文件系统的 inode 管理,后来 C++ 的 boost 库实现了一套完整的 ARC,目前流行的系统还有 Object C 也是采用的 ARC。ARC 的特点是,一个对象被引用时,引用计数增加 1,引用对象释放时,引用计数减少 1,如果引用计数为 0,释放... Read More