Bagaimana Saya Dapat Mempercepat Terminal.app atau iTerm di Mac OSX?

41

Setiap kali saya meluncurkan iTerm atau Terminal setelah tidak menggunakannya selama beberapa jam, dibutuhkan sekitar 10-20 detik untuk mengembalikan prompt. Layar kosong, dan meskipun saya bisa mengetik saya tidak bisa menjalankan perintah.

Jika saya keluar dari salah satu aplikasi, peluncuran berikutnya (jika dilakukan relatif segera sesudahnya) cukup cepat. Kelambatan hanya tampak terjadi jika aplikasi tidak berjalan selama beberapa jam.

Saya menjalankan OSX 10.5.7 pada MacBookPro. Saya memiliki pengaturan yang sama persis di komputer lain, tanpa lambat.

Ada ide bagaimana mempercepatnya lagi?

pmaiorana
sumber
Saya suka bagaimana pertanyaan ini ditanyakan dan dijawab oleh dua pengguna anonim dengan nomor acak. Saya jarang melihat pola ini! :)
cregox

Jawaban:

39

Coba hapus file log sistem Apple di /var/log/asl/:

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

Ini berhasil bagi saya.

pengguna12544
sumber
3
(ASL = Apple System Log)
Arjan
+1. Bekerja seperti pesona meskipun sebagai salah satu jawaban lain menyarankan saya memiliki .bashrc non-sepele.
alesplin
7
Seperti yang ditunjukkan pada OsXDaily , saya akan merekomendasikan penggunaannya sudo rm -rf /private/var/log/asl/*.aslkarena lebih aman karena 1) hanya menghapus file log dan 2) menghindari masuk ke direktori yang salah dan menghapus semua file.
Matthew Rankin
1
Adakah yang tahu mengapa ukuran log sistem mempengaruhi seberapa cepat terminal terbuka?
James McMahon
3
@JamesMcMahon loginSepertinya proses membaca semua file dan folder di tingkat atas /var/log/asl. Coba jalankan sudo opensnoop | grep /var/log/asl.
Lri
30

Kiat lain mungkin membantu:

Ubah shell pembuka dari default /usr/bin/loginke /bin/bash -l, atau /usr/bin/zshjika Anda menggunakan zsh.

Itu mungkin membuat Terminal / iTerm2 Anda diluncurkan dalam kecepatan ringan!

  • Untuk Terminal: Preferensi → Startup: Ubah dari "Default login shell" ke "Command: /bin/bash -l"

  • Untuk iTerm2: Preferensi → Profil → Umum → Perintah: Ubah dari "Login Shell" ke "Command: /bin/bash -l"

pengguna150579
sumber
2
Ini mempercepat pemuatan tab baru.
Sindre Sorhus
1
Tidak bisa mengatakan betapa ini membantu saya. Dipecahkan ~ 6 bulan kinerja terminal lambat dalam 1 detik.
Sam Stern
/ bin / bash -l bekerja untuk saya!
Phill Pafford
Bagi mereka yang lebih suka menggunakan bash MacPorts:/opt/local/bin/bash -l
Ioannis Filippidis
rupanya menggunakan /bin/bash -lini cukup bukan untuk yosemite (? lagi), untuk deatils lainnya, lihat apple.stackexchange.com/questions/41743/...
rogerdpack
9

Apakah saya memerlukan reputasi tertentu untuk mengomentari posting? Bagaimanapun membersihkan log sistem juga melakukannya untuk saya, terima kasih. Saya telah mencoba menambal path_helper dengan tambalan di sini: gist.github.com/123525, seperti yang disarankan dalam komentar di http://mjtsai.com/blog/2009/04/01/slow-opening-terminal-windows/ ( direferensikan sebelumnya di utas ini) tetapi tidak berhasil. Saya mendapatkan kesalahan samar. Namun, tambalan itu harus mempercepat peluncuran terminal.app.

Selain itu: Seperti yang saya sebutkan, membersihkan log berhasil bagi saya, tetapi masalahnya terus muncul karena log terus bertambah besar setelah saya menghapusnya. Saya menemukan bahwa "tweaking" /etc/asl.conf telah memberi saya solusi yang lebih permanen. Modifikasinya adalah mencatat hanya pesan yang dikategorikan sebagai "kritis" atau lebih kritis dari itu, sebagai lawan masuk kategori "pemberitahuan" dan setiap lebih kritis dari itu. Juga, saya mengabaikan pesan dari ftp, mail, local0, local1. Inilah tempel /etc/asl.conf saya:

 ##
 # 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
tmadsen
sumber
1
Selamat datang di SU. Ya, 50 reputasi diperlukan, tetapi masih banyak yang perlu diketahui, jadi kunjungi superuser.com/faq segera! ;-)
Arjan
7

Dari sebuah artikel yang saya baca beberapa minggu yang lalu: Windows Terminal Pembukaan Lambat

/usr/libexec/path_helpersangat lambat saat memuat /etc/pathsJika Anda menghapus semua entri di /etc/pathsdan memastikan bahwa barang-barang itu tersedia di Anda .bash_profileini akan menyelesaikan masalah. Itu berhasil untuk saya.

Chealion
sumber
Secara kebetulan seseorang menulis ulang path_helper dan tersedia di: github.com/mgprot/path_helper
Chealion
Apakah masih demikian? path_helpersepertinya tidak lambat ...
Franklin Yu
1

Jika aplikasi terminal telah dimuat tetapi Anda belum memiliki prompt maka shell Anda perlu waktu untuk diinisialisasi.

Ini mungkin berarti Anda memiliki terlalu banyak atau sesuatu yang memakan waktu Anda .bashrc( dengan asumsi Anda menggunakanbash ).

Mike McQuaid
sumber
Ini mungkin masalah yang saya alami, apakah Anda tahu bagaimana saya dapat memeriksa Jika saya menggunakan bash di mana saya dapat mengakses file .bashrc?
alvincrespo
0

Dugaan saya adalah bahwa seiring waktu, ada sesuatu yang menggunakan banyak memori. Ketika Anda memulai terminal setelah tidak menggunakannya untuk sementara waktu, beberapa memori harus tersedia dengan menukar isinya ke disk. Jika Anda mematikan proses terminal dan memulai ulang dengan relatif cepat, memori masih tersedia dan mulai dengan cepat. Ini harus terjadi dengan aplikasi lain juga.

Anda harus memantau penggunaan memori Anda dengan Monitor Aktivitas dan melihat apakah Anda dapat mengetahui ke mana ia pergi.

KeithB
sumber
Dia mengatakan bahwa jendela Terminal terbuka yang berarti proses telah dimuat.
Mike McQuaid
1
@ Mike, saya tidak yakin bahwa begitu jendela Terminal ditampilkan, semuanya telah dimuat? Namun, jika hal di atas berlaku untuk Terminal, maka program apa pun akan diluncurkan secara lambat. Saya tidak berpikir Terminal membutuhkan banyak sumber daya (6.5 / 31.7 nyata / virtual pada Mac saya), jadi @pmaiorana: berapa banyak memori yang dibutuhkan Terminal pada Mac Anda?
Arjan
0

Solusi yang lebih permanen dengan mengedit sudo vi /etc/asl.confdisediakan di sini .

Ioannis Filippidis
sumber
0

Buka /etc/profiledan tambahkan baris PATH=""sehingga terlihat seperti ini:

if [ -x /usr/libexec/path_helper ]; then
    PATH=""
    eval `/usr/libexec/path_helper -s`
fi
davidcondrey
sumber