私のコードにボトルネックがあるかどうか、またはそれを最適化する方法があるかどうかを尋ねたいと思います。コードのどこかに問題があるのか、それともまったく新しいアプローチを選択する必要があるのかを考えています。
ファイルをメモリ マップしましたが、このメモリ マップ ファイルから double を読み取る必要があります。これを可能な限り約100.000倍速くする必要があります。
リリースモードでかなり速いと思っていましたが、そうではありません。初めてやると5秒以上かかります。次回は約200ミリ秒かかります。これは少し高速です (Windows がメモリ マップ ファイルを処理する方法に関係していると思います) が、それでも遅すぎます。
void clsMapping::FeedJoinFeaturesFromMap(vector<double> &uJoinFeatures,int uHPIndex)
{
int iBytePos=this->Content()[uHPIndex];
int iByteCount=16*sizeof(double);
uJoinFeatures.resize(16);
memcpy(&uJoinFeatures[0], &((char*)(m_pVoiceData))[iBytePos],iByteCount);
}
誰かが私のコードを改善する方法を見ていますか? iByteCountCount をハードコーディングしましたが、実際には何も変わりませんでした。
アイデアありがとうございます。