इस प्रोजेक्ट के बारे में
LargePageInjectorMods: Stellaris, Factorio और अन्य गेम/एप्लिकेशन्स के लिए
परिचय
LargePageInjectorMods में आपका स्वागत है! यह मॉड Stellaris या अन्य गेम/एप्लिकेशन्स के प्रदर्शन को मेमोरी प्रबंधन को अनुकूलित करके काफी हद तक बढ़ाता है।
दूसरे गेम/एप्लिकेशन्स के लिए सपोर्ट अत्यधिक प्रयोगात्मक है और परीक्षण नहीं किया गया है, जो काम नहीं कर सकता।
मेमोरी एलोकेटर क्या है?
मेमोरी एलोकेटर एक सॉफ्टवेयर घटक है जो प्रोग्राम के निष्पादन के दौरान मेमोरी के आवंटन और मुक्त करने का प्रबंधन करता है। कुशल मेमोरी आवंटन Stellaris या Factorio जैसे गेम्स में महत्वपूर्ण है, क्योंकि इससे प्रदर्शन में सुधार होता है। इस मॉड में पेश किए गए अधिक कुशल एलोकेटर का उपयोग करके, गेम का प्रदर्शन ध्यान देने योग्य रूप से बेहतर हो सकता है।
mimalloc क्यों?
Microsoft द्वारा विकसित mimalloc एक उन्नत मेमोरी एलोकेटर है जो आमतौर पर गति और मेमोरी खंडन दक्षता में मानक एलोकेटरों से बेहतर प्रदर्शन करता है। इस मॉड के माध्यम से Stellaris, Factorio या अन्य गेम/एप्लिकेशन्स में mimalloc को एकीकृत करके, गेम को तेज़ मेमोरी ऑपरेशंस का लाभ मिलता है, जिससे समग्र प्रदर्शन में सुधार होता है।
DLL इंजेक्शन के बारे में
DLL (डायनेमिक लिंक लाइब्रेरी) इंजेक्शन एक तरीका है जो किसी अन्य प्रक्रिया के पते स्थान के भीतर कोड चलाने के लिए उपयोग किया जाता है, जिससे उसे एक डायनेमिक-लिंक लाइब्रेरी लोड करने के लिए मजबूर किया जाता है। LargePageInjectorMods में, हम DLL इंजेक्शन का उपयोग गेम के डिफ़ॉल्ट मेमोरी एलोकेटर को बिना गेम के निष्पादन योग्य फाइलों में बदलाव किए, mimalloc से बदलने के लिए करते हैं।
प्रदर्शन में सुधार
LargePageInjectorMods महत्वपूर्ण प्रदर्शन बढ़ावा प्रदान कर सकता है (प्रदर्शन केवल Stellaris के लिए परीक्षण किया गया है):
- मानक प्रदर्शन वृद्धि: 4-5% की छोटी प्रदर्शन वृद्धि, जो परिस्थितियों के आधार पर पूरी तरह से नगण्य या काफी बड़ी हो सकती है।
- Large Pages के साथ बढ़ाया प्रदर्शन: जब Large Pages सक्षम किया जाता है, तो मॉड 5-80%+ प्रदर्शन वृद्धि प्रदान कर सकता है।
- Factorio के लिए Ryzen 7800X3D के साथ बेंचमार्क परिणाम:
- Large Page Injector Mods के बिना: 46 UPS
- Large Page Injector Mods और Large Pages के साथ: 54 UPS
कृपया ध्यान दें कि प्रदर्शन वृद्धि आपके सेव (गेम में जितना आगे होंगे और सेव जितना भारी होगा, प्रदर्शन वृद्धि उतनी ही अधिक होगी), आपके हार्डवेयर (आमतौर पर कमजोर हार्डवेयर पर प्रदर्शन लाभ अधिक होता है), आप जो मॉड्स उपयोग कर रहे हैं, और अन्य कारकों के आधार पर काफी भिन्न हो सकती है। आपका प्रदर्शन लाभ उपरोक्त उल्लिखित किसी भी चीज़ से काफी छोटा या बड़ा हो सकता है। कमजोर हार्डवेयर वाले किसी व्यक्ति ने 80% प्रदर्शन वृद्धि की रिपोर्ट की है, इसलिए बड़े लाभ असंभव नहीं हैं।
मानक स्थापना
1. मॉड डाउनलोड करें: अपने गेम/गेम संस्करण के लिए ZIP फाइल [Releases Page](https://github.com/KeinNiemand/LargePageInjectorMods/releases) से डाउनलोड करें।
अस्वीकरण: कुछ एंटीवायरस (जिसमें Windows Defender भी शामिल है) Injector.exe को मालवेयर के रूप में गलत तरीके से पहचान सकते हैं, यह एक झूठी पॉजिटिव है क्योंकि एंटीवायरस DLL इंजेक्शन को संदिग्ध मानते हैं। यदि आप मुझे भरोसा नहीं करते हैं, तो आप स्रोत कोड पढ़ सकते हैं और स्वयं संकलित कर सकते हैं।
2. गेम निष्पादन योग्य निर्देशिका का पता लगाएं: उस निर्देशिका का पता लगाएं जहाँ Stellaris/Factorio/जो भी गेम आप इस पर आज़माना चाहते हैं, स्थापित है (वही फोल्डर जहाँ stellaris.exe, factorio.exe या गेम का निष्पादन योग्य आमतौर पर स्थित है)।
3. फाइलें निकालें: डाउनलोड की गई ZIP फाइल से सभी फाइलों को Stellaris स्थापना फोल्डर में खींचें। यदि संकेत दिया जाए तो फाइलों को बदलने के लिए "हाँ" पर क्लिक करें।
4. Stellaris: गेम को सामान्य रूप से चलाएं, शामिल launcher-settings.json परडॉक्स लॉन्चर को इंजेक्टर चलाने के लिए कॉन्फ़िगर करता है जो फिर गेम चलाता है। यदि सफल होता है तो गेम को खुलने में कुछ अतिरिक्त सेकंड लगेंगे और गेम खुलने से पहले एक छोटी बीप आवाज़ सुनाई देगी जो सफलता को इंगित करती है। कृपया ध्यान दें कि यदि गेम अपडेट होता है तो आपको launcher-config.json फाइल को फिर से बदलना पड़ सकता है।
अन्य गेम: गेम शुरू करने के बजाय Injector.exe चलाएं।
उन्नत स्थापना Large Pages के लिए
प्रदर्शन को और बढ़ाने के लिए Large Pages सक्षम करने के लिए, इन चरणों का पालन करें:
1. LockPagesInMemory विशेषाधिकार प्रदान करें
सबसे पहले, अपने Windows उपयोगकर्ता को LockPagesInMemory विशेषाधिकार प्रदान करें:
LockPagesInMemory विशेषाधिकार कैसे प्रदान करें
यह विशेषाधिकार Large Pages को सक्षम करने के लिए आवश्यक है और इसे Local Security Policy editor (secpol) के माध्यम से प्रदान किया जा सकता है:
1. Win + R दबाएं, secpol.msc टाइप करें, और Enter दबाएं।
2. Security Settings -> Local Policies -> User Rights Assignment पर नेविगेट करें।
3. "Lock pages in memory" ढूंढें और उस पर डबल-क्लिक करें।
4. "Add User or Group" चुनें और अपना उपयोगकर्ता खाता जोड़ें।
5. परिवर्तनों को लागू करें और अपने कंप्यूटर को पुनरारंभ करें ताकि परिवर्तन प्रभावी हों।
अधिक विस्तृत निर्देशों के लिए, [Microsoft दस्तावेज़](https://learn.microsoft.com/en-us/windows/security/threat-protection/security-policy-settings/lock-pages-in-memory) देखें।
2. Large Pages के लिए RAM सेट करें
LargePageInjectormods.toml में MIMALLOC_RESERVE_HUGE_OS_PAGES चर को 1 या उससे अधिक (डिफ़ॉल्ट 8) पर सेट करें। यह मूल्य Large Pages के लिए आरक्षित GB RAM को दर्शाता है, आदर्श रूप से उस गेम/एप्लिकेशन के लिए आमतौर पर उपयोग की जाने वाली RAM से अधिक जो आप चलाना चाहते हैं।
3. सिस्टम आवश्यकताएं और सिफारिशें
- 16GB से कम RAM: Large Pages प्रभावी नहीं हो सकते।
- 16GB RAM: पर्यावरण चर को 4 से अधिक नहीं सेट करें। इसमें पीसी पुनरारंभ और अनावश्यक ऑटो-स्टार्ट को अक्षम करने की आवश्यकता हो सकती है ताकि पर्याप्त निरंतर RAM सुनिश्चित हो सके।
- 32GB RAM या अधिक: चर को 4 और 8 के बीच सेट करने की सिफारिश की जाती है।
नोट: अपर्याप्त निरंतर RAM से मेमोरी खंडन समस्याएं हो सकती हैं।
तृतीय-पक्ष लाइब्रेरी और क्रेडिट
यह मॉड निम्न तृतीय-पक्ष लाइब्रेरी का उपयोग करता है:
- Mimalloc: [Mimalloc GitHub](https://github.com/microsoft/mimalloc)
- Sigmatch: [Sigmatch GitHub](https://github.com/SpriteOvO/sigmatch)
- Hooking by Example: [Hooking By Example Github](https://github.com/khalladay/hooking-by-example)
- Toml11: [Toml11 GitHub](https://github.com/ToruNiina/toml11)
तृतीय-पक्ष लाइसेंस
- Mimalloc लाइसेंस: [Mimalloc लाइसेंस](https://github.com/KeinNiemand/LargePageInjectorMods/blob/master/3rdPartyLicences/MIMALLOC_LICENCE.txt)
- Sigmatch लाइसेंस: [Sigmatch लाइसेंस](https://github.com/KeinNiemand/LargePageInjectorMods/blob/master/3rdPartyLicences/sigmatch_LICENSE.txt)
- Hooking by Example लाइसेंस: [Hooking by Example लाइसेंस](https://github.com/khalladay/hooking-by-example/blob/master/LICENSE)
- Toml11 लाइसेंस: [Toml11 लाइसेंस](https://github.com/KeinNiemand/LargePageInjectorMods/blob/master/3rdPartyLicences/toml11_LICENSE.txt)
अनुकूलता
समर्थित गेम
- Stellaris
- Factorio
- Crusader Kings 2 (प्रायोगिक) - चलाने के लिए, CK2 के साथ ही फोल्डर में फाइलें निकालें और गेम शुरू करने के लिए injector.exe चलाएं। इस गेम के लिए कोई प्रदर्शन परीक्षण नहीं किए गए हैं।
इस मॉड को सूची के लिए परीक्षण किया गया है लेकिन यह अन्य गेम के लिए भी काम कर सकता है, बशर्ते वे 64 बिट नेटिव एप्लिकेशन्स हों और उसी C रनटाइम लाइब्रेरी का उपयोग करें। उन गेम/एप्लिकेशन्स के बारे में रिपोर्ट/सुझाव जिन पर आपने इसे सफलतापूर्वक उपयोग किया है, स्वागत योग्य हैं और मैं उन्हें समर्थित सूची में जोड़ सकता हूँ।
कृपया उन अनसपोर्टेड एप्लिकेशन्स से संबंधित किसी भी मुद्दों की रिपोर्ट न करें जो काम नहीं करते, जब तक कि आपके पास एक पुल अनुरोध न हो जो उन्हें काम करने योग्य बनाता हो।
यह समर्थित गेम के लिए सभी अन्य मॉड्स के साथ संगत होना चाहिए। यदि आपको कोई संगतता समस्याएं आती हैं, तो कृपया इस GitHub पृष्ठ के "Issues" अनुभाग में उनकी रिपोर्ट करें।
ज्ञात समस्याएं
- Stellaris 4.2: वर्तमान में Stellaris के इस संस्करण के साथ असंगत।
कॉन्फ़िगरेशन फाइल प्रारूप
कॉन्फ़िगरेशन फाइल का नाम LargePageInjectorMods.toml होना चाहिए। नमूना कॉन्फ़िगरेशन configs फोल्डर में प्रदान किए गए हैं। किसी नमूना कॉन्फ़िगरेशन का उपयोग करने के लिए, उसका नाम बदलकर LargePageInjectorMods.toml कर दें। कॉन्फ़िगरेशन फाइल को Injector.exe और उस गेम/एप्लिकेशन के साथ ही फोल्डर में होना चाहिए जो लॉन्च किया जाता है।
कॉन्फ़िगरेशन फाइल का उदाहरण (LargePageInjectorMods.toml)
LaunchPath = "stellaris.exe"
ModulesToPatch = ["stellaris.exe"]
Verbosity = 0
RedirectConsoleOutput = true
EnableBeep = true
[Environment]
MIMALLOC_RESERVE_HUGE_OS_PAGES = "8"
MIMALLOC_ARENA_EAGER_COMMIT = "1"
MIMALLOC_PURGE_DELAY = "10000"
MIMALLOC_RESET_DELAY = "10000"
योगदान
LargePageInjectorMods में योगदान का स्वागत है! यदि आपके पास सुधारों या बग फिक्स के सुझाव हैं, तो इस रिपॉजिटरी को फोर्क करें और एक पुल अनुरोध सबमिट करें।
लाइसेंस
यह परियोजना MIT लाइसेंस के तहत लाइसेंस प्राप्त है - विवरण के लिए [LICENSE](https://github.com/KeinNiemand/LargePageInjectorMods/blob/master/LICENSE) फाइल देखें।
धन्यवाद
- Stellaris टीम को उनके आकर्षक गेम के लिए धन्यवाद।
- Microsoft को mimalloc एलोकेटर विकसित करने के लिए धन्यवाद।
- सॉफ्टवेयर समुदाय में उनके योगदान के लिए Sigmatch के डेवलपर्स को विशेष धन्यवाद।
अस्वीकरण
यह मॉड Stellaris के निर्माताओं द्वारा आधिकारिक रूप से समर्थित नहीं है। अपने जोखिम पर उपयोग करें।
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.