配置
参数 | Windows | Linux |
---|---|---|
IDE | msvc2015 | g++ (GCC) |
版本 | 14.0.25420.01 Update3 | 11.2.0 |
编译器 | RELEASE x64 | |
C++版本 | c++11 | c++20 |
执行时间
线程数 | Windows | Linux |
---|---|---|
10000 | 12647.3154ms | 959.823ms |
20000 | 44117.0524ms | 1831.181ms |
30000 | 92849.2460ms | 2803.997ms |
40000 | 164744.4306ms | DUMP |
- Linux系统下跑的太快了,四万个线程直接挂了,三万个线程能正常跑完,推测上限值在 2 15 = 32767 2^{15} = 32767 215=32767 左右;
- 假设线程数为n,这些线程的执行时间都非常短,且n不超过当前操作系统的最大线程数
则完成这些线程的时间(单位:s):
windows下约为:
f 1 ( n ) = 1.0 ∗ 1 0 − 7 n 2 + 1.0 ∗ 1 0 − 4 n f1(n) = 1.0*10^{-7}n^2+1.0*10^{-4}n f1(n)=