<?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>Santiance &#187; Performance</title>
	<atom:link href="http://santiance.com/tag/performance/feed/" rel="self" type="application/rss+xml" />
	<link>http://santiance.com</link>
	<description>Kristopher Ives&#039;s Developer Notes</description>
	<lastBuildDate>Wed, 28 Jul 2010 10:07:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Compiz 0.9 C++ compared to 0.8.4 C</title>
		<link>http://santiance.com/2009/10/compiz-code-comparison/</link>
		<comments>http://santiance.com/2009/10/compiz-code-comparison/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 05:13:52 +0000</pubDate>
		<dc:creator>Kristopher Ives</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Compiz]]></category>
		<category><![CDATA[Graph]]></category>
		<category><![CDATA[Performance]]></category>

		<guid isPermaLink="false">http://santiance.com/?p=509</guid>
		<description><![CDATA[Here is an early look at some of the changes I&#8217;ve been investigating as documentation continues on the new Compiz 0.9 branch. The community and development team are pretty awesome folks, and I would like to take a moment to thank everyone in the IRC, Forums, and Planet. This graph is simply information I collected [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://santiance.com/wp-content/uploads/compiz-comparison.png"><img class="alignleft size-medium wp-image-510" title="Comparison of the C version (0.8.4) of Compiz and the new C++ (0.9) branch" src="http://santiance.com/wp-content/uploads/compiz-comparison-300x173.png" alt="Comparison of the C version (0.8.4) of Compiz and the new C++ (0.9) branch" width="300" height="173" /></a><a href="http://santiance.com/wp-content/uploads/compiz-comparison-core.png"><img class="alignright size-full wp-image-511" title="Comparison of the Compiz Core in C++ and C" src="http://santiance.com/wp-content/uploads/compiz-comparison-core.png" alt="Comparison of the Compiz Core in C++ and C" width="281" height="282" /></a>Here is an early look at some of the changes I&#8217;ve been investigating as documentation continues on the new Compiz 0.9 branch. The community and development team are pretty awesome folks, and I would like to take a moment to thank everyone in the <a title="Compiz Community" href="http://wiki.compiz-fusion.org/Join%20our%20community" target="_blank">IRC</a>, <a title="Compiz Forums" href="http://forum.compiz.org/" target="_blank">Forums</a>, and <a title="Compiz Planet" href="http://planet.compiz-fusion.org/" target="_blank">Planet</a>.</p>
<p>This graph is simply information I collected about the size of the source code files for various plugins. There is also a general graph comparing the sizes of the core. I had started to do a comparison of binary sizes, but because of the optimizations and debugging builds I have &#8211; it might be a while before I could get accurate numbers for that.</p>
]]></content:encoded>
			<wfw:commentRss>http://santiance.com/2009/10/compiz-code-comparison/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Tip: CPU Scaling Performance</title>
		<link>http://santiance.com/2009/10/tip-cpu-scaling-performance/</link>
		<comments>http://santiance.com/2009/10/tip-cpu-scaling-performance/#comments</comments>
		<pubDate>Tue, 20 Oct 2009 19:56:15 +0000</pubDate>
		<dc:creator>Kristopher Ives</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Applet]]></category>
		<category><![CDATA[CPU]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[GNOME]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Tip]]></category>

		<guid isPermaLink="false">http://santiance.com/?p=493</guid>
		<description><![CDATA[There is a GNOME Applet included by default in Ubuntu that allows you to adjust your CPU scaling frequency, which most hardware supports. You can right click any panel and select Add to Panel, then select the CPU Frequency Scaling Monitor applet. This is a misleading name because it does more than just monitor the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://santiance.com/wp-content/uploads/cpu-scaling.png"><img class="alignright size-full wp-image-494" title="CPU Scaling" src="http://santiance.com/wp-content/uploads/cpu-scaling.png" alt="CPU Scaling" width="147" height="222" /></a>There is a GNOME Applet included by default in Ubuntu that allows you to adjust your CPU scaling frequency, which most hardware supports. You can right click any panel and select <em>Add to Panel</em>, then select the <strong>CPU Frequency Scaling Monitor</strong> applet.</p>
<p>This is a misleading name because it does more than just <em>monitor</em> the scaling, it allows you to change it easily. Most people disregard these settings because many settings like this don&#8217;t make a huge difference in other applications. There is one place it makes a big difference, which is the mother of all CPU users: Web Flash-based video. This thing basically physically abuses your processor. You can use <a title="Flash Benchmarking 101" href="http://arstechnica.com/software/news/2008/10/benchmarking-flash-player-10.ars" target="_blank">flash little performance tests</a> to get an idea of how CPU scaling affects your hardware.</p>
<p>In the same way, I find that actually making use of the <em>Powersave</em> and other options when on battery. On desktop systems where power consumption isn&#8217;t an issue, this setting will always be set at <em>Performance</em>. While <em>Ondemand</em> is rather good for typical use, some users find that it degrades response-time for things like <em><a title="Compiz Related Articles" href="http://santiance.com/tag/compiz/" target="_self">Compiz</a></em>.</p>
<p>Also remember that <em>IOWait</em> is typically the bottleneck for a lot of applications. I chose to use Flash as an example because it does a poor job of accomplishing it&#8217;s job and as a result requires a magnitude of additional computational power. You can easily compare the amount of processor usage to anything like <em>VLC</em>, <em>Totem</em>, or <em>Mplayer</em> and they will be a fraction of the usage.</p>
]]></content:encoded>
			<wfw:commentRss>http://santiance.com/2009/10/tip-cpu-scaling-performance/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A better SDL wrapper for Java</title>
		<link>http://santiance.com/2009/10/a-better-sdl-wrapper-for-java/</link>
		<comments>http://santiance.com/2009/10/a-better-sdl-wrapper-for-java/#comments</comments>
		<pubDate>Thu, 15 Oct 2009 17:51:05 +0000</pubDate>
		<dc:creator>Kristopher Ives</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[C]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[SDL]]></category>

		<guid isPermaLink="false">http://santiance.com/?p=200</guid>
		<description><![CDATA[I&#8217;ve been using SDL for a long time in C++, and I&#8217;ve toyed sdljava, which are rather complete bindings for SDL for Java. While the bindings are rather complete, they where created using SWIG, which is a (great) code generator, but still the result is that these bindings are kinda clunky and rather bloated. For [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been using <a title="Simple Directmedia Library" href="http://www.libsdl.org/" target="_blank">SDL</a> for a long time in <code>C++</code>, and I&#8217;ve toyed <a title="Java Bindings for SDL" href="http://sdljava.sourceforge.net/" target="_blank">sdljava</a>, which are rather complete bindings for SDL for Java. While the bindings are rather complete, they where created using <a title="Simplified Wrapper and Interface Generator" href="http://www.swig.org/" target="_blank">SWIG</a>, which is a (great) code generator, but still the result is that these bindings are kinda clunky and rather bloated. For example, there are many intermediate classes that are prefixed with <code>SWIG_</code>. This motivated me to write my own, which I call <a title="SDLbits Project Page" href="http://santiance.com/sdlbits/" target="_blank">SDLbits</a>.</p>
<p>While it&#8217;s not as complete as sdljava, it&#8217;s much smaller and is hand written. While the idea of hand-writing lots of <code>C</code> wrapper code seems daunting, it was not much more than writing a class with many <code>native</code> methods, running <code>javah</code> and writing some simple glue. Here is quick rundown of what is supported:</p>
<ul>
<li>Video functions including support for <em>OpenGL</em> bindings. We also provide our own very small <code>GL</code> bindings, <a title="GLbits Project Page" href="http://santiance.com/glbits/" target="_blank">GLbits</a>.</li>
<li>Audio functions with support for callbacks to generate audio from Java.</li>
<li>Event functions (including SDL_SetEventFilter with a callback) and simple class system that allows for use of <code>instanceof</code>.</li>
<li>Joystick, Keyboard, and Mouse functions for polling device input.</li>
<li>Time functions like SDL_Delay and SDL_GetTicks incase their Java counterparts have undesired affects</li>
</ul>
<p>However, it&#8217;s also important to note what wasn&#8217;t implemented:</p>
<ul>
<li>Input/output (RWops) for files, since a<code> java.io.File</code> or <code>java.nio.FileChannel</code> (and variants) should be used instead.</li>
<li>Thread functions for SDL, since <code>java.lang.Thread</code> should be used instead.</li>
</ul>
<p><a href="http://santiance.com/wp-content/uploads/2009/10/comparison.png"><img class="alignright size-full wp-image-202" title="Comparison of SDLbits and sdljava" src="http://santiance.com/wp-content/uploads/2009/10/comparison.png" alt="Comparison of SDLbits and sdljava" width="344" height="198" /></a>While the code is not 100% complete, it can easily be thought of as at least 85% completed, and work will continue as warranted. It doesn&#8217;t hurt that the code is licensed under the LGPL, so anyone can modify and commit changes. Even though the code isn&#8217;t complete I compared the amount of both <code>C</code> and Java code between the projects:</p>
]]></content:encoded>
			<wfw:commentRss>http://santiance.com/2009/10/a-better-sdl-wrapper-for-java/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Linux TCP Settings for Comcast &amp; Using ionice</title>
		<link>http://santiance.com/2009/09/linux-tcp-settings-for-comcast-using-ionice/</link>
		<comments>http://santiance.com/2009/09/linux-tcp-settings-for-comcast-using-ionice/#comments</comments>
		<pubDate>Tue, 29 Sep 2009 17:40:22 +0000</pubDate>
		<dc:creator>Kristopher Ives</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[TCP]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://santiance.com/?p=224</guid>
		<description><![CDATA[It&#8217;s been mailed and blogged about to death, but I&#8217;ll explain how to increase you TCP performance for usage on a laptop or notebook that will having heavy bandwidth usage. With a common cable provider and wireless device ratings these days you can get about 2 MB/sec connections. However, it&#8217;s unlikely you&#8217;ll find many HTTP [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been <a title="TCP Tuning for Broadband (Mailing List)" href="https://lists.ubuntu.com/archives/ubuntu-users/2007-November/129976.html" target="_blank">mailed</a> and <a title="Linux Tune Network Stack" href="http://www.cyberciti.biz/faq/linux-tcp-tuning/" target="_blank">blogged</a> <a title="Tweak Kernel Variables in sysctl.conf" href="http://perfector.wordpress.com/2008/04/23/tweak-kernel-variables-in-sysctlconf/" target="_blank">about</a> <a title="Configure Debian TCP Performance" href="http://vps.net/forum/forums/tutorials-how-tos/425-configure-debian-tcp-ip-performance" target="_blank">to</a> <a title="How To Increase TCP Speed In Ubunut" href="http://ubuntumanual.org/posts/10/how-to-increase-internet-speed-in-ubuntu" target="_blank">death</a>, but I&#8217;ll explain how to increase you TCP performance for usage on a laptop or notebook that will having heavy bandwidth usage. With a common cable provider and wireless device ratings these days you can get about 2 MB/sec connections. However, it&#8217;s unlikely you&#8217;ll find many HTTP servers that are willing to give you that much bandwidth in a single connection, but BitTorrent (and possibly zysnc, jigdo, and other distribution systems) may make heavy interchange between many servers sending a lot of TCP packets.</p>
<p>The default configurations for TCP in Ubuntu and Debian are good, but they aren&#8217;t profiled to meat your specific connection. Last I checked I believe they are defaulted to a DSL-like connection, which is probably somewhere in the middle-ground between dial-up and high performance broadband. Here are some simple additions you can make to your <code>/etc/sysctl.conf</code> file (as root):</p>
<pre>net.core.rmem_default = 524288
net.core.rmem_max = 524288
net.core.wmem_default = 524288
net.core.wmem_max = 524288
net.ipv4.tcp_wmem = 4096 87380 524288
net.ipv4.tcp_rmem = 4096 87380 524288
net.ipv4.tcp_mem = 524288 524288 524288
net.ipv4.tcp_rfc1337 = 1
net.ipv4.ip_no_pmtu_disc = 0
net.ipv4.tcp_sack = 1
net.ipv4.tcp_fack = 1
net.ipv4.tcp_window_scaling = 1
net.ipv4.tcp_timestamps = 1
net.ipv4.tcp_ecn = 0
net.ipv4.route.flush = 1</pre>
<p>The easiest way to make these configuration changes and apply them is to press ALT+F2 and run <code>gksudo gedit /etc/sysctl.conf</code> (you can copy and paste that), which will open up the text editor. Paste the above changes at the end of the file, save, and exit. Now press ALT+F2 again and enter <code>gksudo sysctl -p</code> to apply these changes. If you want to see what these commands are doing you&#8217;ll have to press the <em>Run in Terminal</em> button instead of just <em>Run</em>.</p>
<p>Another trick is using <code>ionice</code> to give different processes more priority on reading and writing to your file system. A good example is the <em>Transmission</em> torrent client, which I prefer to run in the background most of the time. You have to get the Process ID (PID) by using the <em>System Monitor</em>, which can be ran from the <em>Administration</em> menu or by pressing ALT+F2 <code>gnome-system-monitor</code>. Go to the process list and find the name of the program (<code>transmission</code> in this example), copy the PID, and then press ALT+F2 <code>gksudo ionice -c 3 -p 1234</code> where <em>1234</em> is instead the PID. I used <code>3</code> here to make it use <em>Idle</em> scheduling, but you can use <code>1</code>, <code>2</code>, and <code>3</code> for varying degrees. See <code>man ionice</code> for how that works in detail.</p>
]]></content:encoded>
			<wfw:commentRss>http://santiance.com/2009/09/linux-tcp-settings-for-comcast-using-ionice/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Faster Pages by Making Less Requests with Diet HTTP</title>
		<link>http://santiance.com/2009/08/faster-pages-by-making-less-requests-with-diet-http/</link>
		<comments>http://santiance.com/2009/08/faster-pages-by-making-less-requests-with-diet-http/#comments</comments>
		<pubDate>Sun, 23 Aug 2009 18:48:21 +0000</pubDate>
		<dc:creator>Kristopher Ives</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[HTML/CSS]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Performance]]></category>

		<guid isPermaLink="false">http://67.43.13.30/~kives/wp/?p=147</guid>
		<description><![CDATA[We&#8217;ve been cooking up a new project called Diet HTTP, which are designed for use with PHP with support for Smarty. The idea here is to cut down on HTTP requests for .css and .js by serving the files in bundles instead of individually. This will improve your page load time by: Cutting down on HTTP requests, [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve been cooking up a new project called <em>Diet HTTP</em>, which are designed for use with PHP with support for Smarty. The idea here is to cut down on HTTP requests for <code>.css</code> and <code>.js</code> by serving the files in bundles instead of individually. This will improve your page load time by:</p>
<ul>
<li>Cutting down on HTTP requests, which are limited to 2 per domain. If you know your front page will require 10 CSS files for the different components or widgets, then just serve it as one single request.</li>
<li>Lower total size of files due to increased compression dictionary. For instance, if a CSS property is used twice it will likely reference the dictionary second time. (Compare to making a tar.gz of all your cs/js files to just zipping them)</li>
<li>&#8220;Bundles&#8221; will stay cached on the client and each bundle is a unique ID. Areas that have different functionality on your site will require different bundles of stylesheets.</li>
<li>Minifies your Javascript and CSS (or uses minified files), but doesn&#8217;t alter any of your files. (Keeps a cache)</li>
</ul>
<p>Basically bandwidth is better spent just transmitting the files you will likely need at a later time. A good example is with stylesheets. Most pages have a base stylesheet that gets applied to every page, let&#8217;s say that&#8217;s <code>15 KB</code>. Let&#8217;s say the user navigates to another page, but they won&#8217;t have to download that base stylesheet again since it&#8217;s likely cached, but they will have to download the new stylesheet for things specific to that page. The idea is to create a &#8220;bundle&#8221; of stylesheets that should be loaded together, so they won&#8217;t have to load another until they navigate to some drastically different area.</p>
<p>The same concept is used for Javascript being served, although the impact is much greater. A common site will easily tip the scales at <code>150 KB</code> of scripts before being optimized.</p>
<p>We&#8217;ll be making the <em>Diet</em> framework available under the <a href="http://www.gnu.org/copyleft/lesser.html" target="_blank">LGPL</a> license. While it will be part of our <em>Twig</em> framework, we think it&#8217;s important for it to be easy to separate.</p>
]]></content:encoded>
			<wfw:commentRss>http://santiance.com/2009/08/faster-pages-by-making-less-requests-with-diet-http/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS Sprites: HTTP Traffic and Compression Ratios</title>
		<link>http://santiance.com/2009/08/css-sprites-http-traffic-and-compression-ratios/</link>
		<comments>http://santiance.com/2009/08/css-sprites-http-traffic-and-compression-ratios/#comments</comments>
		<pubDate>Mon, 10 Aug 2009 03:59:01 +0000</pubDate>
		<dc:creator>Kristopher Ives</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[HTML/CSS]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Performance]]></category>

		<guid isPermaLink="false">http://67.43.13.30/~kives/wp/?p=73</guid>
		<description><![CDATA[I&#8217;m kinda disappointed in the web development community for being such a lumbering beast. New ideas and methods come out regularly that are proven to work great, but often times we fail to adapt if there isn&#8217;t a lot of external pressure. CSS Sprites, simply put, are a win-win. Steve Souders explains this well in [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m kinda disappointed in the web development community for being such a lumbering beast. New ideas and methods come out regularly that are proven to work great, but often times we fail to adapt if there isn&#8217;t a lot of external pressure.</p>
<p>CSS Sprites, simply put, are a win-win. Steve Souders explains this well in his <a title="Steve Souders High Performance Web Sites: 14 Rules for Faster Pages" href="http://video.yahoo.com/video/play?vid=1040890" target="_blank"><em>High Performance Web Sites: 14 Rules for Faster Pages</em></a> on <a title="YUI Developer Theater" href="http://developer.yahoo.com/yui/theater/" target="_blank">YUI Theater</a>. I think the most critical element here is that it significantly cuts down on HTTP requests, which are the serious bottleneck due to a standard limit of 2 per unique domain name.</p>
<p>A common complaint about this method is that combining all the images into a larger one creates a &#8220;waste of space&#8221;. Indeed there will be small gaps between your images, however:</p>
<ul>
<li>You should be using <a title="Portable Network Graphics" href="http://en.wikipedia.org/wiki/Portable_Network_Graphics" target="_blank">PNG</a> (8-bit if you can) for this image. These image formats use <a title="Lossless Data Compression" href="http://en.wikipedia.org/wiki/Lossless_data_compression" target="_blank">lossless compression</a>, and long contiguous areas of empty space will be compressed so well it won&#8217;t affect the size of the resulting file.</li>
<li>Multiple images inside a PNG-8 will share the same <a title="Image Palettes" href="http://en.wikipedia.org/wiki/Palette_(computing)" target="_blank">palette</a> and may reduce the file size. Before compression this is about 0.7 <a title="Kilobyte (1024 bytes)" href="http://en.wikipedia.org/wiki/Kilobyte" target="_blank">KB</a> per image. Creating just a 3&#215;3 grid of CSS sprites this yields 20KB of savings.</li>
<li>The <a title="DEFLATE Compression Algorithm" href="http://en.wikipedia.org/wiki/DEFLATE#Duplicate_string_elimination" target="_blank">compression dictionary</a> will be much better with multiple images. With a single 16&#215;16 icon there likely isn&#8217;t many data patterns that can be used to reduce the size of the file. With multiple images you&#8217;re compression ratio will become higher because there is more similarities to take advantage of in the image.</li>
</ul>
<p>Cutting down on file size is always nice, but really it&#8217;s the fact that you&#8217;ll be making much less HTTP requests to the server. Anyone using <a title="Seriously, you don't have Firebug?" href="http://getfirebug.com/" target="_blank">Firebug</a> will notice that most of the time is spent establishing a connection to the server. This is because many servers have a limitation on concurrent HTTP transactions.</p>
<p>Don&#8217;t forget to put different types of content on different sub-domains if you have that option. Stylesheets, scripts, and images can all be on separate domains, although it can be tedious to get stylesheets and images on separate domains since you&#8217;ll lose relative pathing.</p>
]]></content:encoded>
			<wfw:commentRss>http://santiance.com/2009/08/css-sprites-http-traffic-and-compression-ratios/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux is too conservative of memory for Desktops</title>
		<link>http://santiance.com/2009/08/linux-is-too-conservative-of-memory-for-desktops/</link>
		<comments>http://santiance.com/2009/08/linux-is-too-conservative-of-memory-for-desktops/#comments</comments>
		<pubDate>Fri, 07 Aug 2009 23:13:05 +0000</pubDate>
		<dc:creator>Kristopher Ives</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://67.43.13.30/~kives/wp/?p=24</guid>
		<description><![CDATA[Who would have thought I would be writing an article about how Linux is too good at keeping memory usage low? I don&#8217;t want memory to be used badly or stupidly, but I really hate swapping and virtual memory slowdowns (My finger is pointing at you Java). I&#8217;ve tried all the &#8220;fixes&#8221; (such as setting [...]]]></description>
			<content:encoded><![CDATA[<p>Who would have thought I would be writing an article about how Linux is too good at keeping memory usage low? I don&#8217;t want memory to be used badly or stupidly, but I really hate swapping and virtual memory slowdowns (My finger is pointing at you Java).</p>
<p>I&#8217;ve tried all the &#8220;fixes&#8221; (such as setting vm.swappiness to 0), but I think it&#8217;s time to just go without a swap partition. If I can find out how to get the swap to only mount when it will be needed that would be great, but otherwise I&#8217;ll setup a daemon script that simply checks the current usage level, and if over say 75% runs <code>swapon -a</code>.</p>
<p>Just to be clear I&#8217;m not running <em>Apache</em>, <em>MySQL</em>, or <em>PHP</em> on this machine, which may use the swap in this way legitimately.</p>
<p>You think I&#8217;m crazy? Well, maybe since I am talking to a imaginary reader for the sake of writing this post, but the statistics about my swap usage just don&#8217;t add up:</p>
<ul>
<li>I&#8217;ve got <strong>2GB</strong> of RAM in this notebook.</li>
<li> I never see it go beyond <strong>800MB</strong> of actual usage. (Unless I am running my Virtual Machine for XP to test IE7)</li>
<li><code>sysctl vm.swappiness</code> gives &#8220;vm.swappiness = 0&#8243;.</li>
<li>That&#8217;s great that it&#8217;s low, but it&#8217;s using my swap which is much slower and unneeded, while there is still<strong> 1GB of untouched memory</strong>.</li>
</ul>
<p>What&#8217;s the point in having 2GB of memory if the kernel is going to fight and keep me below 1GB usage?</p>
]]></content:encoded>
			<wfw:commentRss>http://santiance.com/2009/08/linux-is-too-conservative-of-memory-for-desktops/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
