public static void GetInheritFieldUsingIC(DObject obj, int fieldId, ref DValue v, int mapId, int fieldIndex, int inheritObjectCacheIndex) { #if __STAT__PD if (mdr.Runtime.Instance.Configuration.ProfileStats) { mdr.Runtime.Instance.Counters.GetCounter("Inh IC calls").Count++; } #endif if (mapId == obj.MapId) { DObject patentObj = JSRuntime._inheritPropertyObjectCache[inheritObjectCacheIndex]; if (patentObj != null) { v = patentObj.Fields[fieldIndex]; #if __STAT__PD if (mdr.Runtime.Instance.Configuration.ProfileStats) { mdr.Runtime.Instance.Counters.GetCounter("Inh IC hits").Count++; mdr.Runtime.Instance.Counters.GetCounter("Inh IC hit oindex_" + inheritObjectCacheIndex).Count++; mdr.Runtime.Instance.Counters.GetCounter("Inh IC hit findex_" + fieldIndex).Count++; } #endif } } else { obj.GetPropertyDescriptorByFieldId(fieldId).Get(obj, ref v); #if __STAT__PD if (mdr.Runtime.Instance.Configuration.ProfileStats) { mdr.Runtime.Instance.Counters.GetCounter("Inh IC misses").Count++; } #endif } }
public static void GetFieldUsingIC(DObject obj, int fieldId, ref DValue v, int mapId, int fieldIndex) { #if __STAT__PD if (mdr.Runtime.Instance.Configuration.ProfileStats) { mdr.Runtime.Instance.Counters.GetCounter("IC calls").Count++; } #endif if (mapId == obj.MapId) { v = obj.Fields[fieldIndex]; #if __STAT__PD if (mdr.Runtime.Instance.Configuration.ProfileStats) { mdr.Runtime.Instance.Counters.GetCounter("IC hit").Count++; mdr.Runtime.Instance.Counters.GetCounter("IC hit findex_" + fieldIndex).Count++; } #endif } else { obj.GetPropertyDescriptorByFieldId(fieldId).Get(obj, ref v); #if __STAT__PD if (mdr.Runtime.Instance.Configuration.ProfileStats) { mdr.Runtime.Instance.Counters.GetCounter("IC miss").Count++; } #endif } }
public static void UpdateMapProfileForWrite(DObject obj, mjr.CodeGen.Profiler profiler, int profileIndex, int fieldId, PropertyMap oldMap) { if (profiler != null) { if (obj.Map == oldMap) { PropertyDescriptor pd = obj.GetPropertyDescriptorByFieldId(fieldId); // obj.GetPropertyDescriptor // Trace.WriteLine("YYY"); profiler.GetOrAddMapNodeProfile(profileIndex).UpdateNodeProfile(oldMap, pd); } } }
public static void UpdateMapProfileForWrite(DObject obj, mjr.CodeGen.Profiler profiler, int profileIndex, int fieldId, PropertyMap oldMap) { if (profiler != null) { if (obj.Map == oldMap) { PropertyDescriptor pd = obj.GetPropertyDescriptorByFieldId(fieldId); // obj.GetPropertyDescriptor // Trace.WriteLine("YYY"); profiler.GetOrAddMapNodeProfile(profileIndex).UpdateNodeProfile(oldMap, pd); } } }
public static void GetInheritFieldUsingIC(DObject obj, int fieldId, ref DValue v, int mapId, int fieldIndex, int inheritObjectCacheIndex) { #if __STAT__PD if (mdr.Runtime.Instance.Configuration.ProfileStats) { mdr.Runtime.Instance.Counters.GetCounter("Inh IC calls").Count++; } #endif if (mapId == obj.MapId) { DObject patentObj = JSRuntime._inheritPropertyObjectCache[inheritObjectCacheIndex]; if (patentObj != null) { v = patentObj.Fields[fieldIndex]; #if __STAT__PD if (mdr.Runtime.Instance.Configuration.ProfileStats) { mdr.Runtime.Instance.Counters.GetCounter("Inh IC hits").Count++; mdr.Runtime.Instance.Counters.GetCounter("Inh IC hit oindex_" + inheritObjectCacheIndex).Count++; mdr.Runtime.Instance.Counters.GetCounter("Inh IC hit findex_" + fieldIndex).Count++; } #endif } } else { obj.GetPropertyDescriptorByFieldId(fieldId).Get(obj, ref v); #if __STAT__PD if (mdr.Runtime.Instance.Configuration.ProfileStats) { mdr.Runtime.Instance.Counters.GetCounter("Inh IC misses").Count++; } #endif } }
public static void GetFieldUsingIC(DObject obj, int fieldId, ref DValue v, int mapId, int fieldIndex) { #if __STAT__PD if (mdr.Runtime.Instance.Configuration.ProfileStats) { mdr.Runtime.Instance.Counters.GetCounter("IC calls").Count++; } #endif if (mapId == obj.MapId) { v = obj.Fields[fieldIndex]; #if __STAT__PD if (mdr.Runtime.Instance.Configuration.ProfileStats) { mdr.Runtime.Instance.Counters.GetCounter("IC hit").Count++; mdr.Runtime.Instance.Counters.GetCounter("IC hit findex_" + fieldIndex).Count++; } #endif } else { obj.GetPropertyDescriptorByFieldId(fieldId).Get(obj, ref v); #if __STAT__PD if (mdr.Runtime.Instance.Configuration.ProfileStats) { mdr.Runtime.Instance.Counters.GetCounter("IC miss").Count++; } #endif } }