2010-08-25 19 views
0

我已經準備好了一個Python語言項目,即TEXT TO SPEECH合成器。這佔用了1500行代碼。 但是由於代碼運行時間太長,代碼很少,我想用C/C++ lang代替部分代碼,以便運行速度更快。如何將python中的部分代碼複製到C中以更快執行?

所以我想知道如何在C++中運行這些代碼部分或以任何其他方式提高其速度?

請建議,

回答

5

你可以寫在Cython,它很容易。

或者,您可以嘗試使用numpy,它已經用C語言編寫,並且可能包含大部分您需要的操作。

+0

是我只需要在cython中編寫代碼nd將模塊導入到原始代碼中? – kaki 2010-08-25 17:20:24

+0

是的,但您也需要編譯它,請參閱http://docs.cython.org/src/quickstart/build.html – 2010-08-26 06:40:23

3

您有幾種選擇:

正如拉多米爾提到的,用Cython可能是一個不錯的選擇:它本質上是一個限制Python和類型聲明,自動轉換成C,然後編譯執行。

如果你想使用純C,你可以使用Python C API編寫一個Python擴展模塊。如果您需要在C代碼中操作Python數據結構,這是一個很好的方法。使用Python C API,您可以用C編寫,但可以完全訪問Python類型和方法。或者,你可以寫一個純粹的C DLL,然後用​​調用它。如果您不需要訪問C代碼中的Python數據結構,那麼這是一個不錯的選擇。使用這種技術,您的C代碼只處理C類型,而您的Python代碼必須瞭解如何使用ctypes獲取該C數據。

0

你也可以嘗試psyco module對你的代碼的運行時間(Python 2.6或更早版本)或pypy(用Python子集編寫的python JIT)的影響。還有C++編譯器shedskin,儘管Windows在最新版本中不受支持。

相關問題