示例#1
0
        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
            }
        }
示例#2
0
        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
            }
        }
示例#3
0
 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);
         }
     }
 }
示例#4
0
 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);
     }
   }
 }
示例#5
0
    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
      }
    }
示例#6
0
    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
      }
    }