2014-01-16 36 views
0

我將一個lib(*。so)與ctypes連接起來。但是,加載時間非常大。這很慢。加載時間共享庫太大

我可以使用什麼技術來提高性能?

我的模塊將始終在提示符下運行。將一次運行一個命令。

> $./myrunlib.py fileQuestion fileAnswer 
# again 
> $./myrunlib.py fileQuestion fileAnswer 

代碼:

from ctypes import * 
drv = cdll.LoadLibrary('/usr/lib/libXPTO.so') 
+2

請向我們展示您使用的代碼,否則我們真的不能幫助... – MattDMo

+1

請問一個簡單的C程序加載相同的.so也需要很長時間嗎? – abarnert

回答

0

要麼你已經有了一個奇怪的錯誤,讓您的庫加載極爲緩慢通過Python程序時(我覺得這相當不可能的),或者加載拿所花費的時間(可能是因爲該庫在加載時會執行大型初始化任務)。

在後一種情況下,您唯一的選擇似乎是防止您的Python程序重新啓動。讓它運行在一個從stdin(或任何其他管道或套接字,甚至可能來自作業文件)而不是從命令行讀取所有任務的循環中。

+0

Alfe,感謝您的建議(守護程序,套接字等..)。但我想嘗試從命令行優化運行。 – Ivanelson

+0

然後查看從「普通」C程序(@ abarnert的建議)加載此庫時加載需要多長時間。如果這還需要很長時間,我必須優化庫本身,我擔心。 – Alfe

+0

好主意!我會嘗試加載到C並測量時間。 – Ivanelson