Mercurial > mm7
diff lib/swig/swigwin-2.0.11/CCache/web/index.html @ 1899:b3009adc0e2f
Adding swig, gitignore, hgignore
author | Nomad |
---|---|
date | Mon, 21 Oct 2013 10:42:27 +0200 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/lib/swig/swigwin-2.0.11/CCache/web/index.html Mon Oct 21 10:42:27 2013 +0200 @@ -0,0 +1,158 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> +<HTML> +<HEAD> +<TITLE>ccache</TITLE> +</HEAD> +<BODY BGCOLOR="#ffffff" TEXT="#000000" VLINK="#292555" LINK="#292555" ALINK="#cc0033"> +<h2>ccache</h2> + +ccache is a compiler cache. It acts as a caching pre-processor to +C/C++ compilers, using the -E compiler switch and a hash to detect +when a compilation can be satisfied from cache. This often results in +a 5 to 10 times speedup in common compilations.<p> + +The idea came from Erik Thiele wrote the original <a +href="http://compilercache.sourceforge.net/">compilercache</a> program +as a bourne shell script. ccache is a re-implementation of Erik's idea +in C with more features and better performance.<p> + +<h2>Latest release</h2> + +The latest release is ccache 2.4. + +<ul> +<li>Added CCACHE_READONLY option +<li>Added CCACHE_TEMPDIR option +<li>fixed handling of hard-linked compilers on AIX +<li>added O_BINARY support, to try and support win32 compiles +<li>show cache directory in stats output +<li>fixed handling of HOME environment variable +</ul> + +See the <a href="ccache-man.html">manual page</a> for details +on the new options.<p> + +You can get this release from the <a href="http://ccache.samba.org/ftp/ccache/">download directory</a> + +<p>NOTE! This release changes the hash input slighly, so you will +probably find that you will not get any hits against your existing +cache when you upgrade. + +<h2>Why bother?</h2> + +Why bother with a compiler cache? If you ever run "make clean; make" +then you can probably benefit from ccache. It is very common for +developers to do a clean build of a project for a whole host of +reasons, and this throws away all the information from your previous +compiles.<p> + +By using ccache you can get exactly the same effect as "make clean; +make" but much faster. It also helps a lot when doing RPM builds, +as RPM can make doing incremental builds tricky.<p> + +I put the effort into writing ccache for 2 reasons. The first is the +Samba build farm +(<a href="http://build.samba.org/">http://build.samba.org/</a>) +which constantly does clean builds of Samba on about 30 machines after each +CVS commit. On some of those machines the build took over an hour. By +using ccache we get the same effect as clean builds but about 6 times +faster.<p> + +The second reason is the autobuild system I used to run for +Quantum. That system builds our whole Linux based OS from scratch +after every CVS commit to catch compilation problems quickly. Using +ccache those builds are much faster. + +<h2>Is it safe?</h2> + +Yes. The most important aspect of a compiler cache is to <b>always</b> +produce exactly the same output that the real compiler would +produce. The includes providing exactly the same object files and +exactly the same compiler warnings that would be produced if you use +the real compiler. The only way you should be able to tell that you +are using ccache is the speed.<p> + +I have coded ccache very carefully to try to provide these guarantees. + +<h2>Features</h2> + +<ul> +<li> keeps statistics on hits/misses +<li> automatic cache size management +<li> can cache compiles that generate warnings +<li> easy installation +<li> very low overhead +<li> uses hard links where possible to avoid copies +</ul> + +<h2>Documentation</h2> + +See the <a href="ccache-man.html">manual page</a> + + +<h2>Performance</h2> + +Here are some results for compiling Samba on my Linux laptop. I have +also included the results of using Erik's compilercache program +(version 1.0.10) for comparison.<p> + +<table border=1> +<tr><th> </th> <th> ccache</th> <th> compilercache</th> </tr> +<tr><td>normal </td> <td align=right>13m 4s </td><td align=right>13m 4s</td> </tr> +<tr><td>uncached </td> <td align=right>13m 15s </td><td align=right>15m 41s</td> </tr> +<tr><td>cached </td> <td align=right>2m 45s </td><td align=right>4m 26s</td> </tr> +</table> + +<h2>How to use it</h2> + +You can use ccache in two ways. The first is just to prefix your +compile commands with "ccache". For example, you could change the +"CC=gcc" line in your Makefile to be "CC=ccache gcc".<p> + +Alternatively, you can create symbolic links from your compilers name +to ccache. This allows you to use ccache without any changes to your +build system. + +<h2>Download</h2> + +You can download the latest release from the <a +href="http://ccache.samba.org/ftp/ccache/">download directory</a>.<p> + +For the bleeding edge, you can fetch ccache via CVS or +rsync. To fetch via cvs use the following command: + +<pre> + cvs -d :pserver:cvs@pserver.samba.org:/cvsroot co ccache +</pre> + +To fetch via rsync use this command: + +<pre> + rsync -Pavz samba.org::ftp/unpacked/ccache . +</pre> + +<h2>Related projects</h2> + +Here are some related programs you may find interesting + +<ul> +<li> <a href="http://distcc.samba.org/">distcc</a> - a distributed compilation system +<li> <a href="http://cachecc1.sourceforge.net/">cachecc1</a> - a gcc specific cache +<li> <a href="http://sourceforge.net/projects/gocache/">gocache</a> - a cross platform compiler cache +</ul> +<p> + +<h2>Mailing list</h2> + +<p>A <a href="http://lists.samba.org/mailman/listinfo/ccache/">mailing +list</a> is available for discussion of ccache. + + +<hr> +<tiny> +<a href="http://samba.org/~tridge/">Andrew Tridgell</a><br> +<a href="mailto:bugs@ccache.samba.org">bugs@ccache.samba.org</a> +</tiny> + +</BODY> +</HTML>