また、グローバルも一般的に悪い考えであることをどこでも読んだことがあります。そして、特に、私は同意しません。各ツールには独自の目的があります。
私はコードの最適化に取り組んでおり、提示されたすべての「より良いオプション」の中で、アプリケーションでグローバルを使用すると、コードの実行が完全に 20% 高速化されることがわかりました。
コードは GPS 信号を処理するためのものです... GPS 信号の特定の特性を定義するすべての関数で共通に使用される多くのパラメーターがあります。また、多数のネストされた関数とそれらの関数への反復呼び出しがあります。
1 つのパラメーターを関数に渡す方が、その関数がグローバル変数にアクセスするよりも多少速い場合があります。私の場合、各関数が必要な 3 つまたは 4 つのグローバル変数にアクセスする方が、ネストされた関数のチェーン全体に 10 個のパラメーターすべてを渡すよりもはるかに高速です。
グローバル変数を使用した 8.5 秒のチックタックは、パラメーターの受け渡しまたはネストされた関数を使用した 10.5 秒よりも高速です。それで、悪い考えですか?パフォーマンスを受けます、ありがとう。
私のポイント?グローバルの方がうまく機能する場合は、グローバルを使用してください。どちらの方法でも試してみてください...しかし、関数で大きな配列を変更すると、その配列は参照されるだけでなく、ローカルにコピーされます。グローバルをルックアップしてから、70MB のコピーを作成します。
低レベル言語では、グローバル変数をできる限り避けることに同意します...しかし、それらの言語はポインターと定数を提供します。MATLAB は、プログラミング方法と最適化方法を実際に知っている人のために作られたものではありません。インタープリターが最適化しない場合; どうやらあなたはSOLのようです。