توسعهدهندگان شبیهساز RPCS3 موفق شدند با بازنگری در ساختار مدیریت حافظه، سرعت بازکامپایل دادهها را بهشکل چشمگیری ارتقا دهند. این دستاورد فنی بار پردازشی را میان هستهها متعادلتر میکند و زمان آمادهسازی بازیهای پیچیدهی پلی استیشن ۳ را به حداقل میرساند.
بهگزارش آیاکسبیتی گیمز، یکی از توسعهدهندگان پروژهی RPCS3 با نام مستعار Megamouse متوجه شد که پس از ساخت ماژولهای اولیه، کامپایل بخش PPU تنها حدود ۲۰ درصد از ظرفیت پردازنده مرکزی را درگیر میکند. بررسیهای بیشتر مشخص کرد که گلوگاه اصلی به فرآیند تخصیص و آزادسازی حافظه در LLVM مربوط میشود که بهدلیل قفلهای مشترک، بخش زیادی از رشتههای پردازشی را معطل نگه میداشت.
مگاموس، توسعهدهنده پروژه، گفت:
«جستوجوی من مرا به عملیات تخصیص و آزادسازی حافظه در LLVM رساند؛ بهنظر میرسد همه آنها از یک قفل مشترک استفاده میکنند. مشکل اینجاست که با گذشت زمان، حافظه تکهتکه میشود و رشتههای متعددی باید منتظر بمانند تا دوباره یک بلوک پیوسته و به اندازه کافی بزرگ آزاد شود.»
راهکار ارائهشده برای رفع این اختلال، مهاجرت به مکانیزم تخصیص حافظهی SegmentHeap در ویندوز است. در جریان آزمایش بازی Gran Turismo 6 روی سیستمی مجهز به پردازندهی Ryzen 9 9950X3D، زمان لازم برای بازکامپایل PPU و SPU از دو دقیقه و ۵۰ ثانیه به یک دقیقه و ۵۵ ثانیه کاهش یافت که جهشی ۴۸ درصدی را نشان میدهد. مگاموس، توسعهدهنده پروژه گفت:
«نمیدانم آیا [SegmentHeap] چیزی را خراب میکند یا چگونه بر عملکرد کلی اثر میگذارد. اما اکنون هنگام کامپایل PPU، پردازنده من تقریبا بهطور مداوم با ظرفیت نزدیک به ۱۰۰ درصد کار میکند و خود فرآیند کامپایل بیش از سه برابر سریعتر شده است.»
بهکارگیری این قابلیت فعلا نیازمند آزمایشهای تکمیلی روی پیکربندیهای مختلف سختافزاری است تا از پایداری کامل شبیهساز اطمینان حاصل شود.






