我想问一下是否有人在我的代码中看到了瓶颈或任何优化它的方法。我正在考虑我的代码是否有问题,或者我是否需要选择一种全新的方法。
我有一个内存映射文件,我需要从这个内存映射文件中读取双精度。我需要尽可能快地完成大约 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 进行了硬编码,但这并没有真正改变任何东西。
谢谢你的想法。