<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Developer Papercuts &#187; Performance</title>
	<atom:link href="http://www.vogella.de/blog/tag/performance/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.vogella.de/blog</link>
	<description>Tips around Eclipse and Android programming</description>
	<lastBuildDate>Wed, 08 Feb 2012 17:31:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Installing mod_pagespeed on Ubuntu</title>
		<link>http://www.vogella.de/blog/2011/06/08/mod_pagespeed-ubuntu/</link>
		<comments>http://www.vogella.de/blog/2011/06/08/mod_pagespeed-ubuntu/#comments</comments>
		<pubDate>Wed, 08 Jun 2011 20:21:25 +0000</pubDate>
		<dc:creator>Lars Vogel</dc:creator>
				<category><![CDATA[vogella]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[vogella.de]]></category>

		<guid isPermaLink="false">http://www.vogella.de/blog/?p=4029</guid>
		<description><![CDATA[mod_pagespeed is an Apache HTTP module which is supposed to do a lot of website performance optimization before sending it to the browser. For details please check mod_pagespeed  docs or the Google IO talk (Make the web faster)  about this topic.

Installing on Ubuntu is simple, please see Download site and explanation. Please ...]]></description>
			<content:encoded><![CDATA[<p>mod_pagespeed is an Apache HTTP module which is supposed to do a lot of website performance optimization before sending it to the browser. For details please check <a href="http://code.google.com/speed/page-speed/docs/install.html">mod_pagespeed  docs</a> or the <a href="http://www.google.com/events/io/2011/sessions/make-the-web-faster.html">Google IO talk (Make the web faster) </a> about this topic.</p>
<p>Installing on Ubuntu is simple, please see <a href="http://code.google.com/speed/page-speed/download.html">Download site and explanation</a>. Please note that the example below uses the 64bit version.</p>
<pre class="brush: plain; title: ; notranslate">
wget https://dl-ssl.google.com/dl/linux/direct/mod-pagespeed-beta_current_amd64.deb
dpkg -i mod-pagespeed-*.deb
apt-get -f install
</pre>
<p>This will add the Google repository to your system so an apt-get update &amp; upgrade will  keep mod_pagespeed up to date.</p>
<p>A quick check with <a href="http://www.webpagetest.org">http://www.webpagetest.org</a> showed that it speeds up vogella.de significantly. I used my <a href="www.vogella.de/articles/Android/article.html">Android tutorial</a> as example.</p>
<p>Without the module:</p>
<table cellpadding="0" cellspacing="0" summary="" border="0">
<tr>
<td>&nbsp;</td>
<td>Load Time&nbsp;</td>
<td>First Byte &nbsp;</td>
<td>Start Render&nbsp;</td>
</tr>
<tr>
<td>First View  &nbsp;</td>
<td>13.417s 	&nbsp;</td>
<td> 0.385s  &nbsp;</td>
<td>1.377s &nbsp;</td>
</tr>
<tr>
<td>Repeat View &nbsp;</td>
<td>3.006s  &nbsp;</td>
<td>0.380s  &nbsp;</td>
<td>0.766s &nbsp;</td>
</tr>
</table>
<p>With the module activated:</p>
<table cellpadding="0" cellspacing="0" summary="" border="0">
<tr>
<td>&nbsp;</td>
<td>Load Time&nbsp;</td>
<td>First Byte &nbsp;</td>
<td>Start Render&nbsp;</td>
</tr>
<tr>
<td>First View  &nbsp;</td>
<td>8.980s  	&nbsp;</td>
<td> 0.380s  &nbsp;</td>
<td>1.270s &nbsp;</td>
</tr>
<tr>
<td>Repeat View &nbsp;</td>
<td>2.441s 	&nbsp;</td>
<td>0.389s  &nbsp;</td>
<td> 0.792s  &nbsp;</td>
</tr>
</table>
<p>Pretty cool performance improvements for 5 minutes of installation effort. <img src='http://www.vogella.de/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>Thanks to Google for making the web faster. I hope this module gets contributed to the Apache HTTP server.</p>
<p class="wp-flattr-button"></p> <p><a href="http://www.vogella.de/blog/?flattrss_redirect&amp;id=4029&amp;md5=8f38f8960f73d43ff48de333615fa58c" title="Flattr" target="_blank"><img src="http://www.vogella.de/blog/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.vogella.de/blog/2011/06/08/mod_pagespeed-ubuntu/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Android &#8211; Making efficient layouts</title>
		<link>http://www.vogella.de/blog/2011/03/07/android-efficient-layouts/</link>
		<comments>http://www.vogella.de/blog/2011/03/07/android-efficient-layouts/#comments</comments>
		<pubDate>Mon, 07 Mar 2011 09:07:18 +0000</pubDate>
		<dc:creator>Lars Vogel</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[layout]]></category>
		<category><![CDATA[Layouts]]></category>
		<category><![CDATA[Performance]]></category>

		<guid isPermaLink="false">http://www.vogella.de/blog/?p=3567</guid>
		<description><![CDATA[Android Programming is a lot about efficiency to have snappy user interfaces. The Android SDK provides two nice tools to help building efficient UI's. In the tools directory you find the tools:

layoutopt and 
hierarchyviewer. 

layoutopt is a command line tool which can analyse a layout resource file and tell you what is not required ...]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.vogella.de/articles/Android/article.html">Android Programming</a> is a lot about efficiency to have snappy user interfaces. The Android SDK provides two nice tools to help building efficient UI&#8217;s. In the tools directory you find the tools:</p>
<p><a href="http://developer.android.com/guide/developing/tools/layoutopt.html">layoutopt</a> and<br />
<a href="http://developer.android.com/guide/developing/tools/hierarchy-viewer.html">hierarchyviewer</a>. </p>
<p>layoutopt is a command line tool which can analyse a layout resource file and tell you what is not required and hierarchyviewer is a tool to view the View hierarchy of your running application.</p>
<p><a href="http://www.vogella.de/blog/wp-content/uploads/2010/12/hierarchyview.png"><img src="http://www.vogella.de/blog/wp-content/uploads/2010/12/hierarchyview-300x224.png" alt="" width="300" height="224" class="aligncenter size-medium wp-image-3698" /></a></p>
<p>I suggest to have a look at these tools and check your layouts especially if you have created a complex application. </p>
<p class="wp-flattr-button"></p> <p><a href="http://www.vogella.de/blog/?flattrss_redirect&amp;id=3567&amp;md5=37e08fc4b0709bea906e0ad0834ba082" title="Flattr" target="_blank"><img src="http://www.vogella.de/blog/wp-content/plugins/flattr/img/flattr-badge-large.png" alt="flattr this!"/></a></p>]]></content:encoded>
			<wfw:commentRss>http://www.vogella.de/blog/2011/03/07/android-efficient-layouts/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Profiling Eclipse RCP applications with Eclipse TPTP</title>
		<link>http://www.vogella.de/blog/2009/11/18/profiling-eclipse-rcp-tptp/</link>
		<comments>http://www.vogella.de/blog/2009/11/18/profiling-eclipse-rcp-tptp/#comments</comments>
		<pubDate>Wed, 18 Nov 2009 04:36:12 +0000</pubDate>
		<dc:creator>Lars Vogel</dc:creator>
				<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[How-to]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[RCP]]></category>
		<category><![CDATA[TPTP]]></category>

		<guid isPermaLink="false">http://www.vogella.de/blog/?p=1335</guid>
		<description><![CDATA[I believe approx. one or two years ago I tried to profile an Eclipse RCP application  with the Eclipse TPTP project. I believe at this point in time profiling an RCP application with TPTP was not possible. 

I learned from Eugene Chan that the TPTP release which is part of Eclipse Galileo allows ...]]></description>
			<content:encoded><![CDATA[<p>I believe approx. one or two years ago I tried to profile an <a href="http://www.vogella.de/articles/RichClientPlatform/article.html">Eclipse RCP application </a> with the <a href="http://www.eclipse.org/tptp/">Eclipse TPTP </a>project. I believe at this point in time profiling an RCP application with TPTP was not possible. </p>
<p>I learned from Eugene Chan that the TPTP release which is part of Eclipse Galileo allows to profile Eclipse RCP applications. </p>
<p>I suggest you give it a try, it is as easy as profiling a standard <img src='http://www.vogella.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  Java application. </p>
<p>You find an updated description here: <a href="http://www.vogella.de/articles/EclipseTPTP/article.html">Eclipse TPTP Tutorial</a>.</p>
<p>Thanks to Eugene Chan, Paul Slauenwhite and Kathy Chan from the TPTP team for feedback on the article. </p>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://www.vogella.de/blog/2009/11/18/profiling-eclipse-rcp-tptp/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Java Performance with Strings and StringBuilder</title>
		<link>http://www.vogella.de/blog/2009/07/19/java-string-performanc/</link>
		<comments>http://www.vogella.de/blog/2009/07/19/java-string-performanc/#comments</comments>
		<pubDate>Sun, 19 Jul 2009 16:59:06 +0000</pubDate>
		<dc:creator>Lars Vogel</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Basics]]></category>
		<category><![CDATA[Performance]]></category>

		<guid isPermaLink="false">http://www.vogella.de/blog/?p=585</guid>
		<description><![CDATA[Strings are very frequently used in Java programs. This blog post tries to explain what a programmer needs to consider from a performance point of view.  It will also explain in what situations you should use StringBuilder instead of String.

Strings in Java are immutable. If you look at the source code of String ...]]></description>
			<content:encoded><![CDATA[<p>Strings are very frequently used in Java programs. This blog post tries to explain what a programmer needs to consider from a performance point of view.  It will also explain in what situations you should use StringBuilder instead of String.</p>
<p>Strings in Java are <a href="http://www.vogella.de/articles/JavaConcurrency/article.html#immutability">immutable</a>. If you look at the source code of String you find that java.lang.String has the following properties.</p>
<pre class="brush: java; title: ; notranslate">
/** The value is used for character storage. */
    private final char value[];

 /** The offset is the first index of the storage that is used. */
    private final int offset;

 /** The count is the number of characters in the String. */
    private final int count;
</pre>
<p>The array is used to store the values of this String. </p>
<p>As Strings are immutable they can be freely shared. This property is utilized in the method substring(). The method substring will use a reference to the same String and only change the offset and the lenght value for the String. The same string is in this case used several times. </p>
<p>Therefore using  <strong> substring requires only a constant amount of time (and almost no additional memory) and can be freely used</strong>.</p>
<p>The operation  <strong> concat() </strong> (which is called by the + operator) combines two Strings. This method has to copy the characters of the two Strings and therefore  <strong>takes time and extra space which is propotional to the length of the two strings  </strong>.</p>
<p>The object StringBuilder has a more effectly way of concatenate Strings. It works similar to the class ArrayList by allocating a predefined array for storing the characters and keeps track of the used space. Every time the space is exceeded then it will extend the available capacity).</p>
<p>Does this means that you always have to use StringBuilder if you are concatening strings? </p>
<p>No. Of course if in your program you combine only a few times String the runtime overhead is normally not relevant for the overall performance. </p>
<p>But of course if you combine frequently strings in your program you should switch to StringBuilder. </p>
<p class="wp-flattr-button"></p>]]></content:encoded>
			<wfw:commentRss>http://www.vogella.de/blog/2009/07/19/java-string-performanc/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
	</channel>
</rss>

