ページ ツリー

比較バージョン

キー

  • この行は追加されました。
  • この行は削除されました。
  • 書式設定が変更されました。

...

 関数タイムアウト、クエリタイムアウト、メモリ不足によって中止されないように(『DFAが中止された場合の対処』を参照)、かつ、可能な限り高精度で QAC/QAC++ のデータフロー解析(DFA)を実施する設定方法の1つの案を以下に記載します。

■ 前提

推奨スペック』を満たすマシンで解析を行います。最新版の QAC / QAC++ を『推奨スペック』を満たすマシンで使用します。
QAC / QAC++ のバージョンアップに伴い、DFA は常にリソースの使用効率向上や解析時間短縮のための改良を行っております。

■ 設定

・翻訳単位間データフロー解析

翻訳単位間データフロー解析(ITU)』をご覧いただき、ITUを実施する設定にします。
合わせて複数回解析するようにします。

...

例えば、解析が60秒で完了しない関数を、"特に解析に時間がかかる関数"と判断するとします。
最初は関数タイムアウトを60秒として解析し、関数タイムアウト(メッセージ2755)の発生数をカウントします。
100個の関数のうち、20個の関数でタイムアウトが発生したとすると、残りの80個の関数の解析には特に時間はかからないと考えることができ、関数タイムアウトをおおよそ 2/20 とすることができます。

■ ソースコードの修正

推奨スペックを満たしても、コードの内容と設定によっては、関数タイムアウト、クエリタイムアウト、メモリ不足の発生が解消されない場合もあります。最新版の QAC / QAC++ を使用し、推奨スペックを満たしても、コードの内容や設定によっては、関数タイムアウト、クエリタイムアウト、メモリ不足の発生が解消されない場合もあります。
DFAのタイムアウトやメモリ不足が発生しにくいコード』にすることをご検討ください。

...