2015-09-24 85 views
0

1)在v8中,ic.cc中,我看到像RUNTIME_FUNCTION(Runtime_KeyedLoadIC_Miss)這樣的函數。v8中的運行時函數

我不明白他們是如何被調用的。是否有與TailCallRuntime(運行時:: kKeyedLoadIC_Miss,arg_count,1)的一些連接;來自ic-ia32.cc?

2)Runtime_KeyedLoadIC_Miss和Runtime_LoadIC_Miss有什麼區別?

3)我可以使用一些C++分析器來分析這些運行時功能嗎?我想看看在這些運行時功能的子集上花了多少時間。

+0

3)我見2種可能的解決方案:a。使用RAII計時器(v8甚至讓他們在某處,但我現在很難找到它,或者你可以實現自己)。灣[quote from mrale.ph]>然後你最好的選擇是基於硬件計數器的工具,例如V8支持的Linux perf(參見v8/tools/ll_prof.py --help瞭解更多細節) –

回答

0

在C++中,你應該能夠調用運行時函數像這樣 __RT_impl_Runtime_StringCharCodeAtRT(args, isolate)

在JavaScript中,你可以用--allow_natives_syntax運行D8並調用運行時函數用%: var code = %_StringCharCodeAt(string, k);