2013-05-28 20 views
1

最近我學到了Lua,我們需要它與現有的C代碼(HTTP服務器)合作。問問推薦使用C/C++的Lua cowork方法嗎?

從Lua的書,我們知道有可能要辦法使它們協同工作:

  • 從Lua,你可以用在共享庫(xxx.so)C代碼Lua中使用require將其導入。
  • 從C,你可以使用現有的Lua API來操作lua_state,這是一些技巧,但它運作良好。

我採用他們兩個,一切似乎都很棒,通過使用Lua我們可以節省大量的時間來實現我們的業務邏輯。但是我對目前的架構感到很緊張,雖然沒有嚴重的問題,但我總是擔心它,如果發生了一些事情,例如嚴重的性能瓶頸,內存相關等等。

有沒有人在這方面有豐富的經驗,請給出一些建議。謝謝。

+0

需要編輯你的問題,它不是很清楚你想問什麼。標題詢問一件事,內容似乎要求別的東西 –

+0

關於記憶 - 你不需要擔心垃圾收集器的原因。當然,除非你沒有使用你自己的引用計數機制或者其他的機制 - 使用這些機制中的錯誤,你可以很簡單地引入內存泄漏。我還記得在lua堆棧上運行不好可能會導致一些錯誤。 – JosiP

回答

2

Lua旨在與C和C++一起使用。 C API就是爲此而設計的。

您不需要創建和使用共享庫來擴展Lua。這是擴展標準命令行解釋器的最簡單方法,但它應該很容易(如果不是那麼容易)在您自己的應用程序中爲Lua鏈接靜態C庫。

如果您想查看一些用於Lua的C庫的示例,請參閱mine。還有很多其他的。

相關問題