లాభాలు:
- ముందుగా ప్రొఫైల్ని తీసుకొని, నిజమైన అడ్డంకిని కొలవడం ద్వారా, అంచనా వేయడం కంటే డేటా ఆధారంగా ఆప్టిమైజేషన్ చేయడం మరియు ప్రొఫైల్ అవుట్పుట్ను కృత్రిమ మేధస్సు ద్వారా అన్వయించడం ద్వారా
- ప్రారంభ సమయం, పటిమ, మెమరీ మరియు బ్యాటరీ పరంగా అత్యంత ఖరీదైన ఆపరేషన్ను లక్ష్యంగా చేసుకునే సామర్థ్యం మరియు ప్రధాన థ్రెడ్ నుండి భారీ పనిని తీసివేయడం
- నమూనా మరియు బ్యాచ్ ప్రాసెసింగ్ ద్వారా ఆన్-డివైస్ మోడల్ మరియు క్లౌడ్ కాలింగ్ వంటి AI సామర్థ్యాల బ్యాటరీ మరియు ప్రాసెసర్ ధరను నిర్వహించగల సామర్థ్యం
మొబైల్ వినియోగదారులు అసహనానికి గురవుతున్నారు. యాప్ నెమ్మదిగా తెరుచుకుంటే, స్క్రోలింగ్ చేస్తున్నప్పుడు హ్యాంగ్ అయినట్లయితే లేదా బ్యాటరీని త్వరగా ఖాళీ చేసినట్లయితే, వినియోగదారు దానిని తొలగించి, స్టోర్లో స్టార్ రేటింగ్ను ఇస్తారు. పనితీరు మరియు బ్యాటరీ సామర్థ్యం అనేది మొబైల్ యాప్ మనుగడకు సంబంధించిన విషయం; ఇది వినియోగదారు సంతృప్తి మరియు స్టోర్ ర్యాంకింగ్ రెండింటినీ నేరుగా ప్రభావితం చేస్తుంది. పనితీరు అడ్డంకులను (బాటిల్నెక్స్), కొలత ఫలితాలను వివరించడంలో మరియు ఆప్టిమైజేషన్లను సిఫార్సు చేయడంలో AI శక్తివంతమైన సహాయం. కానీ గోల్డెన్ రూల్ మిగిలి ఉంది: ముందుగా కొలవండి, తర్వాత ఆప్టిమైజ్ చేయండి. ఈ యూనిట్లో, మేము AIతో డేటా ఆధారిత పద్ధతిలో పనితీరు మరియు బ్యాటరీ సమస్యలను పరిష్కరించడం నేర్చుకుంటాము. మేము మునుపటి యూనిట్లలో (ఆన్-డివైస్ మోడల్, క్లౌడ్ కాలింగ్) జోడించిన AI సామర్థ్యాల బ్యాటరీ మరియు పనితీరుపై ప్రభావాన్ని నిర్వహించడం చాలా ముఖ్యమైన సమస్య.
కొలవడం లేకుండా ఆప్టిమైజ్ చేయడం
అనుభవం లేని డెవలపర్ యొక్క అతి పెద్ద తప్పు ప్రిడిక్టివ్ ఆప్టిమైజేషన్: "ఇది నెమ్మదిగా ఉండాలి" అని చెప్పి సమయాన్ని వృధా చేయడం. నిజమైన అడ్డంకి దాదాపు ఎల్లప్పుడూ ఊహించని ప్రదేశంలో ఉంటుంది. కాబట్టి ముందుగా ప్రొఫైల్ తీసుకోబడుతుంది (ప్రొఫైలింగ్ — అప్లికేషన్లోని ఏ భాగం ఎంత సమయం/మెమరీ/బ్యాటరీని వినియోగిస్తుందో కొలవడం). ఆండ్రాయిడ్ స్టూడియో ప్రొఫైలర్ మరియు ఎక్స్కోడ్ ఇన్స్ట్రుమెంట్స్ ఈ జాబ్ కోసం. AIకి కొలత డేటాను అందించడం వివరణను వేగవంతం చేస్తుంది; కానీ కొలత లేకుండా, AIకి "నా అప్లికేషన్ నెమ్మదిగా ఉంది, వేగవంతం చేయండి" అని చెప్పడం అంటే గుడ్డిగా అంచనాలు వేయడం.
పనితీరు యొక్క నాలుగు ప్రధాన అక్షాలు:
అక్షం
లక్షణం
సాధారణ కారణం
ప్రారంభ సమయం
అప్లికేషన్ ఆలస్యంగా తెరవబడుతుంది
ప్రధాన థ్రెడ్పై భారీ పని
పటిమ (జంక్)
స్క్రోల్ కష్టం అవుతుంది
సుదీర్ఘ ప్రాసెసింగ్, UI థ్రెడ్లో అనవసరమైన రీడ్రా
జ్ఞాపకశక్తి
వాపు, పతనం
లీక్, పెద్ద చిత్రం, కాష్ అనియంత్రిత
బ్యాటరీ/వేడి
వేగవంతమైన స్కలనం
నిరంతర స్థానం, నెట్వర్క్, సెన్సార్, బ్యాక్గ్రౌండ్ జాబ్
చిట్కా: పనితీరు సమస్య గురించి AIని అడిగినప్పుడు, ప్రొఫైల్ అవుట్పుట్ ఇవ్వండి (ఈ ఫంక్షన్కు ఎంత సమయం పడుతుంది, మెమరీ గ్రాఫ్). "ఆ ఫంక్షన్ ఒక్కో ఫ్రేమ్కి 30ms పడుతుంది" వంటి హార్డ్ డేటా AIని నిజమైన అడ్డంకిపై దృష్టి పెట్టడానికి అనుమతిస్తుంది; "నెమ్మదిగా" వంటి ఆత్మాశ్రయ పదబంధం సాధారణ మరియు పనికిరాని సమాధానాన్ని ఉత్పత్తి చేస్తుంది.
AI సామర్థ్యాల బ్యాటరీ ధర
ఈ మాడ్యూల్లో మేము జోడించిన AI ఫీచర్లు శక్తివంతమైనవి, కానీ అవి ఉచితం కాదు. ఆన్-డివైస్ మోడల్ను సంగ్రహించడం ప్రాసెసర్ మరియు బ్యాటరీని ఒత్తిడి చేస్తుంది; నిరంతరం అమలవుతున్న ఇమేజ్ రికగ్నిషన్ (ఉదా. కెమెరా ప్రతి ఫ్రేమ్ని ప్రాసెస్ చేయడం) ఫోన్ను వేడి చేస్తుంది మరియు నిమిషాల్లో బ్యాటరీని ఖాళీ చేస్తుంది. క్లౌడ్ AI కాల్లు, మరోవైపు, నెట్వర్క్ రేడియోను (డేటాను పంపే మరియు స్వీకరించే యాంటెన్నా) ఎల్లవేళలా ఆన్లో ఉంచడం ద్వారా బ్యాటరీని తింటాయి. పరిష్కారాలు: ఆన్-డివైస్ మోడల్ను అవసరమైనప్పుడు మాత్రమే అమలు చేయండి, ప్రతి ఫ్రేమ్కి బదులుగా సెకనుకు కొన్ని సార్లు కెమెరాను శాంపిల్ చేయండి, బ్యాచ్ క్లౌడ్ అభ్యర్థనలను పంపండి, పరికరం ఛార్జింగ్లో ఉన్నప్పుడు లేదా నిష్క్రియంగా ఉన్నప్పుడు హెవీ లిఫ్టింగ్ చేయండి.
హెచ్చరిక: నిరంతరం అమలవుతున్న AI ఫీచర్ (ప్రత్యక్ష అనువాదం, నిరంతర ఆబ్జెక్ట్ రికగ్నిషన్) బ్యాటరీని చాలా త్వరగా ఖాళీ చేస్తుంది, పరికరాన్ని వేడి చేస్తుంది మరియు సిస్టమ్ ద్వారా థ్రెటిల్ చేయబడవచ్చు. ఈ ధర తొలగించబడిందని వినియోగదారు భావించేలా చేసే ఫీచర్. నేను ఎల్లప్పుడూ AIని అడుగుతాను "నేను ఈ ఫీచర్ని బ్యాటరీకి అనుకూలంగా ఎలా మార్చగలను?" అనే ప్రశ్న కూడా అడగండి.
ఆప్టిమైజేషన్ యొక్క దశలు
- కొలత. ప్రొఫైలర్తో నిజమైన అడ్డంకిని కనుగొనండి; ఊహించవద్దు.
- అతిపెద్ద సమస్యను ఎంచుకోండి. 1% మెరుగుదల కోసం వెంబడించవద్దు; అత్యంత ఖరీదైన లావాదేవీని లక్ష్యంగా పెట్టుకోండి.
- డేటాతో AIని అడగండి. ప్రొఫైల్ అవుట్పుట్ + సంబంధిత కోడ్తో ఆప్టిమైజేషన్ సూచనను అభ్యర్థించండి.
- వర్తించు మరియు మళ్లీ కొలవండి. అభివృద్ధి నిజమేనా? సంఖ్య పడిపోయిందా?
- తిరోగమన నియంత్రణ. ఆప్టిమైజేషన్ ఏదైనా విచ్ఛిన్నం చేసిందా? దృశ్య మరియు క్రియాత్మక పరీక్షలను పునరావృతం చేయండి.
మూడు చిన్న కేసులు
కేసు 1 - తప్పు స్థలంలో శోధించడం. జాబితాలు నిలిచిపోయాయని భావించిన ఒక బృందం, స్క్రోలింగ్ కోడ్ని వారాల తరబడి మళ్లీ పని చేయడం ద్వారా ప్రయోజనం లేకుండాపోయింది. వారు ప్రొఫైలర్ను తీసుకుని, డేటాను AIకి అందించినప్పుడు, ప్రతి వరుసతో నెట్వర్క్లో మళ్లీ లోడ్ అవుతున్న చిత్రాలే నిజమైన అడ్డంకి అని తేలింది. దృశ్య కాష్ జోడించబడినప్పుడు, పటిమ 42 FPS నుండి 60 FPSకి పెరిగింది. పాఠం: కొలమానం వారాల వ్యర్థ ప్రయత్నాలను నివారిస్తుంది.
కేస్ 2 — బ్యాటరీ మాన్స్టర్ ఫీచర్. అనువాద అనువర్తనం కెమెరాతో ప్రత్యక్ష వచన అనువాదాన్ని జోడించింది; "ఫోన్ 15 నిమిషాల్లో వేడెక్కింది మరియు 30% బ్యాటరీ పోయింది" అని వినియోగదారులు ఫిర్యాదు చేశారు. AIని సంప్రదించినప్పుడు, కెమెరా సెకనుకు 30 ఫ్రేమ్లను ప్రాసెస్ చేస్తున్నట్లు కనుగొనబడింది; ఇది 5 ఫ్రేమ్లకు తగ్గించబడినప్పుడు మరియు ఫలితం కొన్ని ఫ్రేమ్ల దూరంలో నవీకరించబడినప్పుడు, బ్యాటరీ వినియోగం మూడవ వంతుకు తగ్గింది మరియు నాణ్యత గమనించదగినది కాదు. పాఠం: ఎల్లప్పుడూ AIని బ్యాటరీ ఐతో సెట్ చేయండి.
కేసు 3 - నెమ్మదిగా ప్రారంభం. ఒక యాప్ 4.5 సెకన్లలో తెరవబడుతుంది; స్టార్టప్లో 20% మంది వినియోగదారులు నిష్క్రమిస్తున్నారు. ప్రధాన థ్రెడ్లో అన్ని ప్రారంభ పని (విశ్లేషణలు, డేటా లోడింగ్, మోడల్ తయారీ) వరుసగా జరిగిందని ప్రొఫైల్ చూపించింది. AI ప్రతిపాదనతో, ఇవి వాయిదా వేయబడ్డాయి మరియు బ్యాక్ బర్నర్పై ఉంచబడ్డాయి; ప్రారంభ సమయం 1.3 సెకన్లకు తగ్గించబడింది మరియు విడిచిపెట్టిన రేటు సగానికి తగ్గించబడింది. పాఠం: ప్రారంభంలో అవసరమైన పనులను మాత్రమే చేయండి.
బలహీనమైన ప్రాంప్ట్ / బలమైన ప్రాంప్ట్
బలహీనమైన ప్రాంప్ట్: "నా యాప్ నెమ్మదిగా ఉంది, వేగవంతం చేయండి."
శక్తివంతమైన ప్రాంప్ట్: "నా ఆండ్రాయిడ్ అప్లికేషన్లో జాబితా స్క్రోలింగ్ నిలిచిపోయింది (జాంక్). ప్రొఫైలర్ డేటా: bindImageView ప్రతి ఫ్రేమ్పై 28మి.లు పడుతుంది, ప్రతిసారీ చిత్రాలు నెట్వర్క్ నుండి లోడ్ అవుతాయి, కాష్ ఉండదు. సంబంధిత కోడ్: [RecyclerView అడాప్టర్ కోడ్]. ప్రతి 3 అత్యంత ప్రభావవంతమైన ప్రభావవంతమైన ప్రభావవంతమైన ప్రభావాలను పొందడం కోసం ప్రతి 3 అత్యంత ప్రభావవంతమైన ప్రభావాలను సిఫార్సు చేయండి. చిత్ర నాణ్యతను తగ్గించని పరిష్కారాలు."
కాపీ చేయగల టెంప్లేట్లు
బాటిల్నెక్ విశ్లేషణ టెంప్లేట్: "క్రింది ప్రొఫైల్ డేటాను అర్థం చేసుకోండి మరియు 3 అత్యంత ఖరీదైన ఆపరేషన్లను కనుగొనండి: [ప్రొఫైలర్ అవుట్పుట్]. ప్రతిదానికి సాధ్యమయ్యే కారణాన్ని మరియు కాంక్రీట్ ఆప్టిమైజేషన్ను సూచించండి. ముందుగా అత్యధిక ప్రభావాన్ని ఇవ్వండి."
బ్యాటరీ ఆప్టిమైజేషన్ టెంప్లేట్:"ఈ ఫీచర్ బ్యాటరీని త్వరగా ఖాళీ చేస్తుంది: [ఫీచర్, ఉదా. శాశ్వత స్థానం]. దీన్ని బ్యాటరీ అనుకూలమైనదిగా చేయండి:- నమూనా ఫ్రీక్వెన్సీని తగ్గించండి- నేపథ్యంలో పరిమితి- బ్యాచ్ ప్రాసెసింగ్- అవసరమైనప్పుడు మాత్రమే అమలు చేయండి వినియోగదారు అనుభవానికి అంతరాయం కలగకుండా పరిష్కారాలను క్రమబద్ధీకరించండి. [కోడ్]"
స్టార్టప్ స్పీడ్-అప్ టెంప్లేట్: "అప్లికేషన్ స్టార్టప్ను వేగవంతం చేయండి. ప్రస్తుతం స్టార్టప్లో జరుగుతున్న పనులు: [జాబితా]. ఏది వాయిదా వేయవచ్చు, బ్యాక్గ్రౌండ్ లేదా లేజీ-లోడ్ చేయవచ్చు? అవసరమైన వాటిని వేరు చేయండి. [కోడ్]"
AI ఫీచర్ ధర టెంప్లేట్: "నేను జోడించిన [ఆన్-డివైస్ మోడల్ / క్లౌడ్ కాల్] ఫీచర్ యొక్క పనితీరు మరియు బ్యాటరీ ధరను అంచనా వేయండి. నేను కొలవవలసిన కొలమానాలు మరియు ధరను తగ్గించడానికి వ్యూహాలను జాబితా చేయండి. [కోడ్]"
సాధారణ తప్పులు
- కొలవడం లేకుండా ఆప్టిమైజ్ చేయడం. నిజమైన అడ్డంకి తరచుగా ఊహించిన దానికంటే భిన్నమైన ప్రదేశంలో ఉంటుంది.
- స్వల్ప లాభాలను వెంటాడుతోంది. 1% మెరుగుదల కంటే అత్యంత ఖరీదైన చర్య కోసం లక్ష్యంగా పెట్టుకోండి.
- AI ఫీచర్ల బ్యాటరీ ధరను విస్మరిస్తోంది. నిరంతరం నడుస్తున్న మోడల్/కెమెరా/నెట్వర్క్ బ్యాటరీని తింటాయి.
- ప్రధాన థ్రెడ్ను అలసిపోతుంది. ప్రారంభ మరియు స్క్రోలింగ్ యొక్క భారీ లిఫ్టింగ్ UI థ్రెడ్లో ఉండకూడదు.
- ఆప్టిమైజేషన్ తర్వాత మళ్లీ కొలవడం లేదు. మెరుగుదల నిజమైనదని మరియు దేనినీ విచ్ఛిన్నం చేయలేదని ధృవీకరించండి.
- ఎమ్యులేటర్లో పనితీరును కొలవడం. అసలు పరికరం వేగం, ఉష్ణోగ్రత మరియు బ్యాటరీ పూర్తిగా భిన్నంగా ఉంటాయి.
సారాంశంలో
పనితీరు మరియు బ్యాటరీ మొబైల్ యాప్ మనుగడకు సంబంధించిన విషయం. గోల్డెన్ రూల్: ముందుగా కొలవండి, తర్వాత ఆప్టిమైజ్ చేయండి. AIకి ప్రొఫైల్ డేటాను ఇవ్వడం వివరణను వేగవంతం చేస్తుంది; "వేగవంతం" చేయాలనే అపరిమితమైన కోరిక గుడ్డి అంచనాలకు దారి తీస్తుంది. అత్యంత ఖరీదైన లావాదేవీని లక్ష్యంగా చేసుకోండి, చిన్న లాభాలను వెంబడించవద్దు. ఈ మాడ్యూల్లో జోడించిన AI సామర్థ్యాలు శక్తివంతమైనవి కానీ బ్యాటరీ మరియు ప్రాసెసర్ ఖర్చులను కలిగి ఉంటాయి; నమూనా ఫ్రీక్వెన్సీని తగ్గించడం, బ్యాచింగ్ చేయడం మరియు అవసరమైనప్పుడు మాత్రమే అమలు చేయడం ద్వారా ఈ ఖర్చును నిర్వహించండి. ప్రతి ఆప్టిమైజేషన్ తర్వాత నిజమైన పరికరంలో మళ్లీ కొలవండి.
అప్లికేషన్ టాస్క్
అప్లికేషన్లో ప్రొఫైల్ను దిగుమతి చేయండి (మీ స్వంత ప్రాజెక్ట్ లేదా ఉదాహరణ) లేదా నమూనా ప్రొఫైల్ అవుట్పుట్ను సృష్టించండి మరియు దానిని "బాటిల్నెక్ అనాలిసిస్ టెంప్లేట్"తో AI ద్వారా అన్వయించండి. అత్యధిక ఇంపాక్ట్ ఆప్టిమైజేషన్ని వర్తింపజేసి, మళ్లీ కొలవండి: సంఖ్య వాస్తవానికి పడిపోయిందా? అలాగే, మీరు "AI ఫీచర్ ధర టెంప్లేట్"తో బ్యాటరీ పరంగా ఈ మాడ్యూల్ (ఆన్-డివైస్ మోడల్ లేదా క్లౌడ్ కాల్)లో జోడించిన AI ఫీచర్ను అంచనా వేయండి మరియు కనీసం ఒక బ్యాటరీ అనుకూల సెట్టింగ్ని నిర్ణయించండి.
చెక్లిస్ట్
- [ ] ఆప్టిమైజేషన్కు ముందు నాకు ప్రొఫైల్ వచ్చింది, నేను ఊహించలేదు
- [ ] నేను అత్యంత ఖరీదైన వ్యాపారాన్ని లక్ష్యంగా పెట్టుకున్నాను, నేను చిన్న లాభాలపై వెదజల్లలేదు
- [ ] నేను AI ప్రొఫైల్ డేటాను నిర్దిష్ట సంఖ్యలలో ఇచ్చాను
- [ ] నేను AI ఫీచర్ల బ్యాటరీ/ప్రాసెసర్ ధరను అంచనా వేసాను
- [ ] నేను ప్రధాన థ్రెడ్ నుండి భారీ లిఫ్టింగ్ను తీసివేసాను
- [ ] ఆప్టిమైజేషన్ తర్వాత, నేను నిజమైన పరికరంలో మళ్లీ కొలిచాను మరియు రిగ్రెషన్ను తనిఖీ చేసాను