
In-Depth Advice for Tuning and Programming Java 8, 11, and Beyond
هنگامی که صحبت از بهینهسازی عملکرد در برنامههای نوشته شده با زبان جاوا به میان میآید، بسیاری از توسعهدهندگان تصور میکنند که با توجه به بلوغ این زبان، دیگر نیازی به درگیری مستقیم با مفاهیم پیچیده بهینهسازی ندارند. با این حال، حقیقت این است که حتی در پروژههای مدرن، گلوگاههای سیستم و ناکارآمدیهای الگوریتمی میتوانند به شدت روی کیفیت نهایی محصول تاثیر بگذارند. زمان زیادی از توسعهدهندگان صرف برطرف کردن مشکلاتی میشود که مستقیماً به الگوریتمها مرتبط هستند؛ برای مثال، مواجهه با کدهایی که از الگوریتمهایی با پیچیدگی زمانی O(n2)O(n^2)O(n2) استفاده میکنند، در حالی که میتوانستند با استفاده از روشهای بهینهتر به پیچیدگی زمانی O(logn)O(\log n)O(logn) دست یابند.
با کمی تامل متوجه میشویم که مفاهیمی مانند عملکرد سیستم زبالهروب، کارایی کامپایلر ماشین مجازی جاوا و نحوه دریافت بیشترین بازدهی از رابطهای برنامهنویسی کاربردی جاوا همچنان از مهمترین دغدغههای روزمره مهندسان نرمافزار به شمار میروند. این کتاب به شما کمک میکند تا این توهم که «جاوا دیگر نیازی به بهینهسازی ندارد» را کنار بگذارید و با دیدی تحلیلی به بررسی عمیق سیستم بپردازید.
برای درک بهتر جایگاه فعلی عملکرد این زبان، باید به مسیر طی شده در بیش از دو دهه گذشته نگاهی بیندازیم. پیشرفتهای عظیمی در زمینه سرعت و کارایی ماشین مجازی جاوا صورت گرفته است.
در اواخر دهه نود میلادی، تنها معیار واقعی برای سنجش عملکرد، ابزارهای ابتدایی ارزیابی بودند. در آن زمان، معماری زبان به گونهای بود که نسخه اولیه تقریباً به صورت کامل تفسیر میشد. اما با معرفی کامپایلرهای در لحظه، عملکرد برنامهها تا هشت برابر افزایش یافت. این یک دستاورد مهندسی بینظیر بود. امروزه، با وجود اینکه کامپایلرها همچنان در حال بهبود هستند، دستیابی به چنین جهشهای عملکردی ناگهانی بسیار دشوارتر شده است. این روند برای تمام نرمافزارهای بالغ صادق است؛ در ابتدای پروژه، یافتن تغییرات معماری که منجر به بهبودهای چشمگیر شود آسان است، اما در یک سیستم بالغ، یافتن و رفع گلوگاههای پنهان نیازمند دانش عمیق و تخصصی است که این کتاب به طور کامل آن را پوشش میدهد.
تغییرات محیطی در دنیای محاسبات، دغدغههای مربوط به عملکرد را به شدت دستخوش تغییر کرده است. امروزه مهندسان با دو طیف کاملاً متفاوت از چالشها روبرو هستند که این اثر به صورت موشکافانه به هر دو طیف میپردازد.
از یک سو، رشد روزافزون رایانش ابری باعث شده تا استفاده از ماشینهای کوچک با منابع پردازشی و حافظه محدود بسیار رایج شود. شرکتها برای کاهش هزینهها، برنامههای خود را روی سیستمعاملهای مجازی با دسترسی به تنها یک واحد پردازش مرکزی اجرا میکنند. در این محیطهای به شدت محدود، مدیریت صحیح و بهینه مقادیر اندک حافظه و استفاده حداکثری از حداقل منابع پردازشی، تفاوت بین یک برنامه موفق و یک سیستم شکستخورده را رقم میزند.
کلمات کلیدی:از سوی دیگر، ماشینهای بسیار قدرتمند با ظرفیت حافظه فوقالعاده بالا نیز به وفور در سازمانهای بزرگ استفاده میشوند. ماشین مجازی جاوا برای پاسخگویی به این نیاز، سیستمهای زبالهروب نوینی را معرفی کرده است. این تکنولوژیهای جدید، با وجود کارایی بالا، نیازمند تنظیمات دستی دقیقتر و درک عمیقتری نسبت به نسلهای گذشته خود هستند. این کتاب تنظیمات این سیستمهای پیچیده را به صورت گامبهگام به شما آموزش میدهد.
این اثر یک راهنمای سطحی برای حل مشکلات اورژانسی نیست. اگر سایت شما دچار افت سرعت شدید شده و به دنبال یک راهکار سریع برای فردا صبح هستید، این کتاب مناسب شما نخواهد بود. هدف اصلی این اثر، پرورش تفکر تحلیلی و مهندسی در مواجهه با چالشهای عملکردی است.
برای توسعهدهندگانی که با زبان جاوا کدنویسی میکنند، اما از نحوه عملکرد داخلی ماشین مجازی آن بیاطلاع هستند، این کتاب یک پل ارتباطی حیاتی است. صدها پارامتر تنظیمی مختلف برای ماشین مجازی وجود دارد و بهینهسازی نباید صرفاً بر اساس آزمون و خطای کورکورانه انجام شود. شما با مطالعه این اثر، دقیقاً درک خواهید کرد که هر پارامتر چه تاثیری بر رفتار سیستم و مدیریت حافظه میگذارد.
بسیاری از مهندسان تست و تضمین کیفیت ممکن است در نوشتن کدهای پیچیده مهارت نداشته باشند، اما وظیفه دارند بیشترین بازدهی را از سیستم استخراج کنند. این کتاب بخشهای مجزایی دارد که بدون نیاز به درگیری مستقیم با کدنویسی، نحوه تغییر رفتار ماشین مجازی و استفاده از ابزارهای ارزیابی را به این دسته از متخصصان میآموزد.
با تغییر چرخه انتشار زبان جاوا به دورههای ششماهه و نسخههای پشتیبانی بلندمدت، نیاز به بهروزرسانی دانش بهینهسازی بیش از پیش احساس میشود.
این ویرایش با تمرکز بر نسخههای بالغ هشت و یازده نوشته شده است. بهروزرسانیهای اساسی در سیستم زبالهروب و ابزارهای ثبت وقایع پرواز جاوا در این نسخه به تفصیل بررسی شدهاند. همچنین رفتار سیستم در محیطهای مبتنی بر کانتینر که امروزه استاندارد صنعت نرمافزار محسوب میشوند، به دقت تحلیل شده است.
معرفی ابزارهای جدید برای ارزیابیهای خرد، کامپایلرهای در لحظه نوین، به اشتراکگذاری دادههای کلاس برنامهها و ویژگیهای جدیدی مانند رشتههای فشرده، از دیگر مباحثی است که این کتاب را به جامعترین مرجع فعلی برای متخصصان حرفهای نرمافزار تبدیل کرده است.
نمونه چاپ کتاب موجود نیست.
نظرات کاربران (0)