Soci (Soczó Zsolt) szakmai blogja

2006.07.28.

Az inline optimalizálás szivatásai

Filed under: .NET,Szakmai élet — Soczó Zsolt @ 20:32

Érdekes esetbe ütköztem.

private static string SettingName()
{
  StackTrace st = new StackTrace();
  StackFrame sf = st.GetFrame(2);
  return sf.GetMethod().Name.Substring(4);
}

private static object GetItemFromStore()
{
   return GetItemFromStore((PersistentSettingsKeys)Enum.Parse(
   typeof(PersistentSettingsKeys),
   SettingName()));
}

No, ami ebben érdekes, hogy a debug verzió simán lefut, a release viszont elszáll, mert a stack frame 1-el rövidebb! A Jitter inlineosítja a SettingName-et, így a reflection is eggyel elcsúszik. Ez nekem azért meglepő, mert az IL kódban még nincs inline-osítás (ok, az nem is egy managed compiler dolga), de ami meglepő, hogy a jitter inline látszik a reflectionön keresztül. A megoldás persze elég egyszerű,

[MethodImpl(MethodImplOptions.NoInlining)]

kell a SettingName elé.

 

(Ha valaki tudna segíteni hogyan lehet kódot szépen elhelyezni wordpressben kérdem segítsen.)

4 Comments

  1. code {
    font: 1.1em ‘Courier New’, Courier, Fixed;
    }

    helyett:
    code {
    font: 1.1em ‘Courier New’, Courier, Fixed;
    text-align: center;
    font-size: 9pt;
    }

    A 9pt helyett lehet 10, vagy nagyobb kell.

    Comment by Meister — 2006.07.31. @ 15:32

  2. Ja, s mindezt ebbe a fájlba:
    http://soci.hu/blog/wp-content/themes/default/style.css

    Aztán még fontos, hogy kijött a 2.0.4-es WP, érdemes frissíteni.

    Comment by Meister — 2006.07.31. @ 15:33

  3. Valamint segítehetek a blogod magyarításában is. :-)

    És emellett tudok segíteni mod_rewrite helyettesítésben is IIS6 alatt, ha érdekel, s akkor a cikkek URL-jéből kimaradhat az index.php/

    Comment by Meister — 2006.07.31. @ 15:36

  4. Amint lesz rá időm-szándékom érdekelni fog, köszi. A frissítést megcsináltam már tegnap.

    Comment by Soczó Zsolt — 2006.08.01. @ 10:53

RSS feed for comments on this post.

Sorry, the comment form is closed at this time.

Powered by WordPress