ฉันจะเร่งความเร็ว Terminal.app หรือ iTerm บน Mac OSX ได้อย่างไร


41

ทุกครั้งที่ฉันเปิดตัว iTerm หรือ Terminal หลังจากไม่ได้ใช้งานเป็นเวลาสองสามชั่วโมงก็จะใช้เวลาตั้งแต่ 10-20 วินาทีในการส่งคืนพรอมต์ หน้าจอว่างเปล่าและถึงแม้ว่าฉันสามารถพิมพ์ฉันไม่สามารถเรียกใช้คำสั่งใด ๆ ได้

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

ฉันใช้ OSX 10.5.7 บน MacBookPro ฉันมีการตั้งค่าที่เหมือนกันในคอมพิวเตอร์เครื่องอื่นโดยไม่มีการชะลอความเร็ว

ความคิดใดที่จะเร่งความเร็วสิ่งต่าง ๆ อีกครั้ง?


ฉันชอบวิธีการถามและตอบคำถามโดยผู้ใช้นิรนามสองคนพร้อมตัวเลขสุ่ม ฉันไม่เห็นรูปแบบนี้บ่อยนัก! :)
cregox

ดูเพิ่มเติมที่apple.stackexchange.com/questions/41743/…
rogerdpack

คำตอบ:


39

ลองลบไฟล์บันทึกระบบ Apple ใน/var/log/asl/:

sudo rm /var/log/asl/*.asl

นี้ได้เคล็ดลับสำหรับฉัน.


3
(ASL = แอปเปิ้ลระบบเข้าสู่ระบบ)
Arjan

+1 ทำงานเหมือนมีเสน่ห์แม้ว่าเป็นหนึ่งในคำตอบอื่น ๆ ที่แนะนำฉันมี. bashrc ที่ไม่สำคัญ
alesplin

7
ดังที่อธิบายไว้ในOsXDailyฉันขอแนะนำให้ใช้sudo rm -rf /private/var/log/asl/*.aslแทนเพราะปลอดภัยกว่าเพราะ 1) ลบไฟล์บันทึกเท่านั้นและ 2) หลีกเลี่ยงการทำ cding ในไดเรกทอรีที่ไม่ถูกต้องและลบไฟล์ทั้งหมด
Matthew Rankin

1
ทุกคนมีความคิดว่าทำไมขนาดของบันทึกระบบมีผลต่อความรวดเร็วในการเปิดเครื่อง?
James McMahon

3
@JamesMcMahon กระบวนการดูเหมือนว่าจะอ่านไฟล์และโฟลเดอร์ทั้งหมดในระดับบนสุดของlogin ลองใช้/var/log/asl sudo opensnoop | grep /var/log/asl
Lri

30

เคล็ดลับอื่นอาจเป็นประโยชน์:

เปลี่ยน start up shell จาก default /usr/bin/loginเป็น/bin/bash -lหรือ/usr/bin/zshถ้าคุณใช้ zsh

นั่นอาจทำให้ Terminal / iTerm2 เปิดตัวด้วยความเร็วแสง!

  • สำหรับเทอร์มินัล: การกำหนดค่าตามความชอบ→การเริ่มต้น: เปลี่ยนจาก "เชลล์ล็อกอินเริ่มต้น" เป็น "คำสั่ง: /bin/bash -l"

  • สำหรับ iTerm2: การตั้งค่า→โพรไฟล์→ทั่วไป→คำสั่ง: เปลี่ยนจาก "ล็อกอินเชลล์" เป็น "คำสั่ง: /bin/bash -l"


2
นี่เป็นการเร่งการโหลดแท็บใหม่อย่างมาก
Sindre Sorhus

1
ไม่สามารถพูดได้ว่านี่ช่วยฉันได้มากแค่ไหน แก้ไขประสิทธิภาพของเทอร์มินัลช้า ~ 6 เดือนใน 1 วินาที
Sam Stern

/ bin / bash -l ใช้งานได้สำหรับฉัน!
Phill Pafford

สำหรับผู้ที่ต้องการใช้ MacPorts bash:/opt/local/bin/bash -l
Ioannis Filippidis

เห็นได้ชัดว่าการใช้/bin/bash -lไม่เพียงพอสำหรับโยเซมิตี (อีกต่อไปใช่ไหม) สำหรับเดือยอื่น ๆ ดูที่apple.stackexchange.com/questions/41743/…
rogerdpack

9

ฉันต้องมีชื่อเสียงเพื่อแสดงความคิดเห็นในโพสต์หรือไม่ อย่างไรก็ตามการล้างบันทึกระบบก็ทำเพื่อฉันด้วยเช่นกันขอบคุณ ฉันได้พยายามปะพา ธ path_helper ด้วยแพตช์ที่นี่: gist.github.com/123525 ตามที่แนะนำในความคิดเห็นบนhttp://mjtsai.com/blog/2009/04/01/slow-opening-terminal-windows/ ( อ้างอิงก่อนหน้าในหัวข้อนี้) แต่ไม่มีประโยชน์ ฉันได้รับข้อผิดพลาดลับๆ อย่างไรก็ตามโปรแกรมแก้ไขนั้นควรเร่งความเร็วการเปิดใช้งาน terminal.app

นอกจากนี้ตามที่ฉันได้กล่าวไปแล้วการล้างบันทึกนั้นเป็นเคล็ดลับสำหรับฉัน แต่ปัญหายังคงเกิดขึ้นเนื่องจากบันทึกมีขนาดใหญ่ขึ้นอย่างต่อเนื่องหลังจากฉันลบออกไปแล้ว ฉันพบว่า "tweaking" /etc/asl.conf ทำให้ฉันมีทางออกที่ถาวรมากขึ้น การปรับเปลี่ยนคือการบันทึกเฉพาะข้อความที่จัดอยู่ในหมวดหมู่ "วิกฤติ" หรือที่สำคัญกว่านั้นเมื่อเทียบกับหมวดหมู่ "ประกาศ" และทุกครั้งที่สำคัญยิ่งกว่านั้น นอกจากนี้ฉันไม่สนใจข้อความจาก ftp, mail, local0, local1 นี่คือหนึ่งใน /etc/asl.conf ของฉัน:

 ##
 # configuration file for syslogd and aslmanager
 ##

# redirect com.apple.message.domain to /var/log/DiagnosticMessages
? [T com.apple.message.domain] store_dir /var/log/DiagnosticMessages exclude_asldb

# authpriv messages are root/admin readable
? [= Facility authpriv] access 0 80

# remoteauth critical, alert, and emergency messages are root/admin readable
? [= Facility remoteauth] [<= Level critical] access 0 80

# broadcast emergency messages
? [= Level emergency] broadcast

# save kernel [PID 0] and launchd [PID 1] messages
? [<= PID 1] store

# save everything from emergency to notice
#? [<= Level notice] store
? [<= Level critical] store

# save lpr info level and above
#? [<= Level info] [= Facility lpr] store

# save all mail, ftp, local0, and local1 messages
#? [= Facility mail] store
#? [= Facility ftp] store
#? [= Facility local0] store
#? [= Facility local1] store

1
ยินดีต้อนรับที่ SU ใช่จำเป็นต้องมี 50 ชื่อเสียง แต่ก็มีอะไรให้รู้มากกว่าดังนั้นไปที่superuser.com/faqทันที! ;-)
Arjan

7

จากบทความที่ฉันอ่านสองสามสัปดาห์ที่ผ่านมา: Windows Terminal เปิดช้า

/usr/libexec/path_helperช้ามากในการโหลด/etc/pathsถ้าคุณลบรายการทั้งหมดใน/etc/pathsและทำให้มั่นใจว่ารายการเหล่านั้นมีอยู่ในของคุณ.bash_profileนี้จะแก้ไขปัญหา มันทำเพื่อฉันต่อไป


บังเอิญมีคนเขียน path_helper อีกครั้งและมีให้ที่: github.com/mgprot/path_helper
Chealion

มันยังคงเป็นกรณี? path_helperดูเหมือนจะไม่ช้า…
Franklin Yu

1

หากแอปพลิเคชันเทอร์มินัลโหลดแล้ว แต่คุณยังไม่มีพรอมต์แสดงว่าเปลือกของคุณใช้เวลาในการเริ่มต้น

นี่อาจหมายความว่าคุณมีเวลามากเกินไปหรือบางสิ่งบางอย่างในของคุณ.bashrc( สมมติว่าคุณใช้bash )


นี่อาจเป็นปัญหาที่ฉันมีคุณรู้วิธีที่ฉันสามารถตรวจสอบว่าฉันกำลังใช้ทุบตีที่ฉันสามารถเข้าถึงไฟล์. bashrc ได้หรือไม่
alvincrespo

0

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

คุณควรตรวจสอบการใช้หน่วยความจำของคุณด้วย Activity Monitor และดูว่าคุณสามารถบอกได้ว่ากำลังจะไปไหน


เขาบอกว่าหน้าต่างเทอร์มินัลเปิดอยู่ซึ่งหมายความว่ากระบวนการโหลดขึ้นมา
Mike McQuaid

1
@ ไมค์ฉันไม่แน่ใจว่าเมื่อหน้าต่างเทอร์มินัลปรากฏขึ้นทุกอย่างโหลดแล้วหรือยัง แต่ถ้าข้างต้นจะเป็นจริงสำหรับเทอร์มินัลโปรแกรมใด ๆก็จะเปิดช้า ฉันไม่คิดว่า Terminal ต้องการทรัพยากรมากมาย (6.5 / 31.7 จริง / เสมือนบน Mac ของฉัน) ดังนั้น @ pmaiorana: Terminal ต้องการหน่วยความจำบน Mac ของคุณเท่าใด
Arjan


0

เปิด/etc/profileและเพิ่มบรรทัดPATH=""เพื่อให้มีลักษณะดังนี้:

if [ -x /usr/libexec/path_helper ]; then
    PATH=""
    eval `/usr/libexec/path_helper -s`
fi
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.