От: | Caracrist | https://1pwd.org/ | |
Дата: | 26.09.12 23:02 | ||
Оценка: |
RetroEvent.h | |
| |
RetroEvent.cpp | |
| |
От: | Caracrist | https://1pwd.org/ | |
Дата: | 28.09.12 22:03 | ||
Оценка: |
PulsarEvent.h | |
| |
PulsarEvent.cpp | |
| |
SmartSpinMutex | |
| |
От: | Caracrist | https://1pwd.org/ | |
Дата: | 28.09.12 23:06 | ||
Оценка: |
Код теста | |
| |
SmartSpinMutex | |
| |
SpinMutex | |
| |
От: | Caracrist | https://1pwd.org/ | |
Дата: | 01.10.12 19:07 | ||
Оценка: |
while (m_settingCount && m_waitingCount && (m_setIndex == prevIndex))
while (m_settingCount && (m_setIndex == prevIndex))
DWORD WINAPI Work(void *)
{
while(1)
{
_InterlockedIncrement64(&wrk);
}
}
printf("%d set %I64d done %I64d\n", GetCurrentThreadId(), cnt, wrk);
результаты | |
CRITICAL_SECTION: 6100 set 3635791 done 865967975 6100 set 6694219 done 1730704524 6100 set 10623651 done 2591867287 6100 set 13566810 done 3459369466 6100 set 16742211 done 4325375554 6100 set 19955911 done 5191390141 SpinMutex: 4384 set 215330 done 872795371 4384 set 792636 done 1742500158 4384 set 1513333 done 2612406125 4384 set 2106909 done 3479599717 4384 set 2760201 done 4349449513 4384 set 3339203 done 5219177745 SmartSpinMutex: 3336 set 99395 done 784914987 3336 set 207087 done 1653246893 3336 set 339514 done 2521517183 3336 set 384181 done 3389750134 3336 set 473368 done 4257453598 3336 set 534001 done 5125593331 | |
От: | Caracrist | https://1pwd.org/ | |
Дата: | 04.10.12 23:32 | ||
Оценка: |
PulsarEvent | |
| |
SmartSpinExclusiveMutex | |
| |
код теста | |
| |
8 потоков + работа | |
ss 37,100,377 — 805,973,938 — 1 — 1,284 77,028,340 — 1,608,787,637 — 1 — 2,572 116,752,553 — 2,393,629,552 — 1 — 3,874 155,335,719 — 3,182,591,378 — 1 — 5,166 cs 68,115,304 — 768,354,784 — 1 — 1,291 138,171,096 — 1,537,447,111 — 1 — 2,581 207,040,949 — 2,295,221,637 — 1 — 3,878 274,574,580 — 3,066,565,603 — 1 — 5,169 s 155,075,234 — 954,114,363 — 50 — 1,232 309,383,733 — 1,914,573,771 — 100 — 2,468 464,083,889 — 2,877,295,662 — 142 — 3,717 624,008,005 — 3,824,859,399 — 184 — 4,970 | |
8 потоков | |
ss 58,155,594 — 0 — 62 — 352 111,398,867 — 0 — 106 — 726 174,515,093 — 0 — 164 — 1094 232,094,120 — 0 — 212 — 1442 cs 82,126,069 — 0 — 1 — 288 142,670,151 — 0 — 1 — 538 201,661,782 — 0 — 1 — 773 258,330,973 — 0 — 1 — 1,008 s 101,257,771 — 0 — 264 — 549 199,697,451 — 0 — 556 — 1,080 301,518,533 — 0 — 831 — 1,604 402,098,078 — 0 — 1,089 — 2,253 | |
2 потока | |
ss 148,018,238 — 0 — 1 — 585 295,856,685 — 0 — 2 — 1,162 445,146,400 — 0 — 2 — 1,747 593,486,933 — 0 — 2 — 2,332 cs 222,607,335 — 0 — 1 — 579 444,428,823 — 0 — 1 — 1,158 666,785,898 — 0 — 1 — 1,745 890,312,048 — 0 — 1 — 2,331 s 229,022,844 — 0 — 27 — 612 459,918,189 — 0 — 55 — 1,226 688,961,624 — 0 — 90 — 1,832 919,740,920 — 0 — 112 — 2,455 | |
20 потоков | |
ss 2,262,081 — 0 — 18 — 35 4,190,718 — 0 — 28 — 60 7,499,464 — 0 — 34 — 93 9,374,988 — 0 — 52 — 128 cs 2,223,472 — 0 — 1 — 11 4,165,688 — 0 — 1 — 15 6,134,292 — 0 — 1 — 23 8,772,057 — 0 — 1 — 32 s 984,945 — 0 — 888 — 220 1,186,733 — 0 — 1797 — 416 1,347,222 — 0 — 2690 — 634 1,403,609 — 0 — 3595 — 843 | |
20 потоков + работа | |
ss 12,851,147 — 756,860,203 — 0 — 1,340 31,811,700 — 1,516,441,391 — 0 — 2,676 48,164,419 — 2,272,531,636 — 0 — 4,006 66,210,941 — 3,033,188,978 — 0 — 5,341 cs 40,235,628 — 751,769,795 — 2 — 1,332 81,633,564 — 1,504,524,604 — 2 — 2,673 121,854,728 — 2,247,953,371 — 2 — 4,017 162,036,862 — 2,995,430,821 — 2 — 5,358 s 124,267,420 — 1,104,594,843 — 141 — 1,178 251,639,363 — 2,209,356,302 — 283 — 2,366 388,659,974 — 3,276,558,982 — 406 — 3,581 511,358,318 — 4,395,718,232 — 562 — 4,762 | |