2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
कार्यप्रदर्शनसङ्ग्रहविश्लेषणसम्बद्धसाधनानाम् अवलोकनम्
चल-अनुप्रयोग-प्रदर्शन-दत्तांशस्य संग्रहणं, विश्लेषणं, प्रदर्शनं च कर्तुं बहवः साधनानि सन्ति, येषां मोटेन निम्नलिखितवर्गेषु विभक्तुं शक्यते । यथा, मोबाईल-प्रदर्शन-उपकरणाः ये बहुविध-प्रदर्शन-सूचकाः, perfdog, Solopi च संग्रहीतुं शक्नुवन्ति, येषु Solopi मुक्त-स्रोतः अस्ति, pefdog च व्यावसायिक-उपकरणम् अस्ति ये साधनानि क्रैश विश्लेषणं कर्तुं शक्नुवन्ति, यथा व्यावसायिकं Firebase Crashlytics तथा च मुक्तस्रोतस्य Sentry साधनम् । यदि भवान् संजालसम्बद्धदत्तांशस्य विश्लेषणं कर्तुं इच्छति तर्हि Charles अथवा Wireshark इत्यस्य उपयोगं कर्तुं शक्नोति । तदतिरिक्तं व्यापकाः कार्यप्रदर्शनप्रबन्धनसाधनाः सन्ति, यथा Dynatrace । सामान्यतया व्यावसायिकसाधनानाम् क्षमता, सटीकता, उपयोक्तृअनुभवः च निश्चितरूपेण मुक्तस्रोतसाधनानाम् अपेक्षया उत्तमः भवति व्यक्तिगत अध्ययनस्य अनुसन्धानस्य च कृते आरम्भस्य एकमात्रः उपायः मुक्तस्रोतसाधनात् एव अस्ति अतः अस्य ब्लोग् इत्यस्य लेखने वयं मुक्तस्रोतसाधनानाम् अपि उदाहरणरूपेण उपयोगं करिष्यामः ।
मोबाईल प्रदर्शनपरीक्षणसाधनम्:
PerfDog: अनुप्रयोगप्रदर्शनस्य, CPU, स्मृतिः, विद्युत्-उपभोगस्य अन्येषां च आँकडानां निरीक्षणार्थं एकं साधनं, प्रदर्शनपरीक्षणस्य समर्थनं करोति तथा च मोबाईल-अनुप्रयोगानाम् वास्तविकसमयनिरीक्षणम्
सोलोपी: मोबाईल-अनुप्रयोग-प्रदर्शनस्य परीक्षणं निरीक्षणं च केन्द्रीक्रियते, यत्र फ्रेम-दरस्य, CPU, स्मृति-आदि-सूचकानाम् वास्तविक-समय-निरीक्षणं च समाविष्टम् अस्ति
दुर्घटना विश्लेषण साधन:
Firebase Crashlytics: Google द्वारा प्रदत्तं एकं शक्तिशालीं दुर्घटनानिवेदनं विश्लेषणं च साधनं यत् वास्तविकसमये अनुप्रयोगस्य दुर्घटनानां निरीक्षणं कर्तुं शक्नोति।
सेन्ट्री: एकं मुक्तस्रोतदोषनिरीक्षणसाधनं यत् बहुविधमञ्चानां समर्थनं करोति, यत्र त्रुटिप्रतिवेदनं, मोबाईल-अनुप्रयोगानाम् कार्यप्रदर्शननिरीक्षणं च समाविष्टम् अस्ति ।
संजालप्रदर्शनपरीक्षणसाधनम्:
चार्ल्स प्रॉक्सी : एकं नेटवर्क् डिबगिंग् प्रॉक्सी साधनं यत् मोबाईल-अनुप्रयोगानाम् कृते संजाल-अनुरोधं प्रतिक्रिया-दत्तांशं च गृह्णाति विश्लेषयति च ।
Wireshark: एकं मुक्तस्रोतजालविश्लेषणसाधनं यत् चल-अनुप्रयोगानाम् संजाल-पैकेट्-ग्रहणं विश्लेषणं च समर्थयति ।
एपीएम साधनानि(अनुप्रयोगनिष्पादनप्रबन्धनम्): १.
Dynatrace: एकं क्लाउड्-देशीयं, पूर्ण-स्टैक-प्रदर्शन-निरीक्षण-समाधानं यत् मोबाईल-अनुप्रयोग-प्रदर्शन-निरीक्षणं, उपयोक्तृ-अनुभव-विश्लेषणं च समर्थयति ।
किं किं कार्यप्रदर्शनमापकाः एकत्रिताः भवन्ति कथं च
कार्यप्रदर्शनविश्लेषणं कर्तुं पूर्वं प्रथमं भवद्भिः प्रत्येकस्य कार्यप्रदर्शनसूचकस्य अर्थं अवगन्तुं भवति सोलोपीद्वारा एकत्रितप्रदर्शनसूचकानाम् उदाहरणरूपेण गृहीत्वा, मोबाईल-अनुप्रयोग-प्रदर्शनस्य सामान्यसूचकानाम् अवलोकनं कुर्मः, एते सूचकाः कथं संग्रहीतुं शक्यन्ते इति।
फ्रेम दर
फ्रेम रेट् गणयितुं सूत्रं अस्ति : १.फ्रेम दर = आकृष्टस्य फ्रेमस्य संख्या/समयावधिः, .अधिकांशस्य अनुप्रयोगस्य, क्रीडाविकासकस्य च लक्ष्यचतुष्कोणदरः अस्ति६०एफपीएस( २. frames/second), लक्ष्यं फ्रेम रेट् 60FPS किमर्थम्? यतो हि अधिकांशस्य आधुनिकस्य स्मार्टफोनस्य टैब्लेट् च स्क्रीन रिफ्रेश रेट् ६०Hz भवति, यावत् फ्रेम रेट् ६०FPS यावत् भवति अर्थात् प्रति सेकण्ड् आकृष्टस्य फ्रेमस्य संख्या ६० भवति तावत् उपयोक्तुः दृश्यप्रभावाः सुचारुतराः भविष्यन्ति तथा च विलम्बः न भविष्यति न्यूनतमं 30FPS तः न्यूनं न भवितुम् अर्हति यतोहि मॉनिटरः नूतनं फ्रेमं प्रतीक्षमाणः पूर्वस्य फ्रेमस्य चित्रं बहुवारं प्रदर्शयति, येन चित्रं असूपं भवति । उच्चाः 90FPS (उदाहरणार्थं उच्चताजगतादरयुक्तानां उपकरणानां कृते) प्राप्तुं शक्नुवन्ति ।
फ्रेम रेट् सूचनां कथं संग्रहीतुं शक्यते
फ्रेम रेट् संग्रहणस्य द्वौ उपायौ स्तः एकः फ्रेम रेट् आँकडानां संग्रहणार्थं Choreographer वर्गस्य उपयोगः भवति अस्य कृते एप्लिकेशनस्य अन्तः कोड् लेखनस्य आवश्यकता भवति तथा च केवलं एप्लिकेशनस्य फ्रेम रेट् सूचनां संग्रहीतुं शक्यते ।अन्यः उपायः प्रयोगः gfxinfo साधनम् । Solopi उदाहरणरूपेण गृहीत्वा, 1 सेकण्ड् अन्तः समयसमाप्ति-फ्रेम-समयः अपि gfxinfo-उपकरण-सूचनायाः माध्यमेन गण्यते, अतः, यदा सः निश्चलतायाः समीपे भवति, तदा फ्रेम-दरस्य भागः अशुद्धरूपेण प्रदर्शितः भवितुम् अर्हति स्लाइडिंग् अथवा पृष्ठस्विचिंग् इत्यादिषु गतिशीलपरिदृश्येषु फ्रेम रेट् परीक्षणं कर्तुं अनुशंसितम् अस्ति । gfxinfo पद्धतिः सर्वेषां अनुप्रयोगानाम् फ्रेम रेट् सूचनां संग्रहीतुं शक्नोति तथा च कार्यप्रदर्शनदत्तांशसङ्ग्रहसाधनरूपेण अतीव उपयुक्ता अस्ति अतः अत्र वयं gfxinfo इत्यस्य माध्यमेन फ्रेम रेट् सूचनां कथं संग्रहीतुं शक्नुमः इति विषये अपि ध्यानं दद्मः ।
फ्रेम रेट् सूचनां संग्रहीतुं मुख्यतया द्वौ सोपानौ स्तः ।प्रथमं पदम्: adb आदेशस्य माध्यमेन gfxinfo सूचनां प्राप्नुवन्तु,चरण 2 : सूचनां पार्स कृत्वा फ्रेम रेट् सूचनायाः गणनां कुर्वन्तु। gfxinfo सूचनायाः सामग्री मोटेन निम्नलिखितरूपेण अस्ति ।
Stats since: सांख्यिकी आरम्भसमयः, इकाई नैनोसेकेण्ड् अस्ति।
Total frames rendered: कुल फ्रेम्स रेण्डर्ड् कृते संख्या।
Janky frames: janky frames इत्यस्य संख्या अर्थात् 16ms (प्रति सेकण्ड् 60 frames इत्यस्य refresh interval) इत्यस्मात् अधिकस्य frames इत्यस्य संख्या ।
Janky frames percentage : janky frames इत्यस्य कुल frames इत्यस्य अनुपातः ।
९० तमः प्रतिशतः : ९० तमः प्रतिशतः, यत् सूचयति यत् ९०% फ्रेम्स् इत्यस्य रेण्डरिंग् समयाः अस्मात् मूल्यात् न्यूनाः (मिलिसेकेण्ड् मध्ये) सन्ति ।
९५ तमः शतभागः : ९५ तमः शतभागः, यत् ९५% फ्रेम्स इत्यस्य रेण्डरिंग् समयः अस्मात् मूल्यात् न्यूनः (मिलिसेकेण्ड् मध्ये) भवति इति सूचयति ।
९९ तमः शतभागः : ९९ तमः शतभागः, यत् ९९% फ्रेम्स् इत्यस्य रेण्डरिंग् समयः अस्य मूल्यात् न्यूनः (मिलिसेकेण्ड् मध्ये) भवति इति सूचयति ।
Number Missed Vsync: असमन्वयितस्य ऊर्ध्वाधरसमन्वयनस्य संख्या, अर्थात् समये रेण्डर् कर्तुं विफलतायाः कारणेन फ्रेम ड्रॉप् इत्यस्य संख्या ।
संख्या उच्चनिवेशविलम्बता : उच्चनिवेशविलम्बस्य संख्या अत्यधिकदीर्घनिवेशघटनाप्रक्रियासमयस्य कारणेन विलम्बस्य संख्यां सूचयति ।
संख्या मन्द UI थ्रेड् : UI थ्रेड् मन्दं प्रतिक्रियां दत्तवान् इति संख्या अर्थात् UI थ्रेड् इत्यस्य प्रक्रियायां कियत्वारं समयः अभवत् ।
Solopi उदाहरणरूपेण गृहीत्वा, gfxinfo सूचनायां timeout frame time इत्यस्य माध्यमेन frame rate निष्कर्षणं भवति विशिष्टस्य परियोजनायाः कोडस्य कृते, भवान् solopi स्रोतसङ्केतं द्रष्टुं शक्नोति ।
lag rate/lags इत्यस्य संख्या
जमानां संख्या : परीक्षणकालस्य कालखण्डे यस्मिन् अवधिषु फ्रेमदरः सीमातः न्यूनः इति ज्ञायते । यदा कदापि फ्रेम-दरः किञ्चित्कालं यावत् सीमायाः अधः पतति तदा तस्य गण्यते स्तब्धता । अत्र थ्रेशोल्ड् अनुकूलितं कर्तुं शक्यते उदाहरणार्थं यदि लक्ष्यफ्रेम रेट् इत्यस्मात् 60FPS न्यूनं भवति तर्हि फ्रीज् इत्यस्य रूपेण अभिलेखनं कर्तुं शक्यते । अर्थात् यदि फ्रेम रेण्डरिंग् समयः 16ms इत्यस्मात् अधिकः भवति तर्हि तस्य गणना अटत् इति भवति ।
विलम्ब दर : कुलपरीक्षासमयस्य हिमसमयस्य प्रतिशतम्। कल्पयतु यत् एकस्मिन् परीक्षणे, अनुप्रयोगः १२० सेकेण्ड् यावत् चालितः, यस्मिन् काले फ्रेम-दरः कुलतः १६ FPS तः न्यूनः आसीत्, कुल-विलम्ब-समयः च ८ सेकेण्ड् आसीत्, ततः: विलम्बस्य संख्या: ४ वारं हकलाने दर : ८/१२०*१००%=६.७%। उपरि gfxinfo इत्यस्मिन् lag rate इत्यस्य विषये data information अपि अस्ति ।
cpu/स्मृति
solopi उदाहरणरूपेण गृहीत्वा, cpu इत्यस्मिन् प्रक्रियायाः CPU उपयोगप्रतिशतम् अन्तर्भवति यत्र अनुप्रयोगस्य शीर्षस्तरीयक्रियाकलापः अस्ति तथा च एकप्रक्रिया-अनुप्रयोगानाम् कृते, एषः आँकडा अनुप्रयोगस्य CPU-उपयोगस्य प्रतिनिधित्वं करोति बहु-प्रक्रिया-प्रक्रिया-अनुप्रयोगाः, एषः आँकडा शीर्ष-स्तरीय-UI-प्रक्रियायाः प्रतिनिधित्वं करोति, यदा प्रक्रिया-स्विच् भवति, तदा Soloπ स्वयमेव नूतन-प्रक्रिया-दत्तांशं प्रति स्विच् कर्तुं शक्नोति ।
- import subprocess
-
- def get_memory_info(pid):
- try:
- # Run adb shell command to read /proc/<pid>/statm
- command = f"adb shell cat /proc/{pid}/statm"
- result = subprocess.check_output(command, shell=True)
- statm_data = result.decode('utf-8').strip().split()
-
- # Parse statm data
- size, resident, shared, text, lib, data, dt = map(int, statm_data)
-
- memory_info = {
- 'size': size, # total program size (pages)
- 'resident': resident, # resident set size (pages)
- 'shared': shared, # shared pages (pages)
- 'text': text, # text (code) size (pages)
- 'lib': lib, # library (unused since Linux 2.6; always 0)
- 'data': data, # data + stack (pages)
- 'dt': dt # dirty pages (unused since Linux 2.6; always 0)
- }
-
- return memory_info
- except subprocess.CalledProcessError as e:
- print(f"Error executing command: {e}")
- return None
- except Exception as e:
- print(f"Error: {e}")
- return None
-
- # Replace with your application's PID
- pid = '12345'
- memory_info = get_memory_info(pid)
- if memory_info:
- print(f"Memory info for PID {pid}:")
- print(f"Size: {memory_info['size']} pages")
- print(f"Resident set size (RSS): {memory_info['resident']} pages")
- print(f"Shared pages: {memory_info['shared']} pages")
- print(f"Text (code) size: {memory_info['text']} pages")
- print(f"Data + stack size: {memory_info['data']} pages")
जाल
सोलोपि उदाहरणरूपेण गृहीत्वा जालम् अनुप्रयोगस्य अपस्ट्रीम-डाउनस्ट्रीम-दराः तथा संचयी-यातायातस्य, तथैव वैश्विक-अपस्ट्रीम-डाउनस्ट्रीम-दराः च संचयी-यातायातस्य च समाविष्टाः । इदं अनुप्रयोगपरिमाणदत्तांशस्य अन्तर्भवति विशिष्टदत्तांशः अधोलिखिते चित्रे यथा दर्शितः तथा अस्ति ।
जालदत्तांशं कथं प्राप्तव्यम् ?
नेटवर्क् डाटा प्राप्तुं cpu/memory data प्राप्तुं समानं भवति तथा च प्रत्यक्षतया पठितुं शक्यते /proc/pid/net/dev सञ्चिकातः संजालदत्तांशं प्राप्नुवन्तु, अथवा adb आदेशस्य माध्यमेन प्राप्नुवन्तु (आदेशः: adb shell cat /proc/pid/net/dev) । अधोलिखितं चित्रं solopi इत्यस्य स्रोतसङ्केतस्य भागः अस्ति यत् wlan0 इत्यस्य संजालदत्तांशः अत्र गण्यते । अवश्यं, संजालयातायातस्य आँकडानां विषये, दोषाः अपि ऑनलाइन प्रस्तूयन्ते, यतः grep wlan0 अत्र केवलं संजाल wifi यातायातस्य गणनां करोति, न तु मोबाईल यातायातस्य । दोषविवरणार्थं पश्यन्तुअत्र。
प्रतिक्रिया समय
सोलोपि उदाहरणरूपेण गृह्यताम्, अनुप्रयोगक्लिक् कृते प्रतिक्रियासमयः, ताजगीसमयदत्तांशः च समाविष्टः अस्ति । अनुप्रयोगपरिमाणदत्तांशस्य अन्तर्भवति । उपयोक्तुः क्लिक् तः प्रथमवारं प्रणाली अन्तरफलक-अद्यतनं निर्गन्तुं यावत् समयः प्रतिक्रियासमयः भवति, तथा च यावत् प्रणाली अन्तरफलकस्य ताजगीं न त्यजति तावत् समयः ताजगीकरणसमयः भवति प्रतिक्रियासमयस्य गणनायाः तर्कः अस्ति यत् स्क्रीनम् फ्रेम्स् मध्ये अभिलेखयितुम् अस्ति यत् प्रतिक्रियासमयस्य गणनाय प्रारम्भिकं फ्रेमं च अन्त्यचक्रं च स्वयमेव ज्ञायते यदा भवान् वास्तवतः सोलोपी इत्यस्य उपयोगं करोति तदा भवान् पश्यति यत् सांख्यिकीयपृष्ठप्रतिसादसमयः is not correct यथा, यदा उपयोक्ता start क्लिक् करोति, to यदा भवान् अनुप्रयोगपृष्ठे क्लिक् करोति तदा मध्ये कस्यचित् हस्तवेगसञ्चालनसमयः समाविष्टः भवति, अयं भागः प्रतिक्रियासमये गण्यते अतः यदि भवान् सज्जीकृतपृष्ठप्रतिसादसमयस्य गणनां कर्तुम् इच्छति तर्हि केवलं पटलस्य अभिलेखनं कृत्वा पृष्ठस्य आरम्भस्य अन्त्यस्य च फ्रेमस्य मैन्युअल् रूपेण परिचयः अधिकं सटीकं भवति स्क्रीन फ्रेम्स रिकार्डिङ्ग् इत्यस्य विशिष्टानि सोपानानि निम्नलिखितरूपेण सन्ति ।
उपर्युक्तं मोबाईल-अनुप्रयोगेषु सामान्य-प्रदर्शन-सूचकानाम् अर्थस्य अवगमनं, तथैव तेषां संग्रहणं कथं करणीयम् इति विस्तृत-निर्देशाः च सन्ति । क्रैश इत्यादीनां विषये वयं तदनन्तरं ब्लोग् मध्ये विस्तरेण परिचयं करिष्यामः।