۱۳۸۷ تیر ۲۱, جمعه

واقعیتهای ccache

بسیاری از کاربران فکر می‌کنند که ccache باعث افزایش سرعت کامپایل تحت هر شرایطی می‌شود.

قبل از هرچیز فکر می‌کنم توضیح نحوه عملکرد ccache ما را در درک بهتر شرایط یاری خواهد داد.
ccache در واقع یک MD5 hash از محتوی قبل از پردازش فایل درست می‌کند، سپس cache tree را بررسی می‌کند، و اگر مورد مشابهی پیدا نکرد آن فایل را کامپایل می‌کند و محتوی آنرا دوبار (یک‌بار موقع build کردن و یک‌بار هم در فایل cache) می‌نویسد.
آز آنچه که تا اینجا درباره نحوه عملکرد ccache گفته شد، اینچنین برمی‌آید که چنانچه شما همواره فایلهای غیریکسان را کامپایل می‌کنید، ccache نه تنها به شما کمکی نمی‌کند بلکه در واقع بار اضافی برروی سیستم می‌گذارد.

پس فایده ccache چیست؟ اگر که شما یک source را بیش از یکبار کامپایل کنید، مدت زمانی را که ccache احتیاج دارد تا MD5 hash را ساخته و cache tree را برای یافتن موردی مشابه پیدا کند کمتر از زمان یک build می‌باشد.

پس ccache عموما نه در زمانی که CFLAGS را عوض کنید، نه در زمانی که USE flags را عوض کنید و نه در زمانی که نسخه جدیدتری از source را کامپایل می‌کنید کمک چندانی نخواهد کرد.

ccache معجزه نمی‌کند!

۱۳۸۷ تیر ۱۱, سه‌شنبه

Comet

Comet درباره اتصالات HTTP با عمر طولانی نیست، بلکه درباره اتصالات HTTP ایی است که برای طولانی مدت نگه‌داشته می‌شوند.