الأكثر شعبية الروبوت الخرافات فضح

هناك الكثير من الأدلة التعليمية المخصصة لزيادة أداء Android ونصائح التحسين العامة. بعضها قانوني ، والبعض الآخر يعتمد فقط من الناحية النظرية ، أو أساليب التشغيل التي عفا عليها الزمن في نظام أندرويد ، أو مجرد هراء عادي. يتضمن ذلك توصيات للتبديل ، والقيم المضافة إلى build.prop ، والتغييرات المتغيرة في Linux kernel.

حتى أن هناك الكثير من "البرامج النصية للتحسين" الموجودة هناك ، والملفات المضغوطة القابلة للإزالة الكل في واحد والتي تعد بزيادة الأداء وعمر البطارية وأشياء أخرى بشكل ملحوظ. يمكن أن تعمل بعض التعديلات في الواقع ، ولكن الغالبية هي ببساطة تأثير وهمي ، أو ما هو أسوأ ، في الواقع لها تأثير سلبي على جهازك.

هذا لا يعني أن الناس يطلقون نصوصًا مشوهة عن قصد - هناك بالتأكيد تطبيقات زائفة مدفوعة الأجر في متجر Play ، ولكن مخطوطات التحسين التي تم إصدارها في منتديات الأندرويد حسنة النية عمومًا ، يحدث فقط أن المطور قد يكون على دراية خاطئة ، أو مجرد تجربة مختلف تعديلات التحسين. لسوء الحظ ، هناك نوع من تأثير كرة الثلج يميل إلى الحدوث ، خاصة في البرامج النصية للتحسين "الكل في واحد". حفنة صغيرة من القرص قد تفعل شيئًا في الواقع ، في حين أن مجموعة أخرى من القرص في نص قد لا تفعل شيئًا على الإطلاق - ومع ذلك ، فإن هذه البرامج النصية تنتشر على أنها رصاصات سحرية ، دون أي تحقيق حقيقي في ما ينجح ، وما لا ينجح .

وبالتالي ، تستخدم الكثير من البرامج النصية للتحسين الكل في واحد الأساليب نفسها ، بعضها قديم أو ضار تمامًا على المدى الطويل. باختصار ، غالبية نصوص التحسين "الكل في واحد" ليست سوى موالفات موصى بها ذات صفائح ، مع عدم وجود فكرة واضحة عن كيفية أو لماذا تعمل هذه التحسينات - يقوم المستخدمون بعد ذلك بوميض البرامج النصية ، ويدعون أن أداءها أسرع فجأة ( في الواقع ، على الأرجح ، كان الإجراء البسيط للغاية لإعادة تشغيل أجهزتهم هو الذي تسبب في زيادة الأداء ، حيث يتم تنظيف كل شيء في ذاكرة الوصول العشوائي للجهاز) .

في هذه المقالة الحصرية Appuals ، سنسلط الضوء على بعض التوصيات الأكثر شيوعًا من أجل " تحسين" أداء Android ، وما إذا كانت مجرد أسطورة أو قرص مشروع لأداء الجهاز.

مبادلة

يوجد في الجزء العلوي من قائمة الأساطير مقايضة Android - وهو أمر سخيف للغاية من حيث التفكير على أنه تحسين Android. الغرض الرئيسي من Swaps هو إنشاء ملف ترحيل الصفحات وتوصيله ، مما سيوفر مساحة تخزين في الذاكرة. يبدو هذا معقولًا على الورق ، ولكنه ينطبق فعليًا على خادم ، والذي لا يوجد لديه أي تفاعل.

عند استخدامك لمبادلة هاتف أندرويد الخاص بك بانتظام ، سيؤدي ذلك إلى تأخر شديد ينشأ عن الأشياء التي تتخطى ذاكرة التخزين المؤقت. تخيل ، على سبيل المثال ، إذا حاول أحد التطبيقات عرض رسم ، يتم تخزينه في المبادلة ، والذي يتعين عليه الآن إعادة تحميل القرص بعد تحرير المساحة عن طريق وضع مبادلة البيانات مع تطبيق آخر. انها حقا فوضوي.

يمكن لبعض المتحمسين للتحسين أن يقولوا أن المبادلة لم تقدم أي مشاكل ، ولكنها ليست مبادلة مما يعزز الأداء - إنها آلية مدمجة منخفضة الأداء تعمل بنظام أندرويد ، والتي ستقضي بانتظام على العمليات المتضخمة ذات الأولوية العالية التي لا يتم استخدامها. تم تصميم LMK خصيصًا للتعامل مع ظروف انخفاض الذاكرة ، ويتم التذرع به من عملية kswapd ، ويقتل عمومًا عمليات مساحة المستخدم. هذا يختلف عن OOMkiller (قاتل خارج الذاكرة) ، لكن هذا موضوع مختلف تمامًا.

النقطة المهمة هي أن الجهاز الذي يحتوي على ذاكرة وصول عشوائي (RAM) سعة 1 جيجا بايت لا يمكنه أبدًا الوصول إلى بيانات الأداء الضرورية في المبادلة ، وبالتالي فإن التبادل ليس مطلوبًا على الإطلاق في Android. إن تطبيقه محفوف ببساطة بالتأخير ويؤدي إلى تدهور الأداء ، بدلاً من تحسينه.

zRAM - عفا عليها الزمن ولم تعد فعالة

zRAM هي طريقة مجربة وفعالة لتحسين الجهاز ، للأجهزة الأقدم - فكر في الأجهزة المستندة إلى KitKat والتي تعمل فقط على حوالي 512 ميغابايت من ذاكرة الوصول العشوائي. إن حقيقة أن بعض الأشخاص ما زالوا يقومون بتضمين قرص zRAM في البرامج النصية للتحسين ، أو التوصية zRAM كنوع من قرص التحسين الحديث ، هو مثال على الأشخاص الذين لا يتبعون عمومًا أحدث البروتوكولات التشغيلية.

تم تصميم zRAM للشركات المملوكة للدولة متعددة النواحي في نطاق الميزانية ، مثل الأجهزة التي تستخدم شرائح MTK و 512 ميغابايت من ذاكرة الوصول العشوائي. الهواتف الصينية رخيصة جدا ، في الأساس. ما يقوم به zRAM بشكل أساسي هو فصل النواة عبر دفق التشفير.

عند استخدام zRAM على الأجهزة الأقدم ذات جوهر واحد ، حتى إذا كان zRAM يوصى به على هذه الأجهزة ، تميل كميات كبيرة من التخلف إلى الظهور. يحدث هذا أيضًا مع تقنية KSM ( دمج صفحات Kernel Same) التي تجمع بين صفحات الذاكرة المتطابقة في محاولة لتوفير مساحة خالية. هذا في الواقع موصى به من قِبل Google ، ولكنه يؤدي إلى تأخر أكبر في الأجهزة القديمة ، لأن الرؤوس الأساسية النشطة باستمرار تعمل باستمرار من الذاكرة للبحث عن صفحات مكررة. في الأساس ، فإن محاولة تشغيل قرص التحسين يبطئ الجهاز أكثر من ذلك ، ومن المفارقات.

بذارة - عفا عليها الزمن منذ أندرويد 3.0

واحدة من أكثر نصائح التحسين التي تمت مناقشتها بين devs Android هي seeder ، ونحن على يقين من أن شخصًا ما قد يحاول إثبات خطأنا في هذا الموضوع - لكن أولاً نحتاج إلى فحص تاريخ seeder.

تطبيق بزار لنظام أندرويد

نعم ، هناك عدد كبير من التقارير التي تعلن عن أداء أفضل لنظام Android بعد التثبيت على أجهزة Android الأقدم . ومع ذلك ، يعتقد الأشخاص لأي سبب من الأسباب أن هذا يعني أيضًا أنه تحسين ملائم لأجهزة Android الحديثة ، وهو أمر سخيف للغاية. إن حقيقة استمرار Seeder في تقديمها وعرضها كأداة لتخفيض التأخر "الحديث" هي مثال على التضليل - على الرغم من أن هذا ليس خطأ من مطور Seeder ، حيث تشير صفحة Play Store إلى أن Seeder أقل فعالية بعد Android 4.0+. ولكن لأي سبب كان ، لا يزال Seeder ينبثق في مناقشات التحسين لأنظمة Android الحديثة.

ما تقوم به Seeder أساسًا لنظام Android 3.0 هو معالجة الخلل الذي يستخدم فيه وقت تشغيل Android / dev / random / file بنشاط للحصول على entropy. سيصبح / dev / random / buffer غير مستقر ، وسيتم حظر النظام حتى يملأ الكمية المطلوبة من البيانات - فكر في أشياء صغيرة مثل مختلف أجهزة الاستشعار والأزرار الموجودة على جهاز Android.

استخدم مؤلف Seeder نظام التشغيل Linux- dev rngd ، وتم تجميعه للحصول على نظام Android المساعد ، بحيث أخذ بيانات عشوائية من مسار أسرع وأكثر قابلية للتنبؤ به / dev / urandom ، ودمجها في dev / عشوائي / كل ثانية ، دون السماح / dev / random / أن تصبح استنفدت. نتج عن ذلك نظام أندرويد لم يواجه نقصًا في الانتروبيا ، وأدى أكثر سلاسة.

حطم Google هذا الخطأ بعد Android 3.0 ، ولكن لسبب ما ، لا يزال Seeder يظهر في قوائم "القرص الموصى به" لتحسين أداء Android. علاوة على ذلك ، يحتوي تطبيق Seeder على عدد قليل من نظائره مثل sEFix والتي تشمل وظائف Seeder ، سواء باستخدام rngd أو البديل البديل ، أو حتى مجرد ارتباط بين / dev / urandom و / dev / random. هذا لا معنى له على الإطلاق لأنظمة Android الحديثة.

السبب في عدم جدواه هو أن إصدارات Android الأحدث تستخدم / dev / random / في ثلاثة مكونات رئيسية - libcrypto ، لتشفير اتصالات SSL ، وإنشاء مفاتيح SSH ، إلخ. WPA_supplication / hostapd التي تنشئ مفاتيح WEP / WPA ، وأخيراً ، حفنة من مكتبات لإنشاء معرف في إنشاء أنظمة الملفات EXT2 / EXT3 / EXT4.

لذلك عندما يتم تضمين التحسينات المستندة إلى Seeder أو Seeder في البرامج النصية الحديثة لتحسين Android ، فإن ما يحدث في النهاية هو تدهور في أداء الجهاز ، لأن rngd سوف يوقظ الجهاز باستمرار ويسبب زيادة في تردد وحدة المعالجة المركزية ، مما يؤثر سلبًا على استهلاك البطارية .

Odex

البرامج الثابتة الأسهم على أجهزة أندرويد إلى حد كبير دائما odex. هذا يعني أنه إلى جانب الحزمة القياسية لتطبيقات Android بتنسيق APK ، الموجودة في / system / app / و / system / priv-app / ، توجد أسماء الملفات نفسها مع ملحق .odex. تحتوي ملفات odex على تطبيقات bytecode محسّنة مرت بالفعل من خلال جهاز افتراضي للمحقق والمحسن ، ثم تم تسجيلها في ملف منفصل باستخدام شيء مثل أداة dexopt .

لذا فإن ملفات odex تهدف إلى إلغاء تحميل الجهاز الظاهري وتقديم بدء تشغيل سريع للتطبيق odexed - على الجانب السلبي ، تمنع ملفات ODEX إجراء تعديلات على البرامج الثابتة ، وخلق مشاكل مع التحديثات ، لذلك لهذا السبب يتم توزيع العديد من الأقراص المدمجة المخصصة مثل LineageOS دون ODEX .

يتم إنشاء ملفات ODEX بعدة طرق ، مثل استخدام أداة Odexer - المشكلة هي أن لها تأثيرًا هميًا بحتًا. عندما لا يعثر نظام Android الحديث على ملفات odex في دليل / system ، سيقوم النظام بإنشائها بالفعل ووضعها في الدليل / system / dalvik-cache /. هذا هو بالضبط ما يحدث عندما تقوم ، على سبيل المثال ، بوميض إصدار Android جديد ويعطي الرسالة "مشغول ، تحسين التطبيقات" لفترة من الوقت.

قرص منخفض القرص

تعدد المهام في Android يختلف عن أنظمة تشغيل الهواتف المحمولة الأخرى ، بمعنى أنه يعتمد على نموذج كلاسيكي حيث تعمل التطبيقات بهدوء في الخلفية ، ولا توجد قيود على عدد تطبيقات الخلفية ( ما لم يتم تعيين أحدها في "خيارات المطور" ، ولكن هذا هو يوصى به بشكل عام) - علاوة على ذلك ، لا تتوقف وظيفة الانتقال إلى تنفيذ الخلفية ، على الرغم من أن النظام يحتفظ بالحق في قتل تطبيقات الخلفية في مواقف انخفاض الذاكرة ( انظر أين تحدثنا عن lowmemorykiller و kill-out-memory kill في وقت سابق من هذا دليل) .

للعودة إلى آلية lowmemorykiller ، يمكن أن يستمر Android في العمل مع قدر محدود من الذاكرة وعدم وجود قسم للتبادل . يمكن للمستخدم مواصلة تشغيل التطبيقات والتبديل بينها ، وسيقتل النظام بصمت تطبيقات الخلفية غير المستخدمة لمحاولة تحرير الذاكرة للمهام النشطة.

كان هذا مفيدًا جدًا لنظام Android في الأيام الأولى ، على الرغم من أنه أصبح لسبب ما شعبية في شكل تطبيقات قاتلة للمهام ، والتي تعتبر أكثر ضررًا بشكل عام من الفائدة. إما أن تستيقظ تطبيقات Tasker-killer على فترات زمنية محددة ، أو يديرها المستخدم ، ويبدو أنها تحرر كميات كبيرة من ذاكرة الوصول العشوائي ، والتي تعتبر إيجابية - ذاكرة RAM أكثر حرية تعني جهاز أسرع ، أليس كذلك؟ هذا ليس هو الحال بالضبط مع نظام أندرويد.

في الواقع ، يمكن أن يكون وجود كمية كبيرة من ذاكرة الوصول العشوائي المجانية ضارًا على أداء جهازك وعمر البطارية. عندما يتم تخزين التطبيقات على ذاكرة الوصول العشوائي لنظام Android ، فإنه من الأسهل بكثير استدعاءها وتشغيلها ، وما إلى ذلك. لا يحتاج نظام Android إلى تخصيص الكثير من الموارد للتبديل إلى التطبيق ، لأنه موجود بالفعل في الذاكرة.

لهذا السبب ، فإن قتلة المهام لا يتمتعون بشعبية كبيرة كما كانوا من قبل ، على الرغم من أن مبتدئين Android ما زالوا يميلون إلى الاعتماد عليهم لسبب ما ( نقص المعلومات ، للأسف) . لسوء الحظ ، حل اتجاه جديد محل قتلة المهام ، وهو اتجاه ضبط آلية lowmemorykiller . قد يكون هذا على سبيل المثال تطبيق MinFreeManager ، والفكرة الرئيسية هي زيادة مقدار حمل ذاكرة الوصول العشوائي (RAM) قبل أن يبدأ النظام في قتل تطبيقات الخلفية.

على سبيل المثال ، تعمل ذاكرة الوصول العشوائي القياسية عند الحدود - 4 و 8 و 12 و 24 و 32 و 40 ميجابايت ، وعندما يتم ملء مساحة التخزين المجانية البالغة 40 ميجابايت ، فإن أحد التطبيقات المخزنة مؤقتًا يتم تحميلها في الذاكرة ولكن لا يعمل سيتم إنهاء.

لذلك ، سيكون لدى Android دائمًا ما لا يقل عن 40 ميغابايت من الذاكرة المتوفرة ، وهو ما يكفي لاستيعاب تطبيق واحد آخر قبل أن يبدأ برنامج lowmemorykiller عملية التنظيف - مما يعني أن Android سيبذل دائمًا قصارى جهده لاستخدام أكبر قدر ممكن من ذاكرة الوصول العشوائي المتاحة دون التدخل في تجربة المستخدم.

للأسف ، ما أوصى به بعض عشاق البيرة هو رفع القيمة إلى 100 ميجابايت قبل بدء LMK. الآن سيفقد المستخدم ذاكرة الوصول العشوائي (100 - 40 = 60) ، لذا بدلاً من استخدام هذه المساحة للتخزين التطبيقات النهائية ، فإن النظام سوف يبقي هذه الكمية خالية من الذاكرة ، مع عدم وجود أي غرض على الإطلاق.

يمكن أن يكون ضبط LKM مفيدًا للأجهزة الأقدم مع ذاكرة RAM 512 ، ولكن من الذي يمتلك هذه الأجهزة بعد الآن؟ 2 غيغابايت هي "مجموعة الميزانية" الحديثة ، حتى أجهزة ذاكرة الوصول العشوائي (RAM) سعة 4 جيجا بايت تعتبر "متوسطة المدى" هذه الأيام ، لذلك تعد تعديلات LMK قديمة وغير مجدية.

أنا / يا القرص

في الكثير من البرامج النصية للتحسين لنظام Android ، غالبًا ما تجد تعديلات تعالج نظام الإدخال / الإخراج الفرعي. على سبيل المثال ، دعنا نلقي نظرة على ThunderBolt! البرنامج النصي ، الذي يحتوي على هذه الأسطر:

 echo 0> $ i / queue / rotational؛ صدى 1024> $ i / queue / nr_requests؛ 

سيعطي السطر الأول إرشادات جدولة I / O في التعامل مع SSD ، والثاني يزيد من الحد الأقصى لحجم قائمة الانتظار I / O من 128 إلى 1024 - لأن المتغير $ i يحتوي على مسار إلى شجرة أجهزة الكتلة في / تميز الكلية ، ويتم تشغيل البرنامج النصي في حلقة.

بعد ذلك ، يمكنك العثور على سطر مرتبط بجدولة CFQ:

 echo 1> $ i / queue / iosched / back_seek_penalty؛ echo 1> $ i / queue / iosched / low_latency؛ echo 1> $ i / queue / iosched / slice_idle؛ 

يتبع ذلك المزيد من الخطوط التي تنتمي إلى المخططين الآخرين ، ولكن في النهاية ، فإن أول أمرين لا معنى لهما:

يمكن لنواة Linux الحديثة فهم نوع وسيط التخزين الذي يعمل به بشكل افتراضي.

قائمة انتظار المدخلات والمخرجات طويلة ( مثل 1024) لا طائل منه على جهاز Android الحديث ، في الواقع لا معنى له حتى على سطح المكتب - حقا الموصى بها فقط على خوادم الخدمة الشاقة . هاتفك ليس خادم Linux شديد التحمل.

بالنسبة إلى جهاز Android ، لا توجد أي تطبيقات ذات أولوية في مخرجات الإدخال ولا يوجد برنامج تشغيل ميكانيكي ، لذا فإن أفضل مخطط هو قائمة الانتظار noop / FIFO ، وبالتالي فإن هذا النوع من الجدولة " قرص" لا يقوم بأي شيء خاص أو مفيد I / O النظام الفرعي. في الواقع ، كل هذه الأوامر القائمة على شاشات متعددة يتم استبدالها بشكل أفضل بدائرة بسيطة:

 من أجل i in / sys / block / mmc *؛ لا صدى noop> $ i / قائمة الانتظار / جدولة echo 0> $ i / قائمة الانتظار / iostats القيام به 

هذا من شأنه تمكين برنامج جدولة noop لجميع محركات الأقراص من تراكم إحصاءات I / O ، والتي ينبغي أن يكون لها تأثير إيجابي على الأداء ، على الرغم من أنه صغير جدًا ولا يكاد يذكر.

قرص إدخال / إخراج آخر عديم الفائدة غالبًا ما يوجد في البرامج النصية للأداء هو زيادة قيم قراءة بطاقات SD حتى 2 ميجابايت. تتمثل آلية القراءة في قراءة البيانات المبكرة من الوسائط ، قبل أن يطلب التطبيق الوصول إلى تلك البيانات. لذلك ، في الأساس ، ستحاول النواة معرفة البيانات التي ستكون مطلوبة في المستقبل ، وتحميلها مسبقًا في ذاكرة الوصول العشوائي ، والتي من شأنها أن تقلل من وقت الإرجاع. يبدو هذا رائعًا على الورق ، لكن خوارزمية القراءة للقراءة خاطئة غالبًا ، مما يؤدي إلى عمليات إدخال غير ضرورية تمامًا ، ناهيك عن ارتفاع استهلاك ذاكرة الوصول العشوائي.

يوصى بقيم قراءة عالية تتراوح بين 1 - 8 ميغابايت في صفائف RAID ، ولكن من الأفضل أن تترك القيمة الحقيقية البالغة 128 كيلو بايت لأجهزة Android.

نظام إدارة الذاكرة الافتراضية

تقنية "التحسين" الشائعة الأخرى هي ضبط النظام الفرعي لإدارة الذاكرة الافتراضية. يستهدف هذا عادة متغيرات kernel اثنين فقط ، vm.dirty_background_ratio و vm.dirty_ratio ، وهما لضبط حجم المخزن المؤقت لتخزين البيانات "القذرة". عادةً ما تكون البيانات المتسخة عبارة عن بيانات تمت كتابتها إلى القرص ، ولكن لا يزال هناك المزيد في الذاكرة وينتظر كتابتها إلى القرص.

ستكون قيم القرص النموذجية في كل من توزيعات Linux و Androis للنظام الفرعي لإدارة VM كما يلي:

 vm.dirty_background_ratio = 10 vm.dirty_ratio = 20 

لذا فإن ما يحاول القيام به هو أنه عندما يكون المخزن المؤقت للبيانات القذرة 10٪ من إجمالي ذاكرة الوصول العشوائي ، فإنه يوقظ تدفق pdflush ويبدأ في كتابة البيانات على القرص - إذا كانت عملية تسجيل البيانات على القرص شديدة للغاية ، سيستمر المخزن المؤقت في النمو ، وعندما يصل إلى 20 ٪ من ذاكرة الوصول العشوائي المتاحة ، سيقوم النظام بالتبديل إلى عملية الكتابة اللاحقة في الوضع المتزامن - دون وجود مخزن مؤقت مسبق. هذا يعني أنه سيتم حظر عمل الكتابة إلى تطبيق القرص ، حتى تتم كتابة البيانات على القرص (AKA 'lag').

ما يجب أن تفهمه هو أنه حتى إذا لم يصل حجم المخزن المؤقت إلى 10٪ ، فسيتم تشغيل النظام تلقائيًا في pdflush بعد 30 ثانية. تعتبر مجموعة 10/20 معقولة جدًا ، على سبيل المثال على جهاز به ذاكرة وصول عشوائي (RAM) بسعة 1 جيجا بايت ، فإن هذا يساوي 100/200 ميجابايت من ذاكرة الوصول العشوائي ، وهو أكثر من كافٍ من حيث سجلات الاندفاع حيث تكون السرعة في كثير من الأحيان أقل من سجل السرعة في نظام NAND الذاكرة أو بطاقة الذاكرة الرقمية المؤمنة ، مثل عند تثبيت التطبيقات أو نسخ الملفات من جهاز كمبيوتر.

لسبب ما ، يحاول مؤلفو البرامج النصية دفع هذه القيمة إلى مستوى أعلى ، لخفض الأسعار. على سبيل المثال ، يمكننا أن نجد في البرنامج النصي لتحسين Xplix معدلًا يصل إلى 50/90.

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

على جهاز به ذاكرة 1 جيجا بايت ، يحدد هذا حدًا لمخزن مؤقت قذر يصل إلى 500/900 ميغابايت ، وهو عديم الفائدة تمامًا لجهاز Android ، لأنه لن يعمل إلا تحت تسجيل مستمر على القرص - وهو أمر لا يحدث إلا في صورة ثقيلة خادم لينكس.

صاعقة! يستخدم Script قيمة أكثر منطقية ، ولكن بشكل عام ، لا يزال بلا معنى إلى حد ما:

 إذا ["$ 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؛ sysctl -w vm.dirty_background_ratio = 5؛ sysctl -w vm.dirty_ratio = 10؛ فاي. 

يتم تشغيل الأمرين الأولين على الهواتف الذكية مع 512 ميغابايت من ذاكرة الوصول العشوائي ، والثاني - مع 1 جيجابايت ، وغيرها - بأكثر من 1 جيجابايت. ولكن في الواقع لا يوجد سوى سبب واحد لتغيير الإعدادات الافتراضية - جهاز به ذاكرة داخلية أو بطاقة ذاكرة بطيئة للغاية. في هذه الحالة ، من المعقول نشر قيم المتغيرات ، أي صنع شيء مثل هذا:

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

ثم ، عندما يكتب نظام الطفرة عمليات ، دون الحاجة إلى تسجيل البيانات على القرص ، فلن يتحول ما يصل إلى الأخير إلى الوضع المتزامن ، مما سيتيح للتطبيقات تقليل التأخر عند التسجيل.

القرص عديمة الفائدة إضافية وضبط الأداء

هناك الكثير من "التحسينات" التي لا تفعل أي شيء. معظمهم ببساطة ليس لهم أي تأثير على الإطلاق ، في حين أن البعض الآخر قد يحسن بعض جوانب الأداء ، في حين أن تحطيم الجهاز بطرق أخرى ( عادة ما يتلخص في الأداء مقابل استنزاف البطارية) .

إليك بعض التحسينات الشائعة الإضافية التي قد تكون مفيدة أو لا تكون مفيدة ، اعتمادًا على نظام Android وجهازه.

  • التسارع - يوفر التسارع الصغير لتحسين الأداء والبطء - القليل من البطارية.
  • أمثلية قاعدة البيانات - من الناحية النظرية ، يجب أن يوفر هذا تحسينًا في أداء الجهاز ، ولكن هذا أمر مشكوك فيه.
  • Zipalign - ومن المفارقات أنه على الرغم من أن محتوى SDK المدمج في Android SDK داخل ملف APK في المتجر ، يمكنك العثور على الكثير من البرامج لا يتم نقله من خلال zipalign.
  • تعطيل خدمات النظام غير الضرورية ، وإزالة النظام غير المستخدم وتطبيقات الأطراف الثالثة التي نادراً ما تستخدم. في الأساس ، إلغاء تثبيت bloatware.
  • نواة مخصصة مع تحسينات لجهاز معين (مرة أخرى ، ليست كل النوى جيدة بنفس القدر).
  • سبق وصفها I / O جدولة noop.
  • خوارزمية التشبع TCP Westwood - تستخدم بكفاءة أكبر في Android Cubic الافتراضي للشبكات اللاسلكية ، المتوفرة في النواة المخصصة.

إعدادات عديمة الفائدة build.prop

أجرت LaraCraft304 من منتدى XDA Developers دراسة ووجدت أن عددًا مثيرًا للإعجاب من /system/build.prop الإعدادات الموصى باستخدامها "خبراء" غير موجود في المصدر 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.fling_velocity. 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_ulog profiler.force_disable_ulog profiler.force_disable_ulog 

مقالات مثيرة للاهتمام