/ / Rozdiel v režime multithreading medzi Python 2.x a 3.x - python, python-2.7, python-3.x, python-3.3, python-2.x

Rozdiel v režime multithreading medzi Python 2.x a 3.x - python, python-2.7, python-3.x, python-3.3, python-2.x

Napísal som nejaký vlastný kód, ktorý používa zámky a podmienkové premenné, pozorujem významný rozdiel v režime synchronizácie medzi Pythonom 2.x a 3.x:

  • 2.6.8, 2.7.6: 14 ~ 54ms
  • 3.3.4: <1 ms

Existuje dôvod na to? Dobre známe vysvetlenie? Chyba CPython bola vyriešená iba v 3.x?

Ak niekto pozná odpoveď z hlavy, je to vítané.

V opačnom prípade zanechajte komentár a zaseknem nejaký testovací kód.

odpovede:

1 pre odpoveď č. 1

Vykonali veľa práce v 3.2 pre zlepšenie multithreading výkon a ako GIL funkcie:

http://docs.python.org/dev/whatsnew/3.2.html#multi-threading

Bez toho, aby ste vedeli o vašom kóde ešte niečo iné, to by bolo moje hádanie.