Napisałem niestandardowy kod, który używa blokad i zmiennych warunkowych, obserwuję znaczną różnicę w narzucie synchronizacji między Python 2.x i 3.x:
- 2.6.8, 2.7.6: 14 ~ 54ms
- 3.3.4: <1ms
Czy istnieje ku temu powód? Znane wyjaśnienie? Błąd CPython rozwiązany tylko w 3.x?
Jeśli ktoś zna odpowiedź z góry, jest bardzo mile widziany.
W przeciwnym razie zostaw komentarz i zhakuję jakiś kod testowy.
Odpowiedzi:
1 dla odpowiedzi № 1Zrobili dużo pracy w 3.2, aby poprawić wydajność wielowątkowości i jak GIL Funkcje:
http://docs.python.org/dev/whatsnew/3.2.html#multi-threading
Nie wiedząc nic więcej na temat twojego kodu, to byłby mój domysł.