この質問は多くの時間前に尋ねられていますが、解決策はありません。私はこの大きなヘッダーファイルをコンパイルすると、パス2エラーのヒープスペースが不足しています。
class PredictClass0 : public CompiledTree
{
public:
PredictClass0(const std::string& modelDirectory) :
CompiledTree(20, 17, modelDirectory)
{
}
std::size_t predict_probabilities(const gst::ShottonFeatureAlgorithm &algorithm, const GstFrame* const frame, const std::size_t pixel,const std::vector<ParamValues>& offsetThresholdPair)
{
if (algorithm.computeFeature(frame,pixel,offsetThresholdPair[0].offsetPairs) < offsetThresholdPair[0].threshold)
{
if (algorithm.computeFeature(frame,pixel,offsetThresholdPair[1].offsetPairs) < offsetThresholdPair[1].threshold)
{
if (algorithm.computeFeature(frame,pixel,offsetThresholdPair[2].offsetPairs) < offsetThresholdPair[2].threshold)
{
if (algorithm.computeFeature(frame,pixel,offsetThresholdPair[3].offsetPairs) < offsetThresholdPair[3].threshold)
//and the list goes on....
ヘッダファイルは、30メガバイトの大きさを持っていると私はそれらの3を持っているように見える私の意思決定ツリーのヘッダーファイルを作成し、それが(最終的にはエラー)をコンパイルするために6時間かかります。私は可能な限り記号や表現の量を最小限にしようとしました。これまでのところ私はこれらのソリューションを試してみました:
設定コンパイラフラグ/ MP(マルチプロセッサコンパイル)
コンパイラのメモリ割り当て/ Zmの
を最小限ビルド/ Gmのを有効にします
- ヒープリザーブとコミットサイズを10000000に設定する
32GBのRAMと約64GBのメモリを搭載したWin 10マシンでこれらすべてを試してみました。私は巨大なファイルのコンパイルを処理するためのきちんとした方法があるかどうかを知りたいですか?
ヘッダーをプレコンパイルできますか? – wallyk
はい、しかし、PCHを使用していても、大量の計算で問題は残ります。 – MarKS