<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
   >
<channel>
    <title>XP - Development - Refactoring</title>
    <link>http://www.xp-dev.de/</link>
    <description>Tägliche Programmierarbeiten, Agile Entwicklung und kleine Tools in php5 und asp.net</description>
    <dc:language>en</dc:language>
    <generator>Serendipity 1.2.1 - http://www.s9y.org/</generator>
    <managingEditor>info@xp-dev.de</managingEditor>
<webMaster>info@xp-dev.de</webMaster>
<pubDate>Thu, 13 Mar 2008 21:35:09 GMT</pubDate>

    <image>
        <url>http://www.xp-dev.de/templates/default/img/s9y_banner_small.png</url>
        <title>RSS: XP - Development - Refactoring - Tägliche Programmierarbeiten, Agile Entwicklung und kleine Tools in php5 und asp.net</title>
        <link>http://www.xp-dev.de/</link>
        <width>100</width>
        <height>21</height>
    </image>

<item>
    <title>Resource Refactoring</title>
    <link>http://www.xp-dev.de/index.php?/archives/30-Resource-Refactoring.html</link>
            <category>Refactoring</category>
            <category>XP</category>
    
    <comments>http://www.xp-dev.de/index.php?/archives/30-Resource-Refactoring.html#comments</comments>
    <wfw:comment>http://www.xp-dev.de/wfwcomment.php?cid=30</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.xp-dev.de/rss.php?version=2.0&amp;type=comments&amp;cid=30</wfw:commentRss>
    

    <author>nospam@example.com (Jan Schubert)</author>
    <content:encoded>
    Wer in .net mit Resourcen arbeitet, wird sich über dieses Tool wahrhaftig freuen! Es erweitert das Context Menü im Visual Studio für Refactoring und ermöglicht ein schnelles auslagern von Strings in die Resourcen.&lt;br /&gt;
&lt;br /&gt;
Zu finden ist es unter &lt;a href=&quot;http://www.codeplex.com/&quot; target=&quot;blank&quot;&gt;Codeplex&lt;/a&gt; oder direkt unter &lt;a href=&quot;http://www.codeplex.com/ResourceRefactoring&quot; target=&quot;blank&quot;&gt;Resource Refactoring&lt;/a&gt;! 
    </content:encoded>

    <pubDate>Wed, 12 Mar 2008 21:50:10 +0100</pubDate>
    <guid isPermaLink="false">http://www.xp-dev.de/index.php?/archives/30-guid.html</guid>
    
</item>
<item>
    <title>Optimierungspotenzial beim Stringvergleich</title>
    <link>http://www.xp-dev.de/index.php?/archives/29-Optimierungspotenzial-beim-Stringvergleich.html</link>
            <category>Refactoring</category>
    
    <comments>http://www.xp-dev.de/index.php?/archives/29-Optimierungspotenzial-beim-Stringvergleich.html#comments</comments>
    <wfw:comment>http://www.xp-dev.de/wfwcomment.php?cid=29</wfw:comment>

    <slash:comments>0</slash:comments>
    <wfw:commentRss>http://www.xp-dev.de/rss.php?version=2.0&amp;type=comments&amp;cid=29</wfw:commentRss>
    

    <author>nospam@example.com (Jan Schubert)</author>
    <content:encoded>
    &lt;strong&gt;Von 20 Sekunden auf weniger 1 Sekunde!&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Man sollte meinen, dass das Vergleichen zweier Strings nicht viel Performance in Anspruch nehmen sollte, aber man wird ja immer wieder eines besseren belehrt!&lt;br /&gt;
&lt;br /&gt;
Ein relativ kurzer Codeabschnitt hatte eine enorm lange Durchlaufzeit. Problem war, das zwei Schleifen verschachtelt werden mussten und zudem in der zweiten Schleife noch zwei Stringvergleiche integriert werden mussten! Die Stringvergleiche sahen in etwa so aus:&lt;br /&gt;
&lt;blockquote&gt;
string val = &quot;SOMEVALUE&quot;;
if (val.ToLower() == &quot;somevalue&quot;)
&lt;/blockquote&gt;
&lt;br /&gt;
Da es sich um recht viele Daten gehandelt hat, wurde die ToLower Methode insgesamt 13,5 Mio mal aufgerufen. Für diesen simplen Code nahm der Prozessor gleich 20 Sekunden in Anspruch.&lt;br /&gt;
&lt;br /&gt;
Nun änderten wir den Stringvergleich folgendermaßen ab:&lt;br /&gt;
&lt;blockquote&gt;
string val = &quot;SOMEVALUE&quot;;
if (val.Equals(&quot;somevalue&quot;, StringComparison.OrdinalIgnoreCase))
&lt;/blockquote&gt;
&lt;br /&gt;
Das Ergebnis ist immer noch das selbe, allerdings wurde somit die Dauer auf weniger 1 Sekunde gebracht!&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Die ToLower Methode erzeugt bei jedem Aufruf einen neuen String, der zurückgegeben wird. Allein die Erstellung des neuen Strings nimmt enorm viel Zeit in Anspruch!&lt;/strong&gt; 
    </content:encoded>

    <pubDate>Mon, 25 Feb 2008 20:46:08 +0100</pubDate>
    <guid isPermaLink="false">http://www.xp-dev.de/index.php?/archives/29-guid.html</guid>
    
</item>

</channel>
</rss>