ลดการใช้หน่วยความจำ Compiz


37

ฉันติดตามการอัพเดทที่ปรากฏขึ้นทุกสัปดาห์ว่ามีผลต่อประสิทธิภาพและการใช้ทรัพยากรของ Compiz อย่างไรตั้งแต่ฉันติดตั้ง 11.10 (ตอนนี้ฉันกำลังทดสอบ 12.04 และ 14.04) สำหรับสิ่งที่ฉันได้เห็นการใช้งาน CPU และหน่วยความจำลดลง (หน่วยความจำพิเศษ) ฉันเปรียบเทียบการติดตั้ง 12.04 / 14.04 โดยไม่มีการอัปเดตใด ๆ จากนั้นจึงใช้การอัปเดตทั้งหมดและเปรียบเทียบกับ 12.04 ถึง 14.04 ตัวอย่างเช่น nautilus ใช้น้อยกว่า 35 MB (สำหรับฉันมันอยู่ระหว่าง 70 MB ถึง 150 MB ทำกิจกรรมเดียวกันกับมันหลายรุ่นแล้ว)

กระบวนการอื่น ๆ ยังได้รับการเพิ่มประสิทธิภาพบางอย่างซึ่งทำให้การใช้งานหน่วยความจำโดยรวมลดลงจากประมาณ 850 MB เป็น 610 MB (ฉันยังใช้บริการเช่น Apache, MySQL, ฯลฯ .. ) แต่หลังจากทั้งหมดนี้เป็นเวลาเดียวที่มีอยู่ เกือบจะเหมือนกันคือ Compiz มันยังคงใช้มากกว่า 100MB เพื่อเริ่มต้น ใช้เฉพาะเดสก์ท็อปที่มี Unity เท่านั้นและไม่มีโปรแกรมอื่นที่ทำงานอยู่จะใช้เวลา (ตอนนี้) 133 MB ฉันสามารถใช้ตัวเลือกใดเพื่อลดขนาดหน่วยความจำโดยไม่กระทบต่อความเสถียรของ Unity (ตัวอย่างเช่นการลบปลั๊กอิน OpenGL จาก Compiz config เป็นแนวคิดที่ไม่ดี)

การเพิ่มประสิทธิภาพใดที่สามารถทำได้เพื่อลดการใช้หน่วยความจำของ Compiz

หมายเหตุ - ฉันได้ติดตั้งตัวจัดการการตั้งค่า Compiz (CCSM) แล้ว


ปิดใช้งานปลั๊กอิน Compiz บางตัวที่คุณไม่ต้องการ คุณสามารถทำได้ด้วย compizconfig-settings-manager จากนั้นก็วิ่งsudo apt-get install ccsm ccsm
ไม่ระบุชื่อ

@ ไม่ระบุชื่อ - ฉันได้ติดตั้ง ccsm แล้วและเมื่อฉันพูดถึงปลั๊กอิน Unity และปลั๊กอิน OpenGL ในคำถามที่ฉันคิดว่าไม่จำเป็นต้องบอกว่าติดตั้งไว้แล้ว ไม่ว่าจะด้วยวิธีใดฉันจะถามว่าการปรับให้เหมาะสมกับสิ่งใดใน ccsm, gconf หรืออื่น ๆ
Luis Alvarado

+1 สำหรับคำถาม Luis - ตั้งแต่ทำการอัปเดตตามปกติทั้งหมดเป็น 11.10 ฉันไม่สามารถใช้ Unity บนเน็ตบุ๊กของฉันได้อีกต่อไป - ทำงานได้ดีก่อนการติดตั้งใหม่ มันเป็นเพียงการคอมไพล์ทำให้ระบบของฉันช้าลงเนื่องจาก Unity 2D และ Gnome Shell ทำงานได้อย่างสมบูรณ์แบบ .....
Mark Rooney

คำตอบ:


19

ประสบการณ์ของฉันค่อนข้างยากในการลดการใช้หน่วยความจำ Compiz สิ่งที่ดีที่สุดที่ฉันสามารถแนะนำให้ลดคุณภาพพื้นผิวในปลั๊กอิน OpenGL แต่สิ่งนี้จะไม่เปลี่ยนแปลงมากนัก

แหล่งที่มาของการเพิ่มหน่วยความจำคอมพิซอาจเป็นหน่วยความจำรั่ว ดูเหมือนว่าบางครั้งจะถูกเรียกใช้โดยตัวชี้วัด แต่อาจมาจากแหล่งอื่นเช่นกัน (ยังไม่แน่ใจ)

วิธีการแก้ปัญหาของฉันคือการเริ่มต้นความสามัคคีเป็นระยะ ๆ โดยใช้สคริปต์ง่าย ๆ ที่มี:

#kill compiz completely, including all child processes, freeing it's memory:
killall -9 compiz & 
#run unity and give you back a free terminal.
unity & disown 

ฉันรู้ว่านี่ไม่ใช่คำตอบที่ดีที่สุดดังนั้นฉันจึงติดตามคำถามนี้ด้วยตัวเองเพื่อดูว่าใครมีคำแนะนำที่ดีกว่า


3
คุณรู้วิธีการเริ่ม compiz ใหม่โดยไม่ทำให้ตำแหน่งของหน้าต่างในพื้นที่ทำงานผิดพลาด หลังจากที่ฉันฆ่าคอมแพคทุกหน้าต่างย้ายไปที่เวิร์กสเปซแรกและฉันต้องจัดระเบียบใหม่ซึ่งเป็นความเจ็บปวด
ivotron

1
@ivotron โชคไม่ดี ฉันจะหาทางแก้ไข
RolandiXor

2
ทำงานให้ฉันแม้ว่าฉันจะรู้สึกกระวนกระวายใจเล็กน้อยเมื่อไม่มีสิ่งใดปรากฏบนเดสก์ท็อปของฉันสักสองสามวินาที :)
Carlton

21

การหลีกเลี่ยงการรั่วไหลของหน่วยความจำ compiz คือ:

sudo kill -HUP <compiz_process_id>

ไม่ใช่วิธีการแก้ปัญหาที่ยอดเยี่ยม แต่มันทำให้หน่วยความจำรั่วไหลออกมาโดยไม่ทำให้กระบวนการนั้นสมบูรณ์


ไม่แน่ใจว่าเพราะเหตุใดจึง downvote นี้ มันใช้งานได้ดีสำหรับฉัน (แม้ว่ามันจะรีเซ็ตจำนวนมากของพื้นที่ทำงานหน้าต่าง)
DPB

2
sudo kill -HUP $(pgrep compiz)
isaaclw

8
@isaaclw หรือpkill -HUP compiz
Piotr Findeisen

ขอบคุณ อย่างน้อยฉันก็ไม่จำเป็นต้องรีสตาร์ท X ทั้งหมด
Mohamad

โซลูชันนี้ไม่ได้ตั้งค่าพื้นที่ทำงานของฉัน หน้าต่างทั้งหมดของฉันย้ายแบบสุ่มจากพื้นที่ทำงานไปที่อื่น
jc

10

ฉันรู้ว่านี่เป็นโพสต์เก่า แต่คำตอบของกัสช่วยฉันและฉันต้องการเพิ่ม นี่คือสิ่งที่ฉันทำ (บน Ubuntu 12.04):

  • Alt+ F2(เรียกใช้แอปพลิเคชัน)
  • งานที่กำหนดเวลาไว้
  • งานที่เกิดซ้ำใหม่
  • killall compiz -HUP
  • ทุกวันเวลา 00:00 น

ตอนนี้ compiz จะเริ่มต้นใหม่โดยอัตโนมัติทุกคืนโดยไม่ต้องทราบรหัสกระบวนการ

ปัญหาของฉันคือถ้าฉันออกจากหน้าจอของฉันถูกล็อคสองสามวันมันใช้เวลา ~ 30 วินาทีในการเปิดล็อคหน้าจอ


1
บน Ubuntu 14.04 64 บิต compiz จะได้รับ 2 Gb of RAM ในเวลาเพียง 5 หรือ 6 วันของกิจกรรมต่อเนื่อง นี่อาจเป็นทางออกที่ดีที่สุดที่นี่และไม่รบกวนแอปพลิเคชันใด ๆ ที่ทำงานอยู่
Luís de Sousa
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.