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来分析这些运行时函数吗?我想看看这些运行时函数的子集花了多少时间。
答案 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)