Создание потока занимает слишком много времени
Загружаю растровые тайлы асинхронно, каждый в своем потоке. Но заметил что сильно тормозит UI. Замерил время, оказалось что создание одного потока занимает от 0.5 до 5 миллисекунд. Начал гуглить, везде пишут что потоки стартуют довольно быстро, в бенчмарках у людей несколько микросекунд на создание одного потока, а у меня тысячи. Я что-то делаю неправильно или это особенность Visual C++? Одновременно запускаю не более 80 потоков.
std::chrono::steady_clock::time_point begin = std::chrono::steady_clock::now();
std::thread(&RequestHandler::_request, this, host, port, body).detach();
std::chrono::steady_clock::time_point end = std::chrono::steady_clock::now();
std::cout << "Time difference = " << std::chrono::duration_cast<std::chrono::milliseconds>(end - begin).count() << "[ms]" << std::endl;
std::cout << "Time difference = " << std::chrono::duration_cast<std::chrono::microseconds> (end - begin).count() << "[mic]" << std::endl;
Результат:
Time difference = 4[ms]
Time difference = 4350[mic]
Time difference = 0[ms]
Time difference = 701[mic]
Time difference = 0[ms]
Time difference = 594[mic]
Time difference = 2[ms]
Time difference = 2205[mic]