ターミナルレンダリングとアプリケーションパフォーマンス

ターミナルレンダリングとアプリケーションパフォーマンス

私はMint 19をシナモンと一緒に実行していますが、これはすべてのLinuxデスクトップ環境で共通する問題だと思います。ターミナル出力が多すぎてターミナルウィンドウにレンダリングされた印刷ステートメントのために実際にアプリケーションが遅くなるPython CLIアプリケーションがあります。愚かな質問:端末が最小化されると速度が上がります(レンダリングが不要で省略される可能性があります)。

ベストアンサー1

パフォーマンスを向上させるには、次のコマンドを実行することをお勧めします。

mycommand &>/dev/null

または

mycommand &>~/mycommand.log 

別の方法も良いです:

nohup mycommand

注: これは & ですいいえアプリケーションをバックグラウンドに配置しますが、標準出力と標準エラーをリダイレクトします。

いくつかのベンチマーク:

time hexdump HURRICANE\ SMITH\ -\ DON\ T\ LET\ IT\ DIE.mp3
real    0m17,525s

time hexdump HURRICANE\ SMITH\ -\ DON\ T\ LET\ IT\ DIE.mp3  &>/dev/null
real    0m0,226s

time hexdump HURRICANE\ SMITH\ -\ DON\ T\ LET\ IT\ DIE.mp3  &>/tmp/result.txt
real    0m0,244s

time nohup hexdump HURRICANE\ SMITH\ -\ DON\ T\ LET\ IT\ DIE.mp3  
real    0m0,251s

端子出力が実際の性能に与える影響

たとえば...シェルスクリプトの中で...!

#!/bin/bash
date >/tmp/start.txt
hexdump HURRICANE\ SMITH\ -\ DON\ T\ LET\ IT\ DIE.mp3 
date >/tmp/theend.txt 

結果:

cat /tmp/start.txt 
qua jan  9 14:49:08 -02 2019
cat /tmp/theend.txt
qua jan  9 14:49:25 -02 2019

最初の例に示すように、インタプリタは次のコマンドを実行する前にすべての出力を待ちます。これは多くの状況では悪いかもしれません。

今また来るいいえ端末に直接データを書き込む...

#!/bin/bash
date >/tmp/start.txt
hexdump HURRICANE\ SMITH\ -\ DON\ T\ LET\ IT\ DIE.mp3 >/tmp/results.txt 
date >/tmp/theend.txt 

結果:

cat /tmp/start.txt
qua jan  9 14:52:02 -02 2019
cat /tmp/theend.txt
qua jan  9 14:52:02 -02 2019

2 番目の例では、スクリプトがすばやく実行され、すべての出力データが /tmp/result.txt にすでに準備されています。

ウィンドウを最小化するだけでパフォーマンスの向上はほぼゼロになります。これは、アプリケーションがウィンドウを復元したときに表示されるように最小化された端末にログを記録し続けているためです。

パフォーマンスに影響を与えずにログファイルを生成せずにcomamndが返す内容を読むには、別のアプローチを試してください。

yourcommand | less

おすすめ記事