किसी प्रोसेस पर मेमोरी का कितना दबाव है, यह 'बिना सोर्स फ़ाइल वाली आरएसएस मेमोरी + स्वैप मेमोरी' से पता चलता है. गेम को सही तरीके से चलाने के लिए, यह एक अहम मेट्रिक है. यह Android 17 और इसके बाद के वर्शन के लिए, मेमोरी लिमिटर की मेमोरी लिमिट थ्रेशोल्ड के साथ-साथ, Google Play Console में मेमोरी की ज़रूरी जानकारी के लिए स्टैंडर्ड बेंचमार्क के तौर पर काम करता है.
अनरियल इंजन में, रनटाइम या स्टैटिक तौर पर 'anonymous RSS + swap' से मेल खाने वाली मेमोरी के इस्तेमाल का सटीक आकलन करना मुश्किल है.
मेमोरी के इस्तेमाल को ट्रैक करने के लिए, Unreal Engine VmRSS + VmSwap
मेट्रिक उपलब्ध कराता है. भले ही, यह 'गुमनाम आरएसएस + स्वैप' से ज़्यादा व्यापक है, क्योंकि VmRSS में rssFile और rssShmem शामिल हैं, लेकिन यह अब भी एक भरोसेमंद अनुमान के तौर पर काम करता है.
अपने गेम की मेमोरी फ़ुटप्रिंट का विश्लेषण करने के लिए, यहां दिए गए दिशा-निर्देशों का पालन करें:
- C++ API का इस्तेमाल करके क्वेरी की मेमोरी ऐक्सेस करना
- कंसोल के निर्देशों का इस्तेमाल करके मेमोरी पर नज़र रखना
- Unreal Insights की मदद से मेमोरी को विज़ुअलाइज़ करना
- Perfetto का इस्तेमाल करके, मेमोरी के सटीक इस्तेमाल की पुष्टि करना
C++ API का इस्तेमाल करके मेमोरी के बारे में क्वेरी करना
मेमोरी मेट्रिक के बारे में क्वेरी करने के लिए, यहां दिए गए C++ API का इस्तेमाल करें:
मेमोरी से जुड़ी क्वेरी के लिए कम संसाधनों का इस्तेमाल करना
कम साइज़ वाली मेमोरी क्वेरी के लिए GetMemoryUsedFast का इस्तेमाल करें. Android पर, यह तरीका /proc/self/status से सिर्फ़ ज़रूरी मेमोरी फ़ील्ड को पार्स करके, अनुमानित फ़ुटप्रिंट दिखाता है. इसके लिए, पूरी फ़ाइल को पढ़ने की ज़रूरत नहीं होती.
मेमोरी के बारे में ज़्यादा जानकारी
प्लैटफ़ॉर्म की मेमोरी के बारे में ज़्यादा जानकारी वाले आंकड़े देखने के लिए, GetStats का इस्तेमाल करें. इस तरीके से, प्लैटफ़ॉर्म की मेमोरी के बारे में पूरी जानकारी मिलती है. साथ ही, FPlatformMemoryStats.UsedPhysical और FPlatformMemoryStats.RssFile, दोनों की जानकारी मिलती है. UsedPhysical, VmRSS और VmSwap का जोड़ है. इसलिए, इसमें से RssFile घटाकर, बेंचमार्क वैल्यू के करीब पहुंचा जा सकता है.
#include "HAL/PlatformMemory.h"
uint64 GetEstimatedPhysicalMemory()
{
FPlatformMemoryStats Stats = FPlatformMemory::GetStats();
#if PLATFORM_ANDROID
return Stats.UsedPhysical - Stats.RssFile;
#else
return Stats.UsedPhysical;
#endif
}
कंसोल कमांड का इस्तेमाल करके मेमोरी पर नज़र रखना
इस तरीके का इस्तेमाल करके, डिवाइस पर गेम चलने के दौरान मेमोरी के इस्तेमाल की निगरानी करें. कंसोल खोलने के लिए, स्क्रीन पर चार उंगलियों से टैप करें. इसके बाद, यहां दिए गए निर्देश डालें.
| निर्देश | ब्यौरा |
|---|---|
stat unit |
यह Mem लाइन में, फ़िज़िकल मेमोरी के मौजूदा कुल इस्तेमाल को दिखाता है. इसे हर फ़्रेम पर अपडेट किया जाता है. |
stat unitmax |
यह Mem लाइन में, फ़िज़िकल और वर्चुअल मेमोरी के कुल इस्तेमाल की औसत और सेशन की सबसे ज़्यादा जानकारी दिखाता है. |
stat unit ओवरले, जिसमें Mem लाइन दिख रही है.Unreal Insights की मदद से मेमोरी को विज़ुअलाइज़ करना
Unreal Insights की मदद से, समय के साथ मेमोरी मेट्रिक को मॉनिटर और विज़ुअलाइज़ किया जा सकता है. जैसे, प्लैटफ़ॉर्म मेमोरी के आंकड़े और कस्टम काउंटर. इसके लिए, फ़्रेम के हिसाब से सटीक टाइमलाइन ग्राफ़ का इस्तेमाल किया जाता है.
- अपने डिवाइस को मेमोरी ट्रेस चैनलों से कनेक्ट करें. इसके लिए, ऐसे फ़्लैग इस्तेमाल करें जिनमें
default,countersशामिल हो. इससे आपको फ़्रेम टाइमलाइन के साथ-साथPlatformMemory/UsedPhysical(VmRSS + VmSwap) ग्राफ़ दिखेगा. - ज़रूरी नहीं: कस्टम मेमोरी मेट्रिक को ज़्यादा बारीकी से ट्रैक करने के लिए,
TRACE_DECLARE_MEMORY_COUNTERऔरTRACE_COUNTER_SETका इस्तेमाल करके, कस्टम ट्रेस काउंटर को अपडेट करें.
#include "ProfilingDebugging/CountersTrace.h"
TRACE_DECLARE_MEMORY_COUNTER(Trace_EstimatedPhysicalMemory, TEXT("Memory/EstimatedPhysicalMemory"));
void UpdateMemoryTraceCounter()
{
// Note: Ensure GetEstimatedPhysicalMemory() is defined as shown
// in the Query memory at runtime using C++ APIs section.
TRACE_COUNTER_SET(Trace_EstimatedPhysicalMemory, GetEstimatedPhysicalMemory());
}
Memory/EstimatedPhysicalMemory काउंटर दिखाया गया है.Perfetto का इस्तेमाल करके, मेमोरी के सटीक इस्तेमाल की पुष्टि करना
अनुमान के बजाय, Android OS की 'पहचान छिपाकर आरएसएस + स्वैप' वैल्यू की सटीक पुष्टि करने के लिए, Perfetto का इस्तेमाल करें. Perfetto, सिस्टम-लेवल की मेमोरी मेट्रिक कैप्चर करता है. इससे आपके गेम के सटीक फ़ुटप्रिंट का आकलन किया जा सकता है.