மிகவும் பொதுவான Android உகப்பாக்கம் கட்டுக்கதைகள் நீக்கப்பட்டன

ப்ளே ஸ்டோரில் உள்ள பயன்பாடுகள், ஆனால் ஆண்ட்ராய்டு மன்றங்களில் வெளியிடப்பட்ட தேர்வுமுறை ஸ்கிரிப்ட்கள் பொதுவாக நல்ல நோக்கத்துடன் உள்ளன, டெவலப்பர் தவறாகத் தெரிவிக்கப்படலாம் அல்லது பல்வேறு தேர்வுமுறை மாற்றங்களுடன் சோதனை செய்யலாம். துரதிர்ஷ்டவசமாக, ஒரு வகையான பனிப்பந்து விளைவு ஏற்படுகிறது, குறிப்பாக “ஆல் இன் ஒன்” தேர்வுமுறை ஸ்கிரிப்ட்களில். மாற்றங்களில் ஒரு சிறிய சில உண்மையில் செய்யக்கூடும் ஏதோ , ஒரு ஸ்கிரிப்ட்டில் உள்ள மற்றொரு மாற்றங்கள் முற்றிலும் ஒன்றும் செய்யாது - ஆயினும் இந்த ஸ்கிரிப்ட்கள் மாய தோட்டாக்கள் எனக் கூறப்படுகின்றன, என்ன வேலை செய்கின்றன, எது செய்யாது என்பதில் உண்மையான விசாரணை இல்லாமல்.



ஆக, ஆல் இன் ஒன் தேர்வுமுறை ஸ்கிரிப்ட்கள் ஒரே முறைகளைப் பயன்படுத்துகின்றன, அவற்றில் சில முற்றிலும் காலாவதியானவை அல்லது நீண்ட காலத்திற்கு தீங்கு விளைவிக்கும். சுருக்கமாக, பெரும்பான்மையான “ஆல் இன் ஒன்” தேர்வுமுறை ஸ்கிரிப்ட்கள் ஒன்றும் பரிந்துரைக்கப்பட்ட ட்யூனிங்கைத் தவிர வேறொன்றுமில்லை, இந்த மேம்படுத்தல்கள் “எப்படி - ஏன் செயல்படுகின்றன - பயனர்கள் பின்னர் ஸ்கிரிப்ட்களை ப்ளாஷ் செய்கிறார்கள், அவற்றின் செயல்திறன் திடீரென்று வேகமாக இருப்பதாகக் கூறுகிறார்கள். ( உண்மையில், இது அவர்களின் சாதனத்தை மறுதொடக்கம் செய்வதற்கான மிக எளிய செயலாகும், இது செயல்திறன் அதிகரிப்புக்கு காரணமாக அமைந்தது , சாதனத்தின் ரேமில் உள்ள அனைத்தும் சுத்தம் செய்யப்படுவதால்) .

இந்த பயன்பாடுகள் பிரத்தியேக கட்டுரையில், “என்பதற்கான பொதுவான பரிந்துரைகளில் சிலவற்றை நாங்கள் முன்னிலைப்படுத்துவோம். மேம்படுத்துதல் ” Android செயல்திறன், அவை வெறுமனே ஒரு கட்டுக்கதை அல்லது சாதன செயல்திறனுக்கான முறையான மாற்றங்கள்.



இடமாற்று

புராணப் பட்டியலில் முதலிடத்தில் அண்ட்ராய்டு இடமாற்று உள்ளது - இது ஆண்ட்ராய்டு தேர்வுமுறை எனக் கருதப்படுவதில் மிகவும் அபத்தமானது. பேஜிங் கோப்பை உருவாக்கி இணைப்பதே ஸ்வாப்ஸின் முக்கிய நோக்கம், இது நினைவகத்தில் சேமிப்பிடத்தை விடுவிக்கும். இது விவேகமானதாகத் தெரிகிறது தாளில் , ஆனால் இது உண்மையில் பொருந்தும் சேவையகம் , இது கிட்டத்தட்ட ஊடாடும் தன்மையைக் கொண்டிருக்கவில்லை.



உங்கள் Android தொலைபேசியின் இடமாற்றத்தை நீங்கள் தவறாமல் பயன்படுத்தும்போது, ​​தற்காலிக சேமிப்பில் இருந்து நழுவும் விஷயங்களிலிருந்து உருவாகும் கடுமையான பின்னடைவுகளுக்கு இது வழிவகுக்கும். உதாரணமாக, ஒரு பயன்பாடு ஒரு கிராஃபிக் காட்ட முயற்சித்தால், அது இடமாற்றத்தில் சேமிக்கப்படுகிறது, இது இப்போது மற்றொரு பயன்பாட்டுடன் தரவு இடமாற்றத்தை வைப்பதன் மூலம் இடத்தை விடுவித்த பின்னர் வட்டை மீண்டும் ஏற்ற வேண்டும். இது உண்மையில் குழப்பமாக இருக்கிறது.



சில தேர்வுமுறை ஆர்வலர்கள் இடமாற்று எந்த பிரச்சனையும் அளிக்கவில்லை என்று கூறலாம், ஆனால் இது செயல்திறனை அதிகரிக்கும் இடமாற்றம் அல்ல - இது உள்ளமைக்கப்பட்ட Android வழிமுறை lowmemorykiller , இது வழக்கமாக பயன்படுத்தப்படாத வீங்கிய, அதிக முன்னுரிமை செயல்முறைகளை கொல்லும். குறைந்த நினைவக நிலைமைகளைக் கையாள்வதற்காக எல்.எம்.கே வடிவமைக்கப்பட்டுள்ளது kswapd செயல்முறை, மற்றும் பொதுவாக பயனர் விண்வெளி செயல்முறைகளை கொல்லும். இது வேறுபட்டது OOMkiller (நினைவகத்திற்கு வெளியே), ஆனால் இது முற்றிலும் வேறுபட்ட தலைப்பு.

புள்ளி என்னவென்றால், எடுத்துக்காட்டாக, 1 ஜிபி ரேம் கொண்ட சாதனம் ஒரு ஸ்வாப்பில் தேவையான செயல்திறன் தரவை ஒருபோதும் அடைய முடியாது, எனவே ஸ்வாப் முற்றிலும் ஆண்ட்ராய்டில் தேவையில்லை. அதன் செயல்படுத்தல் வெறுமனே பின்னடைவால் நிறைந்துள்ளது மற்றும் ஒரு வழிவகுக்கிறது சீரழிவு செயல்திறனில், அதை மேம்படுத்துவதை விட.

zRAM - காலாவதியானது மற்றும் நீண்ட செயல்திறன் இல்லை

zRAM என்பது சாதன மேம்படுத்தலுக்கான நிரூபிக்கப்பட்ட மற்றும் பயனுள்ள முறையாகும் பழைய சாதனங்கள் - 512 எம்பி ரேமில் மட்டுமே இயங்கும் கிட்கேட் அடிப்படையிலான சாதனங்களை நினைத்துப் பாருங்கள். சிலர் இன்னும் zRAM மாற்றங்களை தேர்வுமுறை ஸ்கிரிப்ட்களில் சேர்க்கிறார்கள், அல்லது zRAM ஐ ஒருவித நவீன தேர்வுமுறை மாற்றங்களாக பரிந்துரைக்கின்றனர் என்பது மக்கள் பொதுவாக சமீபத்திய செயல்பாட்டு நெறிமுறைகளைப் பின்பற்றாததற்கு ஒரு எடுத்துக்காட்டு.



எம்டிகே சிப்செட்களைப் பயன்படுத்தும் சாதனங்கள் மற்றும் 512 எம்பி ரேம் போன்ற நுழைவு-நிலை பட்ஜெட்-வரம்பு மல்டி-கோர் SoC க்காக zRAM திட்டமிடப்பட்டது. மிகவும் மலிவான சீன தொலைபேசிகள், அடிப்படையில். ZRAM அடிப்படையில் என்ன செய்கிறது என்பது குறியாக்க ஸ்ட்ரீம் வழியாக கர்னலை பிரிக்கிறது.

பழைய சாதனங்களில் zRAM ஐப் பயன்படுத்தும்போது a ஒற்றை மைய , இதுபோன்ற சாதனங்களில் zRAM பரிந்துரைக்கப்பட்டாலும், அதிக அளவு பின்னடைவுகள் வளர முனைகின்றன. இது KSM தொழில்நுட்பத்திலும் நிகழ்கிறது ( கர்னல் அதே பக்கம் இணைத்தல்) இது ஒரே மாதிரியான நினைவக பக்கங்களை இலவச இடத்திற்கான முயற்சியில் இணைக்கிறது. இது உண்மையில் Google ஆல் பரிந்துரைக்கப்படுகிறது, ஆனால் பழைய சாதனங்களில் அதிக பின்னடைவுக்கு வழிவகுக்கிறது, ஏனெனில் தொடர்ந்து செயலில் உள்ள கோர் தியேட்கள் நினைவகத்திலிருந்து தொடர்ச்சியாக இயங்கும் போலி பக்கங்களைத் தேடுகின்றன. அடிப்படையில், தேர்வுமுறை மாற்றங்களை இயக்க முயற்சிப்பது சாதனத்தை மேலும் குறைக்கிறது, முரண்பாடாக.

விதை - அண்ட்ராய்டு 3.0 முதல் காலாவதியானது

Android devs மத்தியில் மிகவும் விவாதிக்கப்பட்ட தேர்வுமுறை உதவிக்குறிப்புகள் ஒன்றாகும் சிடார் , இந்த தலைப்பில் யாராவது எங்களை தவறாக நிரூபிக்க முயற்சிக்க முடியும் என்பதில் நாங்கள் உறுதியாக உள்ளோம் - ஆனால் முதலில் நாம் விதைகளின் வரலாற்றை ஆராய வேண்டும்.

Android க்கான விதை பயன்பாடு

ஆம், நிறுவிய பின் சிறந்த Android செயல்திறனை அறிவிக்கும் ஏராளமான அறிக்கைகள் உள்ளன மிகவும் பழைய Android சாதனங்கள் . இருப்பினும், எந்த காரணத்திற்காகவும் மக்கள் நம்புகிறார்கள், இது பொருந்தக்கூடிய தேர்வுமுறை நவீன Android சாதனங்கள் , இது முற்றிலும் அபத்தமானது. விதை இன்னும் பராமரிக்கப்பட்டு வழங்கப்படுகிறது என்ற உண்மை “ நவீன' பின்னடைவு குறைப்பு கருவி தவறான தகவலுக்கு ஒரு எடுத்துக்காட்டு - இது சீடரின் டெவலப்பரின் தவறு அல்ல என்றாலும், அண்ட்ராய்டு 4.0+ க்குப் பிறகு சீடர் குறைவான செயல்திறன் கொண்டது என்பதை அவர்களின் பிளே ஸ்டோர் பக்கம் கூட குறிப்பிடுகிறது. ஆயினும்கூட, எந்த காரணத்திற்காகவும், நவீன ஆண்ட்ராய்டு கணினிகளுக்கான தேர்வுமுறை விவாதங்களில் சீடர் இன்னும் மேலெழுகிறது.

அண்ட்ராய்டு 3.0 க்கு சீடர் அடிப்படையில் என்ன செய்வது என்பது ஒரு பிழையைக் குறிக்கிறது, அங்கு ஆண்ட்ராய்டு இயக்க நேரம் என்ட்ரோபியைப் பெறுவதற்கு / dev / random / file ஐ தீவிரமாகப் பயன்படுத்தும். / Dev / random / buffer நிலையற்றதாக மாறும், மேலும் தேவையான அளவு தரவை நிரப்பும் வரை கணினி தடுக்கப்படும் - Android சாதனத்தில் உள்ள பல்வேறு சென்சார்கள் மற்றும் பொத்தான்கள் போன்ற சிறிய விஷயங்களை சிந்தியுங்கள்.

சீடரின் ஆசிரியர் லினக்ஸ்-அரக்கனை எடுத்தார் rngd , மற்றும் Android இன் inastroil க்காக தொகுக்கப்பட்டுள்ளது, இதனால் இது மிகவும் வேகமான மற்றும் கணிக்கக்கூடிய / dev / urandom பாதையிலிருந்து சீரற்ற தரவை எடுத்து, / dev / random / ஒவ்வொரு நொடியும் ஒன்றிணைக்கிறது, / dev / random / தீர்ந்துபோக அனுமதிக்காமல். இதன் விளைவாக ஆண்ட்ராய்டு சிஸ்டம் என்ட்ரோபியின் பற்றாக்குறையை அனுபவிக்கவில்லை, மேலும் மென்மையாக செயல்பட்டது.

ஆண்ட்ராய்டு 3.0 க்குப் பிறகு கூகிள் இந்த பிழையை நொறுக்கியது, இன்னும் சில காரணங்களால், சீடர் இன்னும் மேல்தோன்றும் “பரிந்துரைக்கப்பட்ட மாற்றங்கள்” Android செயல்திறன் மேம்படுத்தலுக்கான பட்டியல்கள். மேலும், சீடர் பயன்பாட்டில் sEFix போன்ற சில ஒப்புமைகள் உள்ளன, அதில் சீடரின் செயல்பாடும் அடங்கும் rngd அல்லது மாற்று hasged , அல்லது / dev / urandom மற்றும் / dev / random இடையே ஒரு சிம்லிங்க் கூட. நவீன ஆண்ட்ராய்டு கணினிகளுக்கு இது முற்றிலும் அர்த்தமற்றது.

புதிய அண்ட்ராய்டு பதிப்புகள் மூன்று முக்கிய கூறுகளில் / dev / random / ஐப் பயன்படுத்துவதால் அதன் அர்த்தமற்ற காரணம் - libcrypto , SSL இணைப்புகளை குறியாக்க, SSH விசைகளை உருவாக்குதல் போன்றவை. WEP / WPA விசைகளை உருவாக்கும் WPA_supplication / hostapd, இறுதியாக, EXT2 / EXT3 / EXT4 கோப்பு முறைமைகளை உருவாக்குவதில் ஐடியை உருவாக்குவதற்கான ஒரு சில நூலகங்கள்.

எனவே எப்போது விதை அல்லது நவீன ஆண்ட்ராய்டு தேர்வுமுறை ஸ்கிரிப்ட்களில் விதை அடிப்படையிலான மேம்பாடுகள் சேர்க்கப்பட்டுள்ளன, என்ன நடக்கிறது என்பது ஒரு சீரழிவு சாதன செயல்திறனில், ஏனெனில் rngd தொடர்ந்து சாதனத்தை எழுப்புவதோடு, CPU அதிர்வெண் அதிகரிப்பையும் ஏற்படுத்தும், இது நிச்சயமாக பேட்டரி நுகர்வுக்கு பாதிப்பை ஏற்படுத்தும்.

ஓடெக்ஸ்

Android சாதனங்களில் உள்ள பங்கு நிலைபொருள் எப்போதும் ஓடெக்ஸ். இதன் பொருள், APK வடிவத்தில் Android பயன்பாடுகளுக்கான நிலையான தொகுப்புடன், / system / app / மற்றும் / system / private-app / இல் காணப்படுகிறது, .odex நீட்டிப்புடன் அதே கோப்பு பெயர்களில் உள்ளன. ஓடெக்ஸ் கோப்புகளில் உகந்ததாக பைட்கோட் பயன்பாடுகள் உள்ளன, அவை ஏற்கனவே வேலிடேட்டர் மற்றும் ஆப்டிமைசர் மெய்நிகர் இயந்திரம் வழியாக கடந்துவிட்டன, பின்னர் தனித்தனி கோப்பில் பதிவு செய்யப்பட்டுள்ளன. dexopt கருவி.

ஆகவே ஓடெக்ஸ் கோப்புகள் மெய்நிகர் கணினியை ஆஃப்லோட் செய்வதற்கும், ஓடெக்ஸ் செய்யப்பட்ட பயன்பாட்டை விரைவாக வழங்குவதற்கும் வழங்கப்படுகின்றன - எதிர்மறையாக, ஒடெக்ஸ் கோப்புகள் ஃபார்ம்வேரில் மாற்றங்களைத் தடுக்கின்றன, மேலும் புதுப்பிப்புகளில் சிக்கல்களை உருவாக்குகின்றன, எனவே இந்த காரணத்திற்காக லீனேஜோஸ் போன்ற பல தனிப்பயன் ரோம் கள் விநியோகிக்கப்படுகின்றன ODEX இல்லாமல் .

ODEX கோப்புகளை உருவாக்குவது Odexer கருவியைப் பயன்படுத்துவது போன்ற பல வழிகளில் செய்யப்படுகிறது - சிக்கல் என்னவென்றால், இது முற்றிலும் மருந்துப்போலி விளைவுதான். நவீன ஆண்ட்ராய்டு சிஸ்டம் / சிஸ்டம் கோப்பகத்தில் ஓடெக்ஸ் கோப்புகளைக் கண்டுபிடிக்காதபோது, ​​கணினி உண்மையில் அவற்றை உருவாக்கி அவற்றை / சிஸ்டம் / டால்விக்-கேச் / கோப்பகத்தில் வைக்கும். எடுத்துக்காட்டாக, நீங்கள் ஒரு புதிய Android பதிப்பை ப்ளாஷ் செய்யும் போது இதுதான் நடக்கிறது, மேலும் இது “பிஸி, பயன்பாடுகளை மேம்படுத்துதல்” என்ற செய்தியை சிறிது நேரம் தருகிறது.

லோமெமொரிகில்லர் மாற்றங்கள்

அண்ட்ராய்டில் பல்பணி மற்ற மொபைல் இயக்க முறைமைகளிலிருந்து வேறுபடுகிறது, இது கிளாசிக்கல் மாதிரியை அடிப்படையாகக் கொண்டது, அங்கு பயன்பாடுகள் பின்னணியில் அமைதியாக வேலை செய்கின்றன, மேலும் பின்னணி பயன்பாடுகளின் எண்ணிக்கையில் எந்த கட்டுப்பாடுகளும் இல்லை ( டெவலப்பர் விருப்பங்களில் ஒன்று அமைக்கப்படாவிட்டால், ஆனால் இது பொதுவாக பரிந்துரைக்கப்படுகிறது) - மேலும், பின்னணி செயலாக்கத்திற்கான மாற்றத்தின் செயல்பாடு நிறுத்தப்படாது, இருப்பினும் குறைந்த நினைவக சூழ்நிலைகளில் பின்னணி பயன்பாடுகளைக் கொல்லும் உரிமையை கணினி கொண்டுள்ளது ( இந்த வழிகாட்டியில் முன்னர் லோமெமொரிகில்லர் மற்றும் நினைவகத்திற்கு வெளியே கொலையாளி பற்றி நாங்கள் பேசிய இடத்தைப் பாருங்கள்) .

மீண்டும் செல்ல lowmemorykiller பொறிமுறை, அண்ட்ராய்டு ஒரு குறிப்பிட்ட அளவு நினைவகம் மற்றும் இடமாற்று-பகிர்வு இல்லாததால் தொடர்ந்து செயல்பட முடியும். பயனர் தொடர்ந்து பயன்பாடுகளைத் தொடங்கலாம் மற்றும் அவற்றுக்கிடையே மாறலாம், மேலும் செயலில் உள்ள பணிகளுக்கு நினைவகத்தை விடுவிக்கவும் முயற்சிக்கவும் கணினி பயன்படுத்தாத பின்னணி பயன்பாடுகளை அமைதியாகக் கொல்லும்.

ஆரம்ப நாட்களில் இது ஆண்ட்ராய்டுக்கு மிகவும் பயனுள்ளதாக இருந்தது, சில காரணங்களால் இது பணி-கொலையாளி பயன்பாடுகளின் வடிவத்தில் பிரபலமடைந்தது, அவை பொதுவாக நன்மை பயக்கும் விட தீங்கு விளைவிக்கும். டாஸ்க்-கில்லர் பயன்பாடுகள் நிர்ணயிக்கப்பட்ட இடைவெளியில் எழுந்திருக்கலாம், அல்லது பயனரால் இயக்கப்படுகின்றன, மேலும் பெரிய அளவிலான ரேமை விடுவிப்பதாகத் தோன்றும், இது நேர்மறையாகக் கருதப்படுகிறது - அதிக இலவச ரேம் என்றால் வேகமான சாதனம், இல்லையா? இருப்பினும், Android இல் இது சரியாக இல்லை.

உண்மையில், அதிக அளவு இலவச ரேம் வைத்திருப்பது உண்மையில் உங்கள் சாதனத்தின் செயல்திறன் மற்றும் பேட்டரி ஆயுளுக்கு தீங்கு விளைவிக்கும். பயன்பாடுகள் Android இன் ரேமில் சேமிக்கப்படும் போது, ​​அவற்றை அழைப்பது, தொடங்குவது போன்றவை மிகவும் எளிதானது. பயன்பாட்டிற்கு மாறுவதற்கு Android கணினி அதிக ஆதாரங்களை ஒதுக்க தேவையில்லை, ஏனெனில் இது ஏற்கனவே நினைவகத்தில் உள்ளது.

இதன் காரணமாக, பணி-கொலையாளிகள் ஒரு காலத்தில் இருந்ததைப் போல உண்மையில் பிரபலமாக இல்லை, இருப்பினும் Android புதியவர்கள் இன்னும் சில காரணங்களால் அவர்களை நம்பியிருக்கிறார்கள் ( தகவல் இல்லாமை, துரதிர்ஷ்டவசமாக) . துரதிர்ஷ்டவசமாக, ஒரு புதிய போக்கு பணி-கொலையாளிகளை மாற்றியுள்ளது, இதன் போக்கு lowmemorykiller பொறிமுறை சரிப்படுத்தும். இது உதாரணமாக இருக்கும் MinFreeManager பயன்பாடு, மற்றும் கணினி பின்னணி பயன்பாடுகளை கொல்லத் தொடங்குவதற்கு முன் ரேம் மேல்நிலை அதிகரிக்க வேண்டும்.

எனவே, எடுத்துக்காட்டாக, நிலையான ரேம் எல்லைகளில் இயங்குகிறது - 4, 8, 12, 24, 32, மற்றும் 40 மெ.பை., மற்றும் 40 எம்பி இலவச சேமிப்பு இடம் நிரப்பப்படும்போது, ​​நினைவகத்தில் ஏற்றப்பட்ட தற்காலிக சேமிப்பு பயன்பாடுகளில் ஒன்று ஆனால் இயங்கவில்லை நிறுத்தப்படும்.

எனவே அடிப்படையில், அண்ட்ராய்டில் எப்போதும் குறைந்தது 40 எம்பி கிடைக்கக்கூடிய நினைவகம் இருக்கும், இது இதற்கு முன்பு மேலும் ஒரு பயன்பாட்டிற்கு இடமளிக்க போதுமானது lowmemorykiller அதன் தூய்மைப்படுத்தும் செயல்முறையைத் தொடங்குகிறது - அதாவது பயனர் அனுபவத்தில் குறுக்கிடாமல் கிடைக்கக்கூடிய அதிகபட்ச ரேமைப் பயன்படுத்த Android எப்போதும் முயற்சிக்கும்.

துரதிர்ஷ்டவசமாக, சில ஹோம்பிரூ ஆர்வலர்கள் பரிந்துரைக்கத் தொடங்கியிருப்பது என்னவென்றால், எல்.எம்.கே உதைப்பதற்கு முன்பு மதிப்பை 100 எம்பிக்கு உயர்த்த வேண்டும். இப்போது பயனர் உண்மையில் இழக்க ரேம் (100 - 40 = 60), எனவே பின்-இறுதி பயன்பாடுகளை சேமிக்க இந்த இடத்தைப் பயன்படுத்துவதற்கு பதிலாக, கணினி இந்த அளவு நினைவகத்தை வைத்திருக்கும் இலவசம் , அதற்கான எந்த நோக்கமும் இல்லாமல்.

எல்.கே.எம் ட்யூனிங் பயனுள்ளதாக இருக்கும் 512 ரேம் கொண்ட பழைய சாதனங்களுக்கு, ஆனால் இனி யார் சொந்தமானது? 2 ஜிபி என்பது நவீன “பட்ஜெட் வரம்பு”, 4 ஜிபி ரேம் சாதனங்கள் கூட இந்த நாட்களில் “நடுத்தர வரம்பில்” காணப்படுகின்றன, எனவே எல்எம்.கே மாற்றங்கள் உண்மையில் காலாவதியானவை மற்றும் பயனற்றவை.

I / O மாற்றங்கள்

Android க்கான நிறைய தேர்வுமுறை ஸ்கிரிப்ட்களில், I / O துணை அமைப்பைக் குறிக்கும் மாற்றங்களை நீங்கள் அடிக்கடி காணலாம். எடுத்துக்காட்டாக, பார்ப்போம் தண்டர்போல்ட்! ஸ்கிரிப்ட், இந்த வரிகளைக் கொண்டுள்ளது:

எதிரொலி 0> $ i / வரிசை / சுழற்சி; எதிரொலி 1024> $ i / வரிசை / nr_ கோரிக்கைகள்;

முதல் வரி ஒரு எஸ்.எஸ்.டி.யைக் கையாள்வதில் ஐ / ஓ திட்டமிடல் வழிமுறைகளை வழங்கும், மற்றும் இரண்டாவது வரிசையின் அதிகபட்ச அளவை 128 முதல் 1024 வரை அதிகரிக்கிறது - ஏனெனில் variable i மாறி தொகுதி சாதனங்களின் மரத்திற்கு ஒரு பாதையைக் கொண்டுள்ளது / sys, மற்றும் ஸ்கிரிப்ட் ஒரு சுழற்சியில் இயங்கும்.

அதைத் தொடர்ந்து, CFQ திட்டமிடலுடன் தொடர்புடைய ஒரு வரியை நீங்கள் காணலாம்:

எதிரொலி 1> $ i / வரிசை / iosched / back_seek_penalty; எதிரொலி 1> $ i / வரிசை / iosched / low_latency; எதிரொலி 1> $ i / வரிசை / iosched / slice_idle;

இதைத் தொடர்ந்து மற்ற திட்டமிடுபவர்களுக்கு சொந்தமான கூடுதல் வரிகள் உள்ளன, ஆனால் இறுதியில், முதல் இரண்டு கட்டளைகள் அர்த்தமற்றவை என்பதால்:

ஒரு நவீன லினக்ஸ் கர்னல் இயல்பாக எந்த வகையான சேமிப்பக ஊடகத்துடன் செயல்படுகிறது என்பதைப் புரிந்து கொள்ள முடியும்.

நீண்ட உள்ளீட்டு-வெளியீட்டு வரிசை ( 1024 போன்றவை) நவீன Android சாதனத்தில் பயனற்றது, உண்மையில் டெஸ்க்டாப்பில் கூட இது அர்த்தமற்றது - இது உண்மையில் பரிந்துரைக்கப்படுகிறது ஹெவி டியூட்டி சேவையகங்கள் . உங்கள் தொலைபேசி கனரக லினக்ஸ் சேவையகம் அல்ல.

ஆண்ட்ராய்டு சாதனத்தைப் பொறுத்தவரை, உள்ளீட்டு-வெளியீட்டில் முன்னுரிமை அளிக்கப்பட்ட பயன்பாடுகள் எதுவும் இல்லை மற்றும் இயந்திர இயக்கி இல்லை, எனவே சிறந்த திட்டமிடுபவர் நூப் / ஃபிஃபோ-வரிசை, எனவே இந்த வகை திட்டமிடுபவர் “ மாற்றங்கள் ” I / O துணை அமைப்புக்கு சிறப்பு அல்லது அர்த்தமுள்ள எதையும் செய்யவில்லை. உண்மையில், அந்த பல திரை பட்டியல் கட்டளைகள் அனைத்தும் ஒரு எளிய சுழற்சியால் சிறப்பாக மாற்றப்படுகின்றன:

நான் / sys / block / mmc * இல்; do echo noop> $ i / queue / Scheduler echo 0> $ i / queue / iostats முடிந்தது

இது I / O புள்ளிவிவரங்களின் குவிப்பிலிருந்து அனைத்து இயக்ககங்களுக்கும் நூப் திட்டமிடலை இயக்கும், இது செயல்திறனில் நேர்மறையான தாக்கத்தை ஏற்படுத்த வேண்டும், இருப்பினும் மிகச் சிறிய மற்றும் முற்றிலும் புறக்கணிக்கத்தக்க ஒன்றாகும்.

செயல்திறன் ஸ்கிரிப்ட்களில் பெரும்பாலும் காணப்படாத மற்றொரு பயனற்ற I / O மாற்றங்கள் 2MB வரை எஸ்டி கார்டுகளுக்கான அதிகரித்த வாசிப்பு மதிப்புகள் ஆகும். பயன்பாடு அந்தத் தரவை அணுகுவதைக் கோருவதற்கு முன்பு, மீடியாவிலிருந்து ஆரம்ப தரவு வாசிப்பதற்கான வாசிப்பு-முன்னோக்கு வழிமுறை. எனவே அடிப்படையில், கர்னல் எதிர்காலத்தில் என்ன தரவு தேவைப்படும் என்பதைக் கண்டுபிடிக்க முயற்சிக்கும், மேலும் அதை ரேமில் முன் ஏற்றும், இதனால் வருவாய் நேரத்தைக் குறைக்க வேண்டும். இது காகிதத்தில் நன்றாகத் தெரிகிறது, ஆனால் படிக்க-முன்னோக்கி வழிமுறை அடிக்கடி நிகழ்கிறது தவறு , இது உள்ளீட்டு-வெளியீட்டின் முற்றிலும் தேவையற்ற செயல்பாடுகளுக்கு வழிவகுக்கிறது, அதிக ரேம் நுகர்வு குறிப்பிடப்படவில்லை.

1 முதல் 8 எம்பி வரையிலான உயர் வாசிப்பு மதிப்புகள் RAID- வரிசைகளில் பரிந்துரைக்கப்படுகின்றன, ஆனால் Android சாதனங்களுக்கு, 128 KB இன் இயல்புநிலை மதிப்பை விட்டுச் செல்வது சிறந்தது.

மெய்நிகர் நினைவக மேலாண்மை அமைப்பு மாற்றங்கள்

மெய்நிகர் நினைவக மேலாண்மை துணை அமைப்பை சரிசெய்வது மற்றொரு பொதுவான “தேர்வுமுறை” நுட்பமாகும். இது பொதுவாக இரண்டு கர்னல் மாறிகள், vm.dirty_background_ratio மற்றும் vm.dirty_ratio ஐ மட்டுமே குறிவைக்கிறது, அவை “அழுக்கு” ​​தரவை சேமிப்பதற்கான இடையகத்தின் அளவை சரிசெய்யும். அழுக்கு தரவு என்பது பொதுவாக வட்டில் எழுதப்பட்ட தரவு, ஆனால் இன்னும் நினைவகத்தில் உள்ளது மற்றும் வட்டில் எழுத காத்திருக்கிறது.

வி.எம் மேலாண்மை துணை அமைப்புக்கு லினக்ஸ் டிஸ்ட்ரோஸ் மற்றும் ஆண்ட்ரோயிஸ் இரண்டிலும் உள்ள பொதுவான மாற்ற மதிப்புகள் பின்வருமாறு:

vm.dirty_background_ratio = 10 vm.dirty_ratio = 20

எனவே இது என்ன செய்ய முயற்சிக்கிறது என்றால், அழுக்கு தரவு இடையகம் மொத்த ரேமில் 10% ஆக இருக்கும்போது, ​​அது விழித்தெழுகிறது pdflush ஓட்டம் மற்றும் வட்டில் தரவை எழுதத் தொடங்குகிறது - வட்டில் தரவைப் பதிவுசெய்யும் செயல்பாடு இருந்தால் மிகவும் தீவிரமானது , இடையக தொடர்ந்து வளரும், மேலும் இது கிடைக்கக்கூடிய ரேமில் 20% ஐ அடையும் போது, ​​கணினி அடுத்தடுத்த இடையக இல்லாமல் ஒத்திசைவு பயன்முறையில் அடுத்தடுத்த எழுதும் செயல்பாட்டிற்கு மாறும். இதன் பொருள் வட்டு பயன்பாட்டிற்கு எழுதும் வேலை இருக்கும் தரவு வட்டில் எழுதப்படும் வரை தடுக்கப்பட்டது (AKA ‘பின்னடைவு’).

நீங்கள் புரிந்து கொள்ள வேண்டியது என்னவென்றால், இடையக அளவு இருந்தாலும் கூட 10% ஐ எட்டவில்லை , கணினி 30 விநாடிகளுக்குப் பிறகு தானாகவே pdflush இல் உதைக்கும். 10/20 கலவையானது மிகவும் நியாயமானதாகும், எடுத்துக்காட்டாக 1 ஜிபி ரேம் கொண்ட ஒரு சாதனத்தில் இது 100/200 எம்பி ரேமுக்கு சமமாக இருக்கும், இது வெடிப்பு பதிவுகளின் அடிப்படையில் போதுமானதை விட அதிகமாக இருக்கும், அங்கு வேகம் பெரும்பாலும் கணினி NAND இல் வேக பதிவிற்குக் கீழே இருக்கும் பயன்பாடுகளை நிறுவும் போது அல்லது கணினியிலிருந்து கோப்புகளை நகலெடுக்கும் போது -மெமரி அல்லது எஸ்டி-கார்டு.

சில காரணங்களால், ஸ்கிரிப்ட் எழுத்தாளர்கள் இந்த மதிப்பை இன்னும் உயர்ந்த, அபத்தமான விகிதங்களுக்கு தள்ள முயற்சிக்கின்றனர். உதாரணமாக நாம் காணலாம் எக்ஸ்பிளிக்ஸ் தேர்வுமுறை ஸ்கிரிப்ட் விகிதம் 50/90 ஆக இருக்கும்.

sysctl -w vm.dirty_background_ratio = 50 sysctl -w vm.dirty_ratio = 90

1 ஜிபி நினைவகம் கொண்ட சாதனத்தில், இது ஒரு அழுக்கு இடையகத்தின் வரம்பை 500/900 எம்பிக்கு அமைக்கிறது, இது Android சாதனத்திற்கு முற்றிலும் பயனற்றது, ஏனெனில் இது கீழ் மட்டுமே செயல்படும் வட்டில் நிலையான பதிவு - கனமான லினக்ஸ் சேவையகத்தில் மட்டுமே நடக்கும் ஒன்று.

தண்டர்போல்ட்! ஸ்கிரிப்ட் மிகவும் நியாயமான மதிப்பைப் பயன்படுத்துகிறது, ஆனால் ஒட்டுமொத்தமாக, இது இன்னும் அர்த்தமற்றது:

['$ mem' -lt 524288]; sysctl -w vm.dirty_background_ratio = 15; sysctl -w vm.dirty_ratio = 30; elif ['$ mem' -lt 1049776]; பின்னர் sysctl -w vm.dirty_background_ratio = 10; sysctl -w vm.dirty_ratio = 20; else sysctl -w vm.dirty_background_ratio = 5; sysctl -w vm.dirty_ratio = 10; fi;

முதல் இரண்டு கட்டளைகள் 512 எம்பி ரேம் கொண்ட ஸ்மார்ட்போன்களில் இயக்கப்படுகின்றன, இரண்டாவது - 1 ஜிபி மற்றும் பிற - 1 ஜிபிக்கு மேல். ஆனால் உண்மையில் இயல்புநிலை அமைப்புகளை மாற்ற ஒரே ஒரு காரணம் உள்ளது - மிக மெதுவான உள் நினைவகம் அல்லது மெமரி கார்டு கொண்ட சாதனம். இந்த விஷயத்தில் மாறிகளின் மதிப்புகளை பரப்புவது நியாயமானது, அதாவது இது போன்ற ஒன்றை உருவாக்குவது:

sysctl -w vm.dirty_background_ratio = 10 sysctl -w vm.dirty_ratio = 60

பின்னர், ஒரு எழுச்சி அமைப்பு செயல்பாடுகளை எழுதும்போது, ​​வட்டில் தரவைப் பதிவு செய்யாமல், கடைசி வரை ஒத்திசைவு பயன்முறைக்கு மாறாது, இது பதிவு செய்யும் போது பயன்பாடுகள் பின்னடைவைக் குறைக்க அனுமதிக்கும்.

கூடுதல் பயனற்ற மாற்றங்கள் மற்றும் செயல்திறன் டியூனிங்

உண்மையில் எதுவும் செய்யாத இன்னும் நிறைய “மேம்படுத்தல்கள்” உள்ளன. அவர்களில் பெரும்பாலோர் வெறுமனே எந்த விளைவையும் கொண்டிருக்கவில்லை, மற்றவர்கள் மேம்படலாம் சில செயல்திறனின் அம்சம், சாதனத்தை பிற வழிகளில் இழிவுபடுத்தும் போது ( வழக்கமாக இது செயல்திறன் மற்றும் பேட்டரி வடிகால் வரை கொதிக்கிறது) .

Android கணினி மற்றும் சாதனத்தைப் பொறுத்து பயனுள்ள அல்லது பயனுள்ளதாக இருக்கும் சில கூடுதல் பிரபலமான மேம்படுத்தல்கள் இங்கே.

  • முடுக்கம் - செயல்திறனை மேம்படுத்துவதற்கான சிறிய முடுக்கம் மற்றும் குறைமதிப்பீடு - கொஞ்சம் பேட்டரியை சேமிக்கிறது.
  • தரவுத்தள உகப்பாக்கம் - கோட்பாட்டில் இது வேண்டும் சாதன செயல்திறனில் முன்னேற்றம் கொடுங்கள், ஆனால் அது சந்தேகத்திற்குரியது.
  • Zipalign - முரண்பாடாக, கடையில் உள்ள APK- கோப்பில் உள்ளமைக்கப்பட்ட Android SDK அம்ச உள்ளடக்க சீரமைப்பு இருந்தபோதிலும், நீங்கள் நிறைய மென்பொருள்களை zipalign மூலம் பரப்பவில்லை என்பதைக் காணலாம்.
  • தேவையற்ற கணினி சேவைகளை முடக்கு, பயன்படுத்தப்படாத அமைப்பு மற்றும் எப்போதாவது பயன்படுத்தப்படும் மூன்றாம் தரப்பு பயன்பாடுகளை நீக்குதல். அடிப்படையில், ப்ளோட்வேரை நிறுவல் நீக்குகிறது.
  • ஒரு குறிப்பிட்ட சாதனத்திற்கான மேம்படுத்தல்களுடன் தனிப்பயன் கர்னல் (மீண்டும், அனைத்து கருக்களும் சமமாக நல்லவை அல்ல).
  • ஏற்கனவே விவரிக்கப்பட்டுள்ள ஐ / ஓ திட்டமிடல் நூப்.
  • செறிவு அல்காரிதம் டி.சி.பி வெஸ்ட்வுட் - வயர்லெஸ் நெட்வொர்க்குகளுக்கான இயல்புநிலை ஆண்ட்ராய்டு கியூபிக்கில் மிகவும் திறமையாக பயன்படுத்தப்படுகிறது, இது தனிப்பயன் கர்னல்களில் கிடைக்கிறது.

பயனற்ற அமைப்புகள் build.prop

எக்ஸ்டிஏ டெவலப்பர்கள் மன்றத்திலிருந்து லாரா கிராஃப்ட் 304 ஒரு ஆய்வை மேற்கொண்டதுடன், “வல்லுநர்கள்” பயன்பாட்டிற்கு பரிந்துரைக்கப்படும் / சிஸ்டம் / பில்ட்.பிராப் அமைப்புகளின் ஈர்க்கக்கூடிய எண்ணிக்கையானது AOSP மற்றும் CyanogenMod மூலங்களில் இல்லை என்பதைக் கண்டறிந்துள்ளது. இங்கே பட்டியல்:

ro.ril.disable.power.collapse ro.mot.eri.losalert.delay ro.config.hw_fast_dormancy ro.config.hw_power_saving windowsmgr.max_events_per_sec persist.cust.tel.eons ro.max.fling_velocity ro.min. kernel.checkjni dalvik.vm.verify-bytecode debug.performance.tuning video.accelerate.hw ro.media.dec.jpeg.memcap ro.config.nocheckin profiler.force_disable_ulog profiler.force_disable_err_rpt ersist.sys.
குறிச்சொற்கள் Android வளர்ச்சி 12 நிமிடங்கள் படித்தேன்