Я хотел бы зашифровать файл с несколькими потоками, чтобы сократить время, необходимое.Я работаю на процессоре Intel i5, 4 ГБ памяти, Visual C ++ 2008. Проблема в том, что когда я запускаю код ниже в режиме отладки (Visual C ++ 2008), больше времени, например, если я использую один поток для шифрования 3 МБ файла5 секунд, но когда я использую два потока, 10 секунд.Предполагается, что время будет коротким при использовании 2 потоков в режиме отладки.но в режиме выпуска проблем нет, время, затрачиваемое на несколько потоков, невелико.Можно ли запустить код в режиме отладки с более коротким временем?Есть ли настройки для изменения в Visual C ++ 2008?
void load()
{
ifstream readF ("3mb.txt");
string output; string out;
if(readF.is_open())
{
while(!readF.eof())
{
getline(readF,out);
output=output+'\n'+out;
}
readF.close();
//cout<<output<<endl;
//cout<<output.size()<<endl;
text[0]=output;
}
else
cout<<"couldnt open file!"<<endl;
}
unsigned Counter;
unsigned __stdcall SecondThreadFunc( void* pArguments )
{
cout<<"encrypting..."<<endl;
Enc(text[0]);
_endthreadex( 0 );
return 0;
}
unsigned __stdcall SecondThreadFunc2( void* pArguments )
{
cout<<"encrypting..."<<endl;
//Enc(text[0]);
_endthreadex( 0 );
return 0;
}
int main()
{
load();
HANDLE hThread[10];
unsigned threadID;
time_t start, end;
start =time(0);
hThread[0] = (HANDLE)_beginthreadex( NULL, 0, &SecondThreadFunc, NULL, 0, &threadID);
hThread[1] = (HANDLE)_beginthreadex( NULL, 0, &SecondThreadFunc2, NULL, 0, &threadID );
WaitForSingleObject( hThread[0], INFINITE );
WaitForSingleObject( hThread[1], INFINITE );
CloseHandle( hThread[0] );
end=time(0);
cout<<"Time taken : "<<difftime(end, start) << "second(s)" << endl;
system("pause");
}