จาก : http://forum.xda-developers.com/showthread.php?p=5442369#post5442369
“พวกเราต่างก็รู้ว่า Android ใช้วิธีที่ต่างออกไปในการจัดการ process ซึ่งแทนที่จะ kill ทุกๆ process หลังสิ้นสุดกิจกรรม แต่ระบบ android นั้นจะเก็บรักษา process ไว้จนกว่าระบบจะต้องการหน่วยความจำเพิ่มเติม ซึ่ง process เหล่านี้จะต้องไม่ก่อให้เกิดปัญหาต่อประสิทธิภาพโดยรวมและควรให้ความเร็วที่ดีขึ้นในการเรียกใช้ครั้งต่อไป ทั้งหมดที่กล่าวมานี้คือไอเดียครับ
แต่ปัญหาคือ Android จะ kill process ตอนไหน? และ process ไหนล่ะที่จะถูก kill? เท่าที่ผมได้ทำการศึกษาทำความเข้าใจนั้น เจ้า android จะเก็บรักษารายการ Process ที่ใช้ล่าสุดไว้ และจัดการ kill process ลำดับท้ายๆที่ถูกใช้น้อยที่สุดอออกไป ซึ่งวิธีนี้เป็นวิธีการที่ฉลาดมากกว่า taskkillers ทุกเจ้าที่เราเห็นในตลาด”
…
แต่ปัญหาก็ยังไม่หมดไปเพราะเจ้า android ได้เก็บ process ไว้มากเกินความจำเป็น ทำให้เหลือ Ram ในระบบน้อยจนทำให้เครื่องช้าอยู่ดี จนเราๆก็ต้องหา Taskiller มาใช้กันใช่มั๊ยครับ
แล้วขอถามว่าเบื่อกันไหมครับ ทำไมต้องมานั่งกด Kill process กันบ่อยๆ?
แต่ปัญหานี้จะหมดไปเมื่อเรามีวิธีการจัดการ Low Memory Killer Levels กันครับ 🙂
——————————————————————————————–
Low Memory Killer Levels หรือ Internal Taskiller นั้นเป็น Kernel source file ที่ชื่อ ” ” (อยู่ใน kernel source tree ใน “drivers/misc/”; หรือไปดู GIT source tree ได้ที่ http://tinyurl.com/lowmemkiller).
ซึ่งระบบการจัดการ Low Memory Killer Levels ของ Android นั้นจะประกอบไปด้วย 6 ส่วนหลักๆคือ
FOREGROUND_APP:
– This is the process running the current foreground app. We’d really rather not kill it! Value set in system/rootdir/init.rc on startup.
VISIBLE_APP:
– This is a process only hosting activities that are visible to the user, so we’d prefer they don’t disappear. Value set in ystem/rootdir/init.rc on startup.
SECONDARY_SERVER:
– This is a process holding a secondary server — killing it will not have much of an impact as far as the user is concerned. Value set in ystem/rootdir/init.rc on startup.
HIDDEN_APP:
– This is a process only hosting activities that are not visible, so it can be killed without any disruption. Value set in system/rootdir/init.rc on startup.
CONTENT_PROVIDER:
– This is a process with a content provider that does not have any clients attached to it. If it did have any clients, its adjustment would be the one for the highest-priority of those processes.
EMPTY_APP:
– This is a process without anything currently running in it. Definitely the first to go! Value set in system/rootdir/init.rc on startup.This value is initalized in the constructor, careful when refering to this static variable externally.
(แปลกันเอาเองนะครับ เพราะลองแปลแล้วรู้สึกแปลกๆ -*- )
ซึ่งถูกกำหนดค่าไว้ดังนี้
1536,2048,4096,5120,5632,6144
ก็คือ 6Mb, 8Mb, 16Mb, 20Mb, 22Mb, 24Mb ตามลำดับ ( Value คูณ 4 หารด้วย 1000)
เป็นค่าที่ถูกกำหนดไว้โดยระบบ ซึ่งถ้า Process ได้ใช้งานหน่วยความจำต่ำกว่าค่าที่กำหนดไว้ ระบบ Low Memory Killer Levels ก็จะจัดการ kill process ลำดับท้ายทันที
ทีนี้เรามากำหนดค่าในส่วนนี้กันครับผม
สิ่งที่ต้องเตรียมก็คือ ต้อง Root เครื่องให้เรียบร้อยก่อนนะครับ
วิธีการกำหนดคือให้เราเข้าไป Config Kernel ได้ที่ “/sys/module/lowmemorykiller/parameters/minfree” ได้เองเลยเช่น
echo “1536,3072,4096,21000,23000,25000” > /sys/module/lowmemorykiller/parameters/minfree
แต่ว่าเรามีวิธีง่ายกว่านั้นครับ!
คือการไป Download App ที่ชื่อ “Minfreemanger” ได้กันฟรีๆเลยที่ Android Market ครับผม 😀
ซึ่งตัว App ก็จะไม่มีอะไรมาก สามารถกำหนดค่าที่ต้องการลงไปแล้ว Apply ได้เลย และถ้าใครยังงงๆ ไม่รู้จะกำหนดค่ายังไงตัว app ก็มี presets 3 แบบมาให้เลือก ก็ลองกันไปได้เลยครับ
แนะนำว่ากำหนดเองดีที่สุด ไม่มีปัญหาแน่นอน แต่ก็อย่ากำหนดเว่อร์เกินไปก็พอ
ผมกำหนดโดยเรียงลำดับจากน้อย > ไปมาก โดยส่วนหลักที่ต้องให้ความสำคัญโดยไม่ควรใส่ค่ามากเกินไป คือ 3 ส่วนแรกครับคือ
FOREGROUND_APP
VISIBLE_APP
SECONDARY_SERVER
และค่ามากที่สุดควรเป็น EMPTY_APP ซึ่งผมกำหนดเป็นค่ามากที่สุดที่ Ram ว่างเหลือของเครื่องเรา เช่น ถ้าปกติ Ram ว่าง 70 Mb ก็ใส่ไปซัก 64 ก็ได้ครับ เครื่องผมใช้ A88 กำหนดไว้ที่ 10, 12, 24, 40, 48, 56 ก็ลื่นดีครับ
เพื่อนๆลองกำหนดกันเองได้เลยครับและลองสังเกตความเปลี่ยนแปลงได้เลย ตอนนี้ผมไม่ต้องใช้ Taskiller ใดๆอีกแล้ว เพราะตอนนี้ลื่นมากกกกดเปิด App เสร็จกดปุ่ม Home กันได้เป็นว่าเล่นเลยครับ:D
แต่ถ้าไม่แน่ใจว่า เอ…เราจะรู้ได้ไงว่าค่าที่เรากำหนดไปแล้วมันไปเปลี่ยนค่าให้จริงไหม ก็ขอแนะนำ App อีกตัวครับ นั่นคือ Android System Info โหลดกันได้ฟรีที่ Market อีกเช่นเคยจ้า แล้วเข้าไปดูในส่วนของ System > Low Memory Killer Levels กันได้เลยว่ามันปรับเปลี่ยนค่าให้เราจริงมั๊ย
สรุปข้อดีในการจัดการ Low Memory Killer Levels ครับ
1. ไม่จำเป็นต้องใช้ Taskiller แล้วครับ
2. Ram เหลือว่างในระบบตลอดเวลา
3. ทำให้เครื่องทำงานได้ไวขึ้น
4. สามารถเปิด App หนักๆเช่นเกมส์ 3D ได้ตลอดเวลาโดยไม่ต้องกังวลว่าจะกระตุกเพราะ Ram หมดครับ (ทดลองเปิด Racing Thunder2, Iron Sight, Super K.O. Boxing2 ตบท้ายไปด้วยการ Test Neocore Benchmark ได้ 34 ครับ โดยที่เครื่องไม่แฮ้งค์ ไม่ดับเลย)
…
ขอจบ Tips เพียงเท่านี้นะครับเพราะยาวมากแล้ว ผมขอแนะนำว่าลองจัดการกันดูนะครับไม่ว่าจะเป็นเครื่องรุ่นเล็กหรือรุ่นใหญ่ มันช่วยให้เครื่องเร็วขึ้นได้จริงๆครับ ลืมไปได้เลยกับการต้องมากด Taskiller กันครับ 😀
—————
UPDATE!
แนะนำ App อีกตัวครับ “Autokiller” ใช้จัดการ Low Memory Killer Levels เหมือนกัน แต่ดีกว่าครับ! มี Presets ให้เลือกมากกว่า สามารถจัดการและแสดงรายละเอียด Process, Service ได้ ที่สำคัญ Apply at boot ได้แน่นอนครับ! [/size]
เข้ามาปรบมือให้ล้านครั้งครับ
ตั้งแต่จัดการ Low Memory Killer Levels ด้วย Minfreemanager มาได้ 3 วัน
วันนี้ผมลบ Taskiller ทิ้งไปเลยคับ เพราะรู้สึกว่าตัวเองโรคจิตที่ต้องมานั่งกด Kill Task บ่อยๆ
ถ้าผิดพลาดตรงไหนก็ทักมาได้นะคร้าบบ 😀
ต้องรูทก่อนป่าวคับ
ลืมไปเลยครับ จำเป็นต้อง root ก่อนนะครับ เพราะไปจัดการในส่วนของระบบครับผม
ขอถามหน่อยครับ ปกติ Process ที่ run อยู่เป็น Background นั้น
มีการประมวลผลมั้ยครับ เพราะปกติที่กด Kill ผมไม่ค่อยต้องการ ram เท่าไหร่
แต่ต้องการให้ประหยัด Batt มากกว่า
(รู้สึกโรคจิตเหมือนกัน -*- ไม่ค่อยอยากกดเท่าไหร่)
ป.ล. เครื่องยังไม่ได้ root เลยลองไม่ได้ ><'
ยอดครับ ผมก็ว่ามันต้องมีที่กำหนดค่าไว้ซักที่แน่ๆ แต่ไม่ได้สนใจจะหาเลยผ่านๆไป มีคนมาบอกแบบนี้แหล่มเลยไม่ต้องโดยพวก สาวก พูดว่ามั่วแต่นั่งลบโปรแกรม
Process ที่ run อยู่เป็น Background นั้นมีการประมวลผลแน่นอนครับ แต่ไม่แน่ใจว่าทุก process รึเปล่า
เช่น Beautiful widget ถ้าไป kill แล้ว เวลาไม่เดินครับ จนต้องรอ process run ขึ้นมาใหม่เองถึงจะเดินต่อครับผม
ถามอีกนิดนะครับ
ต้องปรับแต่งค่าทุกครั้งที่รีเครื่องไหม
หรือปรับแต่งครั้งเดียวใช้ได้ตลอดจนกว่าจะปรับค่าใหม่
มีปุ่ม Apply at boot นะครับ แต่อาจะใช้ไม่ได้ทุกเครื่อง เพราะรู้สึก A88 ก็ไม่เปลี่ยนให้ครับ
แต่สามารถ Save ค่าที่เราตั้งไว้ เป็น Custom ได้ครับผม แล้วสามารเรียกขึ้นมา apply ได้ทันทีเลยครับ 🙂
ใช่เลย!สุดยอดเลยครับ…i858 ของผมTaskเสร็จ เหลือประมาณ 115 m เบื่อที่ Taskเเล้ว app นี้โดนเต็มๆเลย! เสียดายเครื่องไม่ได้ root ครับ
ต้องหามาลองบ้างแล้ว ขอบคุณครับที่แนะนำ
ผมแนะนำสำหรับ samsung galaxy s ครับ ไปอ่านเจอใน xda แต่เป็นของ htc evo นะครับ แต่คงใกล้เคียงกัน
f 6
v 12
s 16
h 82
c 90
e 98
เสร้็แล้ว gs จะเร็วขี้นกว่าเก่าครับ
ปล จริงๆต้องแก้ตัว stalling ด้วย แต่ผมเอาแค่แก้ตัวนี้พอก็โอเคละ
ไม่รู้ว่ารู้สึกไปเองรึเปล่าาา แต่ น้อง S ของผมเร็ววขึ้นมากกก คร้าบบบ
เด๋ว G1 ของผมจะลองดูบ้างนะครับ ขอบคุณอย่างมากเลยครับผม สำหรับบทความที่ดีมากๆ
ถ้า เล่นเกมส์ 3D แล้ว ram หมด นี่จะเกิดอาการ ดับ หรือไม่ก็ค้าง หรือไม่ก็ รีสตาร์ท ใช่มั้ยครับ
แจ่มมากๆ ถูกใจ ต่อไปนี้จะได้มีเวลาเยอะขึ้น ทุกวันนี้ต้องมาคอยกดคิลตลอด จนชาวบ้านหาว่าสนใจโทรศัพท์มากกว่าคนรอบข้าง :p
THX คุณsierra มากๆครับ
แนะนำลง App ดูรายละเอียดเครื่อง Android System Info ไว้ด้วยนะครับ
เพราะดูรายละเอียดเครื่องชนิดเห็นตับไตไส้พุงกันเลยทีเดียว 🙂
เหมาะกับ Spica เป็นอย่างยิ่ง (Ram น้อย)
ต้องลองบ้างแล้วครับ ^^
WOWWWWWWWWWWWW Thx a lot krab ^0^!
โดนใจมากครับ เพราะผมก็เคยเป็นโรคจิต เช่นกัน
ปัจจุบัน ไม่ได้ใช้ Task killer ใดๆเลย ปล่อยมันไปเป็นตาม OS ของมัน
เจอแบบนี้ อยากจะรูทเครื่องบ้างแล้วครับ
แต่ทำไม่เป็น และ 2.1 ก็กำลังจะมาแล้ว กลัวจะทำไม่เป็นตอน ต้องอัพ 2.1
ไว้รออัพเสร็จ ก่อน คงจะต้องรบกวนถามเพื่อนๆอีกทีเรื่องรูทด้วยครับ
^ ^
ขอบคุณสำหรับคำแนะนำทีดีมากครับ
ความจริงผมไม่มีปัญหากับ mem แต่มีปัญหากับ batt
คราวก่อนเล่นเกมส์ car park แล้วลืม kill พี่เล่นเอาแบต 60% ก่อนนอน หมดเกลี้ยงเลย
ไปดูจึงพบว่าเกมส์มันมี function prevent from sleeping แล้วบังเอิญผมเปิด wifi ไว้ทำให้ wifi ต่อตลอดเวลา (จริงๆ ก็เอ๊ะใจตั้งแต่ช่วงค่ำๆ แล้วว่าทำไมมีคน chat เข้ามาได้ทั้งที่ตั้งให้ wifi off when screen off แต่ยังบื่อ อยู่)
ลองแล้ว ยังไม่เห็นผลเท่าไหร่ครับ
ขอบคุณมากมายครับ
ลองใช้งานดูแล้วครับ ยังงงๆ นิดหน่อย คือถ้าใช้โปรแกรมนี้แล้ว ไม่ต้องกด kill หลังจากออกโปรแกรมแล้วใช่ไหมครับ ผมลองดูโปรแกรมที่ผมออกมาแล้วก็ยังทำงานอยู่เลย ต้องทำอย่างไรครับ
ดี ปกติ ก็ไม่ คิว เพราะขี้เกียจ
อต่ว่า เครื่องจะอืดๆ หน่อย โดยเฉพาะ เวลา กดกลับ HOME แต่ตอนนี้ลื่นดี
สุดยอดมากครับ
ใครมีสูตรเซ็ต G1 บ้างครับ
spica ใส่ค่ายังไงดีครับ
Galaxy S ของผมเวลาReset แล้วค่ามันจะกลับมาเป็นเหมือนเดิมหน่ะครับ
ต้องเข้า Minfreemanger ไป Apply ใหม่ทุกครั้งที่ Reset เครื่อง
ใครเป็นเหมือนผมบ้างมั้ยเนี่ย
"Galaxy S ของผมเวลาReset แล้วค่ามันจะกลับมาเป็นเหมือนเดิมหน่ะครับ
ต้องเข้า Minfreemanger ไป Apply ใหม่ทุกครั้งที่ Reset เครื่อง
ใครเป็นเหมือนผมบ้างมั้ยเนี่ย"
เป็นเหมือนกันครับ มีวิธีแก้ไหมครับ
ผม ใช้ Hero และ Root เครื่องแล้ว แต่เวลากด apply มันขึ้น SU Request
ทำไงดีครับ
SU Request ให้เลือก Always Allow ครับ
ส่วนถ้าเครื่องท่านไหน เลือก Apply at boot แล้วค่าไม่เปลี่ยนให้ ก็ต้องมาเปิด Minfreemanger แล้ว Apply ใหม่นะครับ คงเป็นเพราะ App ยังไม่ support Apply at boot ได้ 100% ทุกเครื่องครับ
ลอง app "Autokiller" ดูก็ได้นะครับ ฟรีเหมือนกัน
*ขอแก้ไขนะครับ ปรับแต่งได้ละเอียดกว่า Minfreemanager ครับ 🙂
[color=#FF0000][size=18]UPDATE![/size][/color]
แนะนำ App อีกตัวครับ [color=#FF0000][size=18]"Autokiller"[/size][/color]
เจ้าของรางวัล Winner of application of the year award — (iPhone vs Android contest by Nav N Go)
ใช้จัดการ Low Memory Killer Levels เหมือนกัน แต่ดีกว่าครับ! มี Presets ให้เลือกมากกว่า สามารถจัดการและแสดงรายละเอียด Process, Service ได้ ที่สำคัญ [color=#FF0000]Apply at boot ได้แน่นอนครับ! [/size]
http://andrs.w3pla.net/autokiller
สำหรับท่านที่ไม่ทราบว่าควรปรับอย่างไร ก็มบักทึกของผู้ใข้ให้ดูเป็นแนวทางครับ
มีแทบทุกรุ่นเลย 😀
http://andrs.w3pla.net/autokiller/list
ลองดูแล้วนะครับ ดีมากเลยอะ
แต่…วันดีคืนดี มันดันไปปิดโปรแกรมตั้งนาฬิกาปลุกซะงั้น เลยไม่ตื่นเลย –*
[อ้างอิง]Process ที่ run อยู่เป็น Background นั้นมีการประมวลผลแน่นอนครับ แต่ไม่แน่ใจว่าทุก process รึเปล่า
เช่น Beautiful widget ถ้าไป kill แล้ว เวลาไม่เดินครับ จนต้องรอ process run ขึ้นมาใหม่เองถึงจะเดินต่อครับผม[]
ผมใช้ A88 เปิดใช้ GPRS ตลอดเวลาครับ ตั้ง update พวก weather ทุกๆ 2 ชม.
ทั้งโปรแกรม Beautiful widget, Weather widget หรือ weather ที่มาจากเครื่อง
update ข้อมูลตลอดเวลาเป็นอย่างดีครับ ไม่มีปัญหาอะไร
Beautiful widget version เก่าๆจะไม่เป็นครับ แต่ app โดนเตือนมาว่าไปก๊อปปี้ UI clock ของทาง HTC ก็เลยต้องแก้แบบกันไป แล้วก็ออก Ver ใหม่ๆ (2.8 ขึ้นไปรึเปล่าไม่แน่ใจ) มาแก้ไขหน้าตาใหม่ แล้วตอนนี้พอ kill process ไป เวลามันจะหยุดครับ ต้องแก้ไขโดย Add ไว้ใน ignore list ของ Taskiller ครับ
ผมใช้x10 rootแล้ว ใช้Autokiller
ตั้งเป็น
f 6
v 12
s 16
h 82
c 90
e 98
ลองเข้าหลายโปรแกรมทำไมmemory มันต่ำกว่า 98 mbครับ