۳ روش قدرتمند برای اینکه کدهایتان سریع تر اجرا شود!
کد خوب، تمیز، محکم و سریع است. اولین تجربه من در سریع تر کردن کدهای یک برنامه کاربردی SPP بود، که بیش از ۳۰ هزار خط کد داشت. این برنامه در بارگذاری داده ها بسیار کند بود و کاربران از کار با آن اصلا راضی نبودند، البته باید اقرار کنم که برنامه خیلی خوب نوشته شده بود، تمام فراخوانی های دیتابیس بهینه سازی شده بود، حلقه ها فقط در صورت نیاز استفاده می شدند و قواعد ماژولاریتی به خوبی در برنامه لحاظ شده بود.
برای دو روز تمام بر روی این برنامه کار کردم و تست های مختلفی را روی آن آزمایش کردم و منطق برنامه را بررسی کردم، اما نتوانستم چیزی را که این برنامه را کند کرده بود، پیدا کنم. دیگر ناامید شده بودم که روز سوم مشکل را پیدا کردم. مشکل دستور wait به مدت ۲۰ ثانیه بود، که در یکی از بارگذاری های صفحات لحاظ شده بود :
WAIT FOR 20 SECONDS.
به نظرم توسعه دهندگانی که بر روی این برنامه کار کرده بودند، برای تست این دستور را نوشته بودند، اما در زمان انتشار برنامه فراموش کرده بودند آن را از بین ببرند و این کد در برنامه منتشر شده و در دست کاربران قرار گرفته بود و باعث به وجود آمدن مشکلات زیادی برای آنها شده بود. بلافاصله بعد از حذف این دستور برنامه سریعاً اجرا شد.
تا حالا به این جمله توجه کرده اید که گفته میشود بهینه سازی کد یک شمشیر دولبه است. بهینه سازی نرم افزار چیز بسیار خوبی است اما همه چیز را گارانتی نمی کند. اگر شما نرم افزار خود را برای چیزهای نادرست بهینه سازی کنید و یا به روش اشتباه این کار را انجام دهید، این بهینه سازی تنها هزینه های شما را بالا می برد و مراحل تولید برنامه را کند میکند.
پس نرمافزار خود را برای اهداف خاصی بهینه سازی کنید. اما اغلب اوقات یک چالش جدی پیش روی شماست، سرعت ممکن است برای شما در بهره برداری از منابع هزینه داشته باشد و استفاده موثر از ذخیرهسازی به راحتی میتواند کارها را آهسته کند. در این مقاله به نکاتی اشاره کرده ام که میتوانید از آنها برای بهینه کردن کدهایتان استفاده کنید، با این نکات همچنین می توانید میزان استرس خود را در زمان استفاده از ابزارها و پایگاه های داده کاهش دهید.
انجامش ندهید
اولین اصل از بهینه سازی انجام ندادن است. آیا این برنامه به اندازه کافی خوب عمل می کند؟ بدانید که برنامه شما چگونه مورد استفاده قرار میگیرد و محیطی که در آن اجرا میشود را ارزیابی کنید. آیا سودی در قبال سریع تر ساختن برنامه عاید شما می شود؟
اینها همه سوالاتی هستند که باید قبل از بهینه سازی از خود بپرسید. بله بهینه سازی برای زمانی که برنامه شما از اهمیت بالایی برخوردار است و یا سرعت آن کند است میتواند منطقی باشد و انتظار میرود در حین حفظ استحکام، صحت و شفافیت، سریع تر هم ساخته شود. برنامه سریعی که نتیجه غلطی تولید میکند برای هیچکس قابل قبول نیست، مزایای نرم افزار بهینه شده نسبت به نرم افزاری که هنوز بهینه نشده است بیشتر است، اما اگر شما این کار را اشتباه انجام دهید نتیجه برعکس خواهد شد.
پس اولین کار شما هدف گذاری برای بهینه سازی است، باید درک درستی از چیزی که می خواهید به آن برسید داشته باشید و چگونگی رسیدن به بهینه سازی مورد نظر برای آن اهداف را بدانید. هدف شما باید ساده و شفاف باشد طوری که مدیران بخش فناوری بتوانند آن را درک کنند.
بعد از تعیین هدف باید در طول فرآیند به آن پایبند باشید، بهترین کار برای شروع اولویتبندی است. باید بر اساس تاثیری که بر روی هدف میگذارید، کار کنید. کارهایی که انجام می دهید همه باید قابل اندازهگیری باشند.
باید لیستی از مشخصات برنامه تهیه کنید
هیچ چیزی را تا زمانی که مشخصات برنامه را استخراج نکرده اید، تنظیم نکنید، بزرگترین اشتباه رایج در بهینه سازی این است که برای قسمتهایی که بخش کوچکی از کار را تشکیل می دهند، یک روز تمام وقت بگذارید و کار بهینه سازی را انجام دهید. یک پروفایل و یا لیستی از مشخصات جایی را نشان می دهد که برنامه وقت خود را می گذراند.
برخی از پروفایل ها تمام عملکرد ها را لیست می کنند و یا حتی تعداد فراخوانی آنها و زمانی که برای اجرا مصرف می کنند را تعیین می کنند. بزرگترین مزیت داشتن لیستی از مشخصات این است که نقاط حساس برنامه عملکردها و قسمت هایی از برنامه که اغلب زمان محاسبات را مصرف میکنند، مشخص میشود.
بهترین راه برای استفاده از لیست مشخصات، بهبود آنها تا حد امکان و سپس اندازه گیری مجدد آنهاست تا اطمینان حاصل کنیم به نتیجه دلخواه رسیدیم.
بهینه ساز کامپایلر را فعال کنید
معمولاً یک روش مطمئن برای بهینه سازی این است که بهینهساز داخلی کامپایلر را فعال کنید، بهینه سازهای کامپایلر زمان اجرا را تا حدودی بهبود می بخشند، گاهی اوقات هم این بهینه ساز ها می توانند باعث کندی برنامه شوند، پس قبل از استفاده از آنها وضعیت برنامه خود را بررسی کنید. البته لازم به ذکر است که کامپایلر های مدرن در این زمینهها به خوبی عمل می کنند و جای هیچ نگرانی نیست.
برخی کامپیوترهای مدرن دارای بهینه ساز های سراسری هستند که کل برنامه را برای افزایش کارایی آنالیز میکند، اگر چنین کامپایلر هایی را روی سیستم خود دارید حتماً از آن استفاده کنید، نکته اینجاست که هر چه بیشتر کامپایلر عمل بهینه سازی را انجام دهد، احتمال بیشتری برای جمعآوری باگ ها و خطاهای برنامه وجود دارد.
#سریعتر کردن برنامه #بهینه کردن برنامه
منبع: لرن سورس