TomSchimansky / TkinterMapView

A python Tkinter widget to display tile based maps like OpenStreetMap or Google Satellite Images.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Extremely high cpu usage on Python 3.10 causing lag and slowness

aoslamda opened this issue · comments

Created a minimal working example of Tkintermapview on Python 3.10 and cpu usage skyrockets to 310%. I compared this to the same working example on Python 3.8 and cpu usage is fine at 60%.

I reduced image_load_thread_pool size from initial value 25 to 4. CPU load was halved and tiles were loaded in about 4 seconds while by default loading time was almost 13 seconds.

Here are the logged processing times of individual threads from the moment image_load_queue_tasks is populated to the moment the queue is empty again:

25 threads:
done in 9.337615
done in 9.554295
done in 10.7789
done in 11.088345
done in 11.147088
done in 11.160177
done in 11.424975
done in 11.437656
done in 11.494931
done in 11.634528
done in 11.684579
done in 11.650118
done in 11.743283
done in 11.831032
done in 11.905858
done in 12.078805
done in 12.490917
done in 12.666273
done in 12.724669
done in 12.775328
done in 12.816464
done in 12.858942
done in 12.817465
done in 12.882834

4 threads:
done in 3.73019
done in 3.759539
done in 3.858024
done in 3.881888