簡體   English   中英

Python:在沒有GIL的情況下繪制一些數據(matplotlib)

[英]Python: Plot some data (matplotlib) without GIL

我的問題當然是GIL。 在我分析數據時,最好在兩者之間展示一些情節(所以等待結果並不是太無聊)

但GIL阻止了這一點(這讓我開始問自己,Python本來就是一個好主意)。

我只能顯示情節,等到用戶關閉它並在此之后開始計算。 顯然浪費時間。

我已經嘗試過子進程和多處理模塊,但似乎無法讓它們工作。

對這個有什么想法嗎? 謝謝

編輯:好的,所以它不是GIL而是show()。

這不是來自matplotlib或GIL的問題。

在matplotlib中您可以打開任意數量的圖形,並在應用程序繼續執行其他操作時將它們放在屏幕中。

您必須在交互模式下使用matplotlib。 這可能是你的問題。

from matplotlib import interactive
interactive(True)

這應該是你的進口的頂部

這與GIL無關,只需修改分析代碼,使其不時更新圖形(例如每N次迭代)。

只有這樣,如果您看到繪制圖形會使分析代碼過於緩慢,請將圖形更新代碼放在具有多處理功能的子流程中。

我認為您需要將圖形放入適當的Windowing系統,而不是依賴於內置的show代碼。

也許在另一個線程中堅持使用.show()就足夠了?

GIL是無關緊要的 - 你有一個阻塞的show()調用,所以你需要先處理它。

似乎draw()方法可以避免使用show()。

在腳本中留下.show()的唯一原因是讓它執行阻塞部分,以便在腳本到達結尾時圖像不會消失。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM