コンパイルされたシェルスクリプトのパフォーマンスは良いですか?

コンパイルされたシェルスクリプトのパフォーマンスは良いですか?

インターネット検索後にBASHスクリプトをバイナリ実行可能ファイルにコンパイルする方法を見つけましたshc

私はシェルが解釈された言語であることを知っていますが、このコンパイラは何をしますか?どのように私のスクリプトのパフォーマンスが向上しますか?

ベストアンサー1

タイトルの質問に答えるために、コンパイルされたシェルスクリプトはパフォーマンスを向上させることができます。つまり、スクリプトのコマンドを繰り返し再解釈する必要なく、コンパイルされた結果が解釈された結果を示す場合です。たとえば、参照してください。ksh93~のshcompまたはzsh~のzcompile

ただし、shcスクリプトはこのようにコンパイルされません。実際にはコンパイラではなく、効率が疑われるさまざまな保護技術を備えたスクリプト「暗号化」ツールです。コンパイルされたスクリプトを使用すると、shc結果は実行時にコンテンツをすぐに読み取れないバイナリファイルになり、内容を復号化し、復号化されたスクリプトを使用してスクリプトが使用したいツールを実行して元のスクリプトを簡単に作成できます。検索可能(比較を見つけるのを難しくするために、余分なスペースを含むインタプリタのコマンドラインから全体が渡されます。)したがって、全体的なパフォーマンスは常に悪くなります。元のスクリプトを実行するのに必要な時間に加えて、環境を設定してスクリプトを復号するのに必要な時間もあります。

おすすめ記事