第一次阅读v8的代码,由于文档缺乏,读起来很累,快速浏览了几个文件,仍然没有什么概念。后来更改了阅读习惯,很快就对垃圾收集一块有了初步的了解。
首先学习了相应的理论,庆幸自己多年前买了《垃圾收集》一书,并一直压箱底,这回终于派上用场,认真学习了mark compacting和Cheney’s algorithm(切尼算法——经典节点复制算法),没有这一块的学习,想光凭阅读代码来理解实现对我来说几乎是不可能的。
然后就是改变阅读代码习惯。以前就是逐行扫描过来;现在则记录下不懂的地方,然后在告一段落之后再去学习。在Emacs的帮助下,这一行为容易到极点,只需创建一个orgmode任务并链接到相应代码行即可,整个过程只需要几秒钟。在解决了三四个这样的任务之后,开始对v8的垃圾收集实现有了一点概念。
为了要看v8?有什么需求的人会看v8?
打错了,是:为什么要看v8。不是:为了要看v8.
工作需要,呵呵。看看v8在arm上的是否有进一步优化的空间,或者说有哪些性能瓶颈。