一般的な情報
Eclipseベースの
QNX Momentics Professional Edition(PE)は、QNX Neutrino RTOS用のアプリケーションを構築および最適化するために必要なすべてを含む、フル機能で高度に統合されたプロフェッショナル開発キットです。 QNX Momentics PEキットは、プロセッサボードに埋め込まれたものからリモート診断に至るまで、さまざまな便利なツールを備えており、開発サイクル全体にわたって単一の柔軟なソフトウェア環境を提供します。
ソフトウェアプロファイリングは、プログラムの実行を最適化するために検査するためのシンプルで便利なメカニズムを提供します。
プロファイリングは、プログラムの個々のフラグメントの実行時間、正しく予測された条件付き遷移の数など、プログラムの特性の集合です。作業の分析に使用されるツールは
プロファイラーと呼ばれます。
この
ステップバイステップガイドでは 、
QNX System Profilerおよび
QNX Application Profilerツールを使用し
てsy21トレーニング、マルチスレッドアプリケーションの
プロファイルを作成し、
QNX Momenticsのプロファイリングツールの機能を実証します。
たくさんの写真
Profiler Application Profilerは、プログラムの個々のフラグメントの実行時間を表示し、プログラムが各行および各機能に費やす時間を確認できます。
システムプロファイラーは、従来のデバッガーやコードアナライザーにとどまらず、グラフィカルシステム分析ツールであり、複雑なリアルタイムシステムのすべてのコンポーネントが互いにどのように相互作用するかを調べることができます。 その結果、エラーの検索とコードの最適化の面でユーザーの利便性が向上し、作業速度とシステム自体の予測可能性が向上します。
セマフォ上に構築された
sy21マルチスレッドアプリケーション(セマフォは、特定のコードセクションにn個以下のスレッドしか入力できないオブジェクトです)は、スレッド同期の動作を示しています。
準備する
このガイドを使用するには、次のものが必要です。
- QNX Momentics、アプリケーションをコンパイルしてプロファイリング自体を実行します(マニュアルでは最新バージョンの6.5を使用しますが、プロファイリングツールは以前のバージョンから利用できます)
- QNX Neutrinoによってインストールされ、コンパイルされたアプリケーションを実行します(このマニュアルではVMware Workstation仮想マシンを使用します)
- C ++の平均的な知識
プロファイリング
QNX Momenticsで、新しいQNX C ++プロジェクトを作成し、[
Buld Variants ]タブで構成を設定します

プロジェクトが作成されました。今度は、アプリケーション
Project-> Build Projectをコンパイルします。コンソールウィンドウで正常にコンパイルされると、次のように表示されます。
C / C ++ QNX QConn(ip)構成を作成して、実行-
>実行構成を実行します
C / C ++ Aplicationフィールドで 、プロジェクトを選択します

[
ターゲットオプション]フィールドに、実行中のQNX Neutrino OSのIPアドレスを書き込みます
ifconfigコマンドを使用してオペレーティングシステムでターミナルを実行することでIPアドレスを確認できます。プロセスを瞬間的に監視するには、
qconnターゲットエージェントを実行する必要があります。

実行中のプログラムの引数タブに移動し、引数
-n20 -t2を使用してプログラムを実行します
。nは同期サイクル(コントロール転送)の反復数、tは同期が実行されるスレッドの数です。

次に、プロファイラー構成を作成します。

作成されたプロファイラー構成を実行します。動作している間、プログラムを実行します。 作成したログを開き、QNX System Profilerタブに移動してログ(拡張子kevのファイル)を開きます。
一般情報:

CPU使用率:

プロセスとスレッドの相互作用のグラフィカルな表現:

さらに詳しく考えてみましょう。 プロセスを見つけて、詳しく見てみましょう。
最初の子ストリームの作成:

同期サイクル:

QNX Aplication Profilerタブに移動します

ここでは、個々の合計実行時間を個別の関数とスレッドとして見ることができます。
また、QNXシステム情報タブに移動すると、動作中のオペレーティングシステムのステータスを確認できます。
実行中のプロセス:

選択したプロセスに関する情報:

メモリ情報:

ファイルシステム:

このガイドでは、プロファイリングの手段を示すために書かれているため、何も最適化しません。
文学
- 並行性の構造-Oleg Tsiryulik、Egor Goroshko
- QNX Momenticsアプリケーションの基本-Sergey Zyl