我一直在試圖決定如何將Lua嵌入到我的應用程序中以用於腳本和擴展目的。 我有一個類處理具有類似於Lua表的結構的對象。 (特別是boost::any
的散列圖) Lua腳本將與這些對象及其散列映射進行交互。腳本和主機應用程序之間的責任
我越來越清楚,我可以在Lua中編寫整個或大部分這個類(並從C中訪問它),但我不確定這樣做的後果,特別是關於創建許多表來表示哈希映射。 得出這個結論的原因是我想在這些C對象中存儲來自Lua的高級結構,但這樣做每次將表存儲到C對象中或從其中檢索時都需要顯式表序列化。從理論上講,這種方法可以提供更少的內存使用量,以平衡每次訪問的更高延遲。
這種情況下可能的行動方案及其優缺點是什麼?
使用Lua vs當前實現的優點是什麼? 「存儲來自Lua的高級結構」是什麼意思? – kikito
將表原樣從Lua存儲到C中,最有可能表示數組,並且在極少數情況下表示哈希映射。目前,存儲任何微不足道的POD類型都很簡單,比如Lua的編號,布爾值,零,字符串。正如我前面所說的那樣,存儲非平凡的數據類型(比如表)需要C和C的顯式序列化。與當前實現相比,使用Lua的好處是大多數這些操作都是內部的; Lua會在運行時處理所有變量的存儲。唯一需要顯式表序列化的是C需要一個。 –