v8中的运行时函数

时间:2015-09-24 12:13:11

标签: javascript c++ v8 profiler

1)在v8,ic.cc中,我看到像RUNTIME_FUNCTION(Runtime_KeyedLoadIC_Miss)这样的函数。

我不明白它们是如何被引用的。是否与TailCallRuntime有一些联系(Runtime :: kKeyedLoadIC_Miss,arg_count,1);来自ic-ia32.cc?

2)Runtime_KeyedLoadIC_Miss和Runtime_LoadIC_Miss有什么区别?

3)我可以使用一些c ++ profiler来分析这些运行时函数吗?我想看看这些运行时函数的子集花了多少时间。

1 个答案:

答案 0 :(得分:0)

在C ++中,您应该可以调用这样的运行时函数 List<Location> joinedList = dbList.Concat(guiList) // put both into the same box .GroupBy(l => l.Name) .Select(locGrp => new Location { Name = locGrp.Key, Items = locGrp .SelectMany(l => l.Items) // select all items of this group .GroupBy(i => i.Id) // group by item-id .Select(g => g.First()) // removes duplicates .ToList() // create list }).ToList();

在JavaScript中,您可以使用--allow_natives_syntax运行d8并使用%调用运行时函数: __RT_impl_Runtime_StringCharCodeAtRT(args, isolate)