context(
上下文)
執行時環境
1.
概述
上下文(context):
即執行時環境
runtime(內建(
自定義)
的物件(
函式)) 每個
v8::context
含有乙個
global(
全域性)objecttemplate
物件context::scope:
表示進入
context 建立
(1)儲存頂層
i::context
到i::handlescopeimplementer
(2)設定頂層為當前
context 銷毀
:退出context:
恢復頂層
i::context
2.
執行時環境的建立
(v8.cc)
(1)logger::setup()
(2)cpuprofiler::setup()
(4)os::setup()
(5)heap::setup()
memoryallocator
記憶體分配器
static newspace new_space_;
static oldspace* old_pointer_space_;
static oldspace* old_data_space_;
static oldspace* code_space_;
static mapspace* map_space_;
static cellspace* cell_space_;
static largeobjectspace* lo_space_;
static heapstate gc_state;
static object* roots_[krootlistlength];//
內建物件(指標
)陣列---全部內建物件
(7)builtins::setup() :
內建函式
(跳轉到內建
code
物件的機器指令)
(8)top::initialize()
(9)stubcache::initialize()
(10)cpu::setup()
(11)oprofileagent::initialize()
3.codestub
物件(
用於訪問內建的
code物件)
(1)固定(fixed)codestub
centrystub
|centry code:
同時存放在
roots_[kcentrycoderootindex]
和|roots_[kcodestubsrootindex]
的numberdictionary
物件jsentrystub
|jsentry code:
同時存放在
roots_[kjsentrycoderootindex]和|
roots_[kcodestubsrootindex]
的numberdictionary
物件jsconstructentrystub
jsconstructentry code:
同時存放在
roots_[kjsconstructentrycoderootindex]
和roots_[kcodestubsrootindex]
的numberdictionary
物件(2)
其他stub
4.builtins
類
static object* builtins_;//
內建函式的
code
物件陣列
3類內建函式
:(1)c++
實現(2)
彙編實現
(3)彙編實現,用於
debug
執行時環境筆記
編譯原理與實踐 第七章 名詞 活動記錄 activation record 包括引數,狀態資訊,local data,臨時資料 stack frames 儲存在stack上的ar frame pointer 專門用於指向ar的暫存器 argument pointer ap 專門用於指向ar中引數部分...
ios中執行時學習筆記
1.什麼是執行時?1 執行時是一套純c語言的api 純c語言庫 2 編譯器最終都會將oc 轉化 為執行時 clang rewrite objc m 3 利用執行時,可以做很多底層的操作,比如 動態新增物件的成員變數和成員方法 動態交換兩個方法的實現 特別是交換系統自帶的方法 獲得某個類的所有成員方法...
C和指標 學習筆記 第18章 執行時環境
第一步驟是從你的編譯器獲得乙個組合語言 列表。1 測試程式 2 靜態變數和初始化 3 堆疊幀 乙個函式分成三個部分 函式序 函式體 函式跋。4 暫存器變數 5 外部識別符號的長度 6 判斷堆疊幀布局 執行時堆疊儲存了每個函式執行時所需要的資料,包括它的自動變數和返回位址。a.傳遞函式引數 b.函式序...