Mac OSXでTerminal.appまたはiTermを高速化するにはどうすればよいですか?


41

数時間使用しないでiTermまたはTerminalを起動するたびに、プロンプトが返されるまで10〜20秒かかります。画面は空白です。入力することはできますが、実際にコマンドを実行することはできません。

いずれかのアプリケーションを終了した場合、その後の起動(その後比較的早く実行された場合)は非常に高速です。速度低下は、アプリが数時間実行されていない場合にのみ発生するようです。

MacBookProでOSX 10.5.7を実行しています。別のコンピューターでもまったく同じセットアップを行っていますが、速度は低下しません。

物事を再びスピードアップする方法はありますか?


この質問が、ランダムな番号を持つ2人の匿名ユーザーによってどのように尋ねられ、答えられるかが大好きです。このパターンはあまり見かけません!:)
クレゴックス

回答:


39

以下のAppleシステムログファイルを削除してみてください/var/log/asl/

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

これは私のためにトリックをしました。


3
(ASL = Appleシステム・ログ)
Arjan

+1。他の答えの1つが示唆しているように、私は非自明な.bashrcを持っているにもかかわらず、魅力のように働いた。
アレスプリン

7
OsXDailyで指摘したようにsudo rm -rf /private/var/log/asl/*.asl代わりに使用することをお勧めします。1)ログファイルのみを削除し、2)間違ったディレクトリにcdingしてすべてのファイルを削除するのを避けるためです。
マシューランキン

1
システムログのサイズが端末が開く速度に影響する理由は誰にもわかりませんか?
ジェームズマクマホン

3
@JamesMcMahon loginプロセスは、最上位のすべてのファイルとフォルダーを読み取るようです/var/log/asl。実行してみてくださいsudo opensnoop | grep /var/log/asl
リリ

30

別のヒントが役立つ場合があります。

変更は、デフォルトのシェルを起動する/usr/bin/loginには/bin/bash -l、または/usr/bin/zshあなたはzshのを使用している場合。

これにより、Terminal / iTerm2が高速で起動する可能性があります!

  • ターミナルの場合:設定→スタートアップ:「デフォルトのログインシェル」から「コマンド:/bin/bash -l」に変更します

  • iTerm2の場合:設定→プロファイル→一般→コマンド:「ログインシェル」から「コマンド:/bin/bash -l」に変更します


2
これにより、新しいタブの読み込みが大幅に高速化されました。
シンドレソルハ12

1
これが私にどれだけ役立ったかは言えません。1秒間で約6か月の遅い端末パフォーマンスを解決しました。
サム・スターン

/ bin / bash -lは私のために働きます!
フィルパフォード

MacPorts bashの使用を/opt/local/bin/bash -l
希望

どうやら/bin/bash -lヨセミテに使用するだけでは不十分です(もう?)、他の詳細についてはapple.stackexchange.com/questions/41743/…を
rogerdpack

9

投稿にコメントするには特定の評判が必要ですか?とにかく、システムログをクリアしてくれたおかげで、私にも感謝しました。上のコメントで提案されているように、gist.github.com/123525:私はここにパッチでpath_helperにパッチを適用しようとしていhttp://mjtsai.com/blog/2009/04/01/slow-opening-terminal-windows/(このスレッドの前の部分で参照されています)が、役に立ちません。不可解なエラーが表示されます。ただし、そのパッチにより、terminal.appの起動が高速化されます。

さらに:前述したように、ログをクリアすることは私にとってはうまくいきましたが、ログを削除した後もログが継続的に大きくなるにつれて、問題は引き続き発生します。/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にアクセスしてください!;-)
アルジャン

7

数週間前に読んだ記事から:ターミナルウィンドウをゆっくり開く

/usr/libexec/path_helper読み込みが非常に遅くなり/etc/pathsます。すべてのエントリを削除し、/etc/pathsそれらのアイテムが利用できるように.bash_profileすると、問題が解決します。とにかくそれは私のためにした。


偶然誰かがpath_helperを書き直しました:github.com/mgprot/path_helper
Chealion

まだそうですか?path_helper遅くないようです…
フランクリンゆう

1

ターミナルアプリケーションはロードされているが、まだプロンプトが表示されていない場合は、シェルが初期化に時間がかかっています。

これはおそらく、あなたが.bashrcあなたが使用すると仮定してbash)多すぎるか何か時間がかかることを意味します。


これは私が抱えている問題かもしれませんが、.bashrcファイルにアクセスできる場所でbashを使用している場合、どのように確認できるか知っていますか?
アルビンクレスポ

0

私の推測では、時間の経過とともに、何かが大量のメモリを使用していると思われます。しばらく使用しないでターミナルを起動した場合、その内容をディスクにスワップアウトすることにより、一部のメモリを使用可能にする必要があります。端末プロセスを強制終了し、比較的迅速に再起動すると、メモリはまだ利用可能であり、すぐに起動します。これは他のアプリケーションでも発生するはずです。

Activity Monitorを使用してメモリ使用量を監視し、それがどこに向かっているかを確認できるかどうかを確認する必要があります。


彼は、プロセスがロードされたことを意味するターミナルウィンドウが開いていたと言いました。
マイクマッケイド

1
@マイク、ターミナルウィンドウが表示されたら、すべてがロードされたかどうかわかりませんか?上記ターミナルのために真であるかどうそれでも、その後、任意のプログラムはゆっくりと起動します。Terminalは多くのリソース(私のMacでは6.5 / 31.7リアル/仮想)を必要とは思わないので、@ pmaiorana:TerminalはMacでどれだけのメモリを必要としますか?
アルジャン


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.