浅析 V8-turboFan

一、前言

  • v8 是一种 JS 引擎的实现,它由Google开发,使用C++编写。

    v8 被设计用于提高网页浏览器内部 JavaScript 代码执行的性能。为了提高性能,v8 将会把 JS 代码转换为更高效的机器码,而非传统的使用解释器执行。因此 v8 引入了 JIT (Just-In-Time) 机制,该机制将会在运行时动态编译 JS 代码为机器码,以提高运行速度。

  • TurboFan是 v8 的优化编译器之一,它使用了 sea of nodes 这个编译器概念。

    sea of nodes 不是单纯的指某个图的结点,它是一种特殊中间表示的图。

    它的表示形式与一般的CFG/DFG不同,其具体内容请查阅上面的连接。

    TurboFan的相关源码位于v8/compiler文件夹下。

阅读更多...

CodeQL初入

一、简介

CodeQL 是一个语义代码分析引擎,它可以扫描发现代码库中的漏洞。使用 CodeQL,可以像对待数据一样查询代码。编写查询条件以查找漏洞的所有变体并处理,同时可以分享个人查询条件。

阅读更多...

下拉&编译 chromium&v8 代码

一、背景

  • 由于chromium的多线程、多进程机制较为复杂,因此调试起来较为麻烦,通过源代码层面打log来调试显得十分必要,而且源码级调试可以大幅度降低调试难度。

  • 同时,倘若需要某个特定版本的chromium时,委托他人代为编译也较为不便,

  • 因此,手动编译chromium是十分必要的。在这篇文章中,笔者将自己下拉代码&编译代码的步骤列入其中,仅供参考。

阅读更多...
  • Copyrights © 2020-2021 Kiprey
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~