CCACHE ile derleme yapmak | BSD
Saturday, November 19, 2011 12:00:00 PM
Nedir bu diye sorarsanız?
ccache Nedir?
ccache, bir derleyici önbelleği sistemidir. Önceki derlemelerin sonuçlarını saklayarak ve aynı derlemelerde bunlardan yararlanarak derleme işlemini hızlandırır. Desteklenen diller arasında C, C++, Objective-C ve Objective-C++ bulunmaktadır.
Devamı için tık'layınız >>>
Kısaca iyi bir şeydir diyebiliriz

Gerçi 2. derlemelerde daha çok işe yarayacağınıda hesap edersek, (ilk derlemede ccache devreye girmez) gerekte olmayabilir ama Örn. FF gibi bir uygulamaya sürekli güncelleniyorsa ve güncel kullanmayı da seviyorsanız o zaman CCACHE işe yarayacaktır elbet.
Zira FF gibi bir paketin derlenmesi normalde 1 saat civarında oluyor ve her güncellemede 1 saat beklemek sizi iyice depresif biri yapabilir.

Neyse işte tamda bu gibi depresif durumları önlemek için birileri bir şeyler yapalım, yapalım da ne yapalım demişler ve CCACHE ortaya çıkmış.
Sonuçta geliştiriciler/paketçilerde/ bir insan ve onlarıda düşünmek lazım.
Hazır paketi şakırt diye kuran $USER'ler helede bunu beğenmezlerse, geliştiricinin/paketçinin ben bunu niye derliyorum vaktime emeğime yazık, al $USER sen kendin derle dese, o $USER'in yüz ifadesini görmeye neler vermezdim neler

Özetle derleme demek mutfağa yakın olmak demektir. (tar.gz'nin çekim gücü)
Yemeği beğenmeyen $USER'de ağzının tadı yok demektir. (mennuniyetsiz müşteri)
Beğenmiyorsan kendin yapacaksın, sanki para verdin!! :hayır:
Her neyse küçük şeylerden büyük mutluluklar çıkaranlara selam olsun diyerek, CCACHE olayına girişelim.
Önce kuralım.
# cd /usr/ports/devel/ccache ; make install clean # pkg_add -r ccache
make.conf'umuzu ayarlayalım.
.if ${.CURDIR:M*/ports*}
.if exists(/usr/local/libexec/ccache/world/cc) && !defined(NO_CCACHE)
CC=/usr/local/libexec/ccache/world/cc
CXX=/usr/local/libexec/ccache/world/c++
.endif
NO_CCACHE=yes
.........
.........
.........
.........
.endif
nokta nokta (.......) olan yerlere Cflags ve diğer parametrelerinizi girebilirsiniz.
Tabii bu Cflags değerlerini önceden bilip girmeniz gerek.
Devam ediyoruz ~/.cshrc 'e ekliyoruz
# set ccache varibles setenv PATH /usr/local/libexec/ccache:$PATH setenv CCACHE_PATH /usr/bin:/usr/local/bin setenv CCACHE_DIR /var/tmp/ccache setenv CCACHE_LOGFILE /var/log/ccache.log # set ccache temp size to 512MB (default 1GB) if ( -x /usr/local/bin/ccache ) then /usr/local/bin/ccache -M 512m > /dev/null endif
CCACHE_DIR yolunu istediğiniz bir yeride gösterebilirsiniz, hatta depo dizininiz varsa orayada alabilirsiniz.
CCACHE boyutunuda (512m) büyük tutabilirsiniz, 2GB, 4GB, gibi
Ve sisteme RESTART atın.
Kontrolleri ccache -s ile yapabiliriz.
%ccache -s cache directory /mnt/ada1s2/cache/ccache cache hit (direct) 860 cache hit (preprocessed) 18 cache miss 872 called for link 1070 called for preprocessing 18 compile failed 14 preprocessor error 40 bad compiler arguments 4 autoconf compile/link 232 no input file 30 files in cache 2606 cache size 27.6 Mbytes max cache size 4.0 Gbytes
Şimdide farka bakalım, gerçi çok fazla deneme şansım olmadı ama xarchiver ve vlc farkları önce ve sonrasıyla aşağıda.
xarchiver 39.010u 20.932s 0:54.30 110.3% 3902+3740k 10+3566io 12pf+0w 13.154u 16.252s 0:32.80 89.6% 440+2137k 2+1336io 0pf+0w vlc 890.933u 273.636s 17:30.91 110.8% 5409+4003k 8794+50765io 1613pf+24w 186.194u 208.169s 7:23.58 88.9% 573+2169k 3619+18476io 181pf+0w
İlişkili konu; Ports kullanımı | BSD
Yaralanılan kaynaklar;
http://forums.freebsd.org/showthread.php?t=174
http://anilozbek.blogspot.com/2011/04/ccache.html
http://www.gentoo.org/doc/tr/handbook/handbook-x86.xml?part=2&chap=3






erci buzcokomoko # Monday, June 11, 2012 5:38:50 PM
Tabii bu Cflags değerlerini önceden bilip girmeniz gerek.
onu nerden bulacağız...
Felâsifefelasife # Tuesday, June 12, 2012 6:36:45 AM
Dolayısıyla önce işlemcinin özelliklerini bilmek lazım.
Ama bu CCACHE olayını yeni başlayanlar için tavsiye etmem zira karışıktır, hatta bende kullanmıyorum artık.