[issue36408] Tkinter multi-processing performance, Linux 10-25 times faster than Windows 10

2019-03-26 Thread J.E.McCormack
J.E.McCormack added the comment: Attached is a minimal reproducer script which is sufficient to show the issue clearly. It is a simple single-thread Tkinter program with one canvas. No multiprocessing, no shared variables, no connections between instances. Instructions at top of

[issue36408] Tkinter multi-processing performance, Linux 10-25 times faster than Windows 10

2019-03-25 Thread J.E.McCormack
J.E.McCormack added the comment: I can run four independent processes (i.e. not using multiprocessing, with no links at all between them) yet the results show that only one core is running. Where is this lock taking place? Why would a tkinter process need to know about another tkinter

[issue36408] Tkinter multi-processing performance, Linux 10-25 times faster than Windows 10

2019-03-25 Thread Steve Dower
Steve Dower added the comment: Windows only allows a single thread to access Win32 GUI elements at a time, and I'm fairly sure whichever part of Tcl/Tk/Tkinter is responsible for this makes sure it happens. So if you're throwing lots of UI updates at the UI thread, then yeah, you're going

[issue36408] Tkinter multi-processing performance, Linux 10-25 times faster than Windows 10

2019-03-25 Thread Josh Rosenberg
Josh Rosenberg added the comment: Could you provide a minimal reproducer script? With multiprocessing involved, I'd suspect some issue with data sharing (Windows can't fork after all, so it's possible something is involved there). I see nothing obvious in the _tkinter module that would

[issue36408] Tkinter multi-processing performance, Linux 10-25 times faster than Windows 10

2019-03-25 Thread SilentGhost
Change by SilentGhost : -- components: +Windows nosy: +gpolo, paul.moore, serhiy.storchaka, steve.dower, tim.golden, zach.ware ___ Python tracker ___

[issue36408] Tkinter multi-processing performance, Linux 10-25 times faster than Windows 10

2019-03-23 Thread J.E.McCormack
New submission from J.E.McCormack : I am measuring multi-process GUI performance (Tkinter 8.6, Python 3.7) for drawing lines, circles, text boxes, etc. In a fairly typical experiment on a i7-6700HQ, 4-core (8 thread), on Windows 10 I measure 25.5k objects/sec for one process running alone,