۲۷-۱۰-۱۳۹۳, ۰۷:۱۸ صبح
جوملا یکی از انعطاف پذیرترین و قدرتمندترین سیستمهای مدیریت محتوای در دسترس است، ازنظر زمان اجرا عملکرد (Performance) میتواند شما را دچار مشکل کند. چند کار وجود دارد که میتوان با انجام دادنِ آن ها سرعت سایت خود را افزایش داد.
بهینهسازی قالب:
یکی از معمولترین مشکلاتی که در جوملا (یا هر سایت دیگری) دیدهایم، طراحی هزاران قالب است که بیشتر آنها بسیار زیبا به نظر میرسند ولی خطاهای سختی در عملکرد دارند. مشکل اینجاست که برخی از این تعداد زیادی تصاویر جدا در صفحه را نمایش میدهندکه هر تصویر یک درخواست جدید را به وجود میآورد (که به بین 1/ 0تا 1 ثانیه به تأخیر شبکه اضافه میکند) که حتماً باید Download شوند. یک سایت بزرگ وجود دارد که کمک میکند تا ما تشخیص بدهیم چه بهینه سازی قالبی باید انجام بشود و اطمینان کسب کنیم که بعد از هر تغییر بزرگ می توانید سایتتان را از این طریق اجرا کنید (TheWebsite Analyzer)
استفاده ازGzip:
رمز گذاری صفحات با Gzip در اکثرموارد جواب می دهد...اگر پردازشگر سرور شما سریعتر از پهنای باند شماست، فعالسازی Gzip compression حقیقتاً سرعت سایت شما را افزایش خواهد داد. Gzip کردن صفحات به یک CPU پرقدرت نیاز دارد. اگر سایت شما سریع بالا نمیآید،Gzip را فعال کنید(مخصوصاً در سرورهای با سرعت بالا). احتمالاً اگر به نتیجه نرسیدید یا از هاست اخطار CPU دریافت کردید، Gzip را غیرفعال کنید. این کار میتواند به شما آسیب زند، اما اکثر اوقات این کار به شما کمک می کند. تنها راه فهمیدن، امتحان کردن آن است.
تمامی کامپوننتها، کامپوننتهای خوبی نیستند:
اگر به پوشه امکانات جوملا نگاهی بیندازید. کامپوننت های زیادی را مشاهده خواهید کرد که بعضی از این آن ها واقعاً بی تأثیر هستند وسبب افت سرعت در سایت می شوند. اگر شما به دنبال یک راه آسان برای شناسایی کامپوننتهای کند هستید که ممکن است از آنها استفاده هم میکنید، می خواهید، کامپوننت my page caching راا نصب کنید، اما caching را فعال نکنید بعد از یک هفته یا بیشتر، به سراغ فهرستی که تولید شده بروید وURL های کند را پیدا کنید.آن کامپوننتها به شما نشان خواهند داد که کدامشان از بقیه کندتر هستند.
.
SEF، سرور دوستانهای (Server Friendly) نیست:
یکی از بهترین کارهایی که شما می توانید برای سایت خود انجام دهید، این است که کاری کنید تا URLها بهتر و زیباتر به نظر برسند. هستهی جوملا کار را به شکل قابل قبولی انجام میدهد اما کامپوننتهای اضافی کارآمدی هستند که می توانند URLهای سایت شما را بسیار زیباتر کنند.تنها مشکلی که این کامپوننتها دارند عملکرد غیردوستانه آنها است (آنها از هزاران Query استفاده می کنند). من استفاده از OpenSEF را به بقیه ترجیح می دهم و همانطور که به نظر می آید می تواند ترکیبی از قدرت، انعطاف پذیری و عملکرد است. همیشه به یاد داشته باشید که استفاده از SEF URLs یک معاوضه است.یک URL ظاهر زیباتری به یک موتور جستجو می دهد که می تواند استفاده کنندگان را به هدفشان برساند، اما برای بالا آمدن سایت زمان بیشتری لازم است. پیش از فعال سازی SEF URLها به آن خوب فکر کنید. کاری که شما میتوانید انجام دهید، بهینهسازی پایگاه داده است به صورت دورهای به وسیله حذف کردن URLهای نامعتبر و منتشرنشده از پایگاه داده OpenSEF است (یک گزینه در بخش مدیریت OpenSEF)
تاحد امکان ذخیرهسازی (caching) را فعال کنید:
اگر می توانید، ذخیرهسازی محتوای هستهی جوملا را فعال کنید، این کار به شما سرعت بیشتری میدهد وقتی شما در حال نظاره محتوا و ماژولها هستید (لازم نیست هر زمان که صفحه بالا می آید مامبوتها را پردازش کنید). اگر شما واقعاً می خواهید که سرعت را برای کاربران ثبت نشده افزایش دهید، نگاهی به کامپوننت ذخیرهسازی صفحه بیاندازید که می تواند کل صفحات را ذخیره سازد. احتمالاً این بهترین کاری است که شما می توانید برای پیدا کردن کاربران ثبت نشده، انجام دهید (بیشتر کاربران برای ٪95 از وبسایتها).این به این معنا نیست که شما میتوانید بقیه این بهینهسازیها را فراموش کنید و به خاطر این که کاربران ثبت شده همچنان همان سایت ذخیرهنشده را خواهند دید.
یافتن Queryهای بد:
از پیکربندی کلی جوملا، خطازدایی را فعال سازید.سپس به سایت نگاه کنید و مرتب بودن Queryهای پایگاه داده را بررسی کنید. شما میخواهید این تعداد در کمترین حد خود باشند (کمتر از 30، ترجیحا، اما کمتر از 50 هم اکتفا میکند). با نگاه کردن به Queryهای بازگشتی آغاز کنید (آنها را دوباره و دوباره مرتب کنید). شما باید قادر باشید تا بگویید که کدام امکان در حال تولید Query است، تنها با توجه به جدولی که به آن مینگرید. (برای مثال *Select* از _job_openset_configمتعلق به OpenSEF است). دو راه برای مواجهه با Queryهای در حال اجرا وجود دارد. شما میتوانید آن امکان را غیرفعال کنید یا با گسترشدهنده تماس بگیرد تا آن امکان را بهینهسازی کند (چه گسترشدهنده خود امکان یا یک گسترشدهنده قراردادی مانند من). از پلهای ارتباطی دوری کنید:
یکی از محبوبترین متدها برای اضافه کردن توابع جدید به جوملااز طریق یک پل ارتباطی است.این کار شامل تغییراتی سطحی هسته جوملا و یا نرم افزارهای دیگر هم می شود (مانند SMF و یا Gallery2) برای فراهم ساختن تابعی از هردوی آنها. از لحاظ ظاهری، زیبا به نظر میرسد زیرا نرم افزارهای دیگر بسیار تصفیه شدهتر و دارای تابعهای بیشتری نسبت به امکانات قابل دسترسی جوملاهستند اما درزیر یک داستان متفاوت دارد.مشکل این جاست که آنها دو سیستم جدا و مستقل از یکدیگر هستند. این به این معنا است که هر کدام باید هسته خود را بارگذاری (شامل frameworks، مدیریت کاربران و غیره). این یک خطای بزرگ است زیرا شما برای صفحه، عملاً دو صفحه را بارگذاری میکنید. برای عملکرد با ارزشتر،از دست دادن توابع بسیار کوچک در رفتن از SMF به سوی چیزی چون fireboard بسیار خوب است.
بهینهسازی پایگاه داده:
یکی از چیزهایی که نصب جوملا را تحت فشار قرار می دهد سرور پایگاه داده است. دو راه اصلی وجود دارد که پایگاه داده را بهینهسازی کنید. بهینهسازی جدولها و بهینهسازی شِما (Schema). فرق آنها این است که جدولها نشان دهنده چگونگی ذخیره کردن جدولها در داده است و شِما نشان دهنده این که آنها چطور باید ذخیره شوند.شِما فقط باید یک بار بهینهسازی شود در حالی که جدولها باید مرتبا ًبهینهسازی شوند (تا وقتی که داده اضافه شود، تنظیم شود و حذف شود).برای بهینهسازی جدولها به phpmyAdmin بروید، همه جدولها را انتخاب کنید و بر روی بهینهسازی کلیک کنید.
بهینهسازی قالب:
یکی از معمولترین مشکلاتی که در جوملا (یا هر سایت دیگری) دیدهایم، طراحی هزاران قالب است که بیشتر آنها بسیار زیبا به نظر میرسند ولی خطاهای سختی در عملکرد دارند. مشکل اینجاست که برخی از این تعداد زیادی تصاویر جدا در صفحه را نمایش میدهندکه هر تصویر یک درخواست جدید را به وجود میآورد (که به بین 1/ 0تا 1 ثانیه به تأخیر شبکه اضافه میکند) که حتماً باید Download شوند. یک سایت بزرگ وجود دارد که کمک میکند تا ما تشخیص بدهیم چه بهینه سازی قالبی باید انجام بشود و اطمینان کسب کنیم که بعد از هر تغییر بزرگ می توانید سایتتان را از این طریق اجرا کنید (TheWebsite Analyzer)
استفاده ازGzip:
رمز گذاری صفحات با Gzip در اکثرموارد جواب می دهد...اگر پردازشگر سرور شما سریعتر از پهنای باند شماست، فعالسازی Gzip compression حقیقتاً سرعت سایت شما را افزایش خواهد داد. Gzip کردن صفحات به یک CPU پرقدرت نیاز دارد. اگر سایت شما سریع بالا نمیآید،Gzip را فعال کنید(مخصوصاً در سرورهای با سرعت بالا). احتمالاً اگر به نتیجه نرسیدید یا از هاست اخطار CPU دریافت کردید، Gzip را غیرفعال کنید. این کار میتواند به شما آسیب زند، اما اکثر اوقات این کار به شما کمک می کند. تنها راه فهمیدن، امتحان کردن آن است.
تمامی کامپوننتها، کامپوننتهای خوبی نیستند:
اگر به پوشه امکانات جوملا نگاهی بیندازید. کامپوننت های زیادی را مشاهده خواهید کرد که بعضی از این آن ها واقعاً بی تأثیر هستند وسبب افت سرعت در سایت می شوند. اگر شما به دنبال یک راه آسان برای شناسایی کامپوننتهای کند هستید که ممکن است از آنها استفاده هم میکنید، می خواهید، کامپوننت my page caching راا نصب کنید، اما caching را فعال نکنید بعد از یک هفته یا بیشتر، به سراغ فهرستی که تولید شده بروید وURL های کند را پیدا کنید.آن کامپوننتها به شما نشان خواهند داد که کدامشان از بقیه کندتر هستند.
.
SEF، سرور دوستانهای (Server Friendly) نیست:
یکی از بهترین کارهایی که شما می توانید برای سایت خود انجام دهید، این است که کاری کنید تا URLها بهتر و زیباتر به نظر برسند. هستهی جوملا کار را به شکل قابل قبولی انجام میدهد اما کامپوننتهای اضافی کارآمدی هستند که می توانند URLهای سایت شما را بسیار زیباتر کنند.تنها مشکلی که این کامپوننتها دارند عملکرد غیردوستانه آنها است (آنها از هزاران Query استفاده می کنند). من استفاده از OpenSEF را به بقیه ترجیح می دهم و همانطور که به نظر می آید می تواند ترکیبی از قدرت، انعطاف پذیری و عملکرد است. همیشه به یاد داشته باشید که استفاده از SEF URLs یک معاوضه است.یک URL ظاهر زیباتری به یک موتور جستجو می دهد که می تواند استفاده کنندگان را به هدفشان برساند، اما برای بالا آمدن سایت زمان بیشتری لازم است. پیش از فعال سازی SEF URLها به آن خوب فکر کنید. کاری که شما میتوانید انجام دهید، بهینهسازی پایگاه داده است به صورت دورهای به وسیله حذف کردن URLهای نامعتبر و منتشرنشده از پایگاه داده OpenSEF است (یک گزینه در بخش مدیریت OpenSEF)
تاحد امکان ذخیرهسازی (caching) را فعال کنید:
اگر می توانید، ذخیرهسازی محتوای هستهی جوملا را فعال کنید، این کار به شما سرعت بیشتری میدهد وقتی شما در حال نظاره محتوا و ماژولها هستید (لازم نیست هر زمان که صفحه بالا می آید مامبوتها را پردازش کنید). اگر شما واقعاً می خواهید که سرعت را برای کاربران ثبت نشده افزایش دهید، نگاهی به کامپوننت ذخیرهسازی صفحه بیاندازید که می تواند کل صفحات را ذخیره سازد. احتمالاً این بهترین کاری است که شما می توانید برای پیدا کردن کاربران ثبت نشده، انجام دهید (بیشتر کاربران برای ٪95 از وبسایتها).این به این معنا نیست که شما میتوانید بقیه این بهینهسازیها را فراموش کنید و به خاطر این که کاربران ثبت شده همچنان همان سایت ذخیرهنشده را خواهند دید.
یافتن Queryهای بد:
از پیکربندی کلی جوملا، خطازدایی را فعال سازید.سپس به سایت نگاه کنید و مرتب بودن Queryهای پایگاه داده را بررسی کنید. شما میخواهید این تعداد در کمترین حد خود باشند (کمتر از 30، ترجیحا، اما کمتر از 50 هم اکتفا میکند). با نگاه کردن به Queryهای بازگشتی آغاز کنید (آنها را دوباره و دوباره مرتب کنید). شما باید قادر باشید تا بگویید که کدام امکان در حال تولید Query است، تنها با توجه به جدولی که به آن مینگرید. (برای مثال *Select* از _job_openset_configمتعلق به OpenSEF است). دو راه برای مواجهه با Queryهای در حال اجرا وجود دارد. شما میتوانید آن امکان را غیرفعال کنید یا با گسترشدهنده تماس بگیرد تا آن امکان را بهینهسازی کند (چه گسترشدهنده خود امکان یا یک گسترشدهنده قراردادی مانند من). از پلهای ارتباطی دوری کنید:
یکی از محبوبترین متدها برای اضافه کردن توابع جدید به جوملااز طریق یک پل ارتباطی است.این کار شامل تغییراتی سطحی هسته جوملا و یا نرم افزارهای دیگر هم می شود (مانند SMF و یا Gallery2) برای فراهم ساختن تابعی از هردوی آنها. از لحاظ ظاهری، زیبا به نظر میرسد زیرا نرم افزارهای دیگر بسیار تصفیه شدهتر و دارای تابعهای بیشتری نسبت به امکانات قابل دسترسی جوملاهستند اما درزیر یک داستان متفاوت دارد.مشکل این جاست که آنها دو سیستم جدا و مستقل از یکدیگر هستند. این به این معنا است که هر کدام باید هسته خود را بارگذاری (شامل frameworks، مدیریت کاربران و غیره). این یک خطای بزرگ است زیرا شما برای صفحه، عملاً دو صفحه را بارگذاری میکنید. برای عملکرد با ارزشتر،از دست دادن توابع بسیار کوچک در رفتن از SMF به سوی چیزی چون fireboard بسیار خوب است.
بهینهسازی پایگاه داده:
یکی از چیزهایی که نصب جوملا را تحت فشار قرار می دهد سرور پایگاه داده است. دو راه اصلی وجود دارد که پایگاه داده را بهینهسازی کنید. بهینهسازی جدولها و بهینهسازی شِما (Schema). فرق آنها این است که جدولها نشان دهنده چگونگی ذخیره کردن جدولها در داده است و شِما نشان دهنده این که آنها چطور باید ذخیره شوند.شِما فقط باید یک بار بهینهسازی شود در حالی که جدولها باید مرتبا ًبهینهسازی شوند (تا وقتی که داده اضافه شود، تنظیم شود و حذف شود).برای بهینهسازی جدولها به phpmyAdmin بروید، همه جدولها را انتخاب کنید و بر روی بهینهسازی کلیک کنید.