lua和以太坊虛擬機
『壹』 LUA文件打開怎麼這樣呢!
lua是可以運行編譯後的腳本。
你這個lua文件是經過了編譯加密的,你要得到源代碼才行
編譯指令記得是
luac
-o
文件名
新文件名
反編譯的話,不太可行。。。
『貳』 java虛擬機怎麼可以跑lua代碼
可以從 Lua 調用 Java Class Static Method
調用 Java 方法時,支持 int/float/boolean/String/Lua function 五種參數類型
可以將 Lua function 作為參數傳遞給 Java,並讓 Java 保存 Lua function 的引用
可以從 Java 調用 Lua 的全局函數,或者調用引用指向的 Lua function
luaj 的功能很簡單,但對於集成各種 SDK 來說已經完全滿足需求了。
『叄』 lua中並不是所有的虛擬機都被摧毀了怎麼解決
Lua運行代碼時,首先把代碼編譯成虛擬機的指令("opcode"),然後執行它們。 Lua編譯器為每個函數創建一個原型(prototype),這個原型包含函數執行的一組指令和函數所用到的數據表。1
從Lua5.0開始,Lua使用基於寄存器的虛擬機(虛擬機主要分為基於寄存器的和基於棧的)。 為了分配寄存器使用時的activation record,這個虛擬機也使用到了棧。 當Lua進入函數時,它從棧中預分配了足夠容納所有函數寄存器的activation record。 所有的局部變數在寄存器中分配。因此提高了訪問局部變數的效率。
『肆』 ruby python jvm lua php 哪個虛擬機性能
這種問題問了也沒意思的。因為不同語言適合不同的場景。腳本慢,如果主要花在網路等待上,代碼慢些也沒啥關系的。
『伍』 lua虛擬機位元組碼怎麼改變
Lua的位元組碼在意義上等價於cpu的指令碼,但lua本身並沒有那麼多強大復雜的指令,只用了6個位來表示操作碼,這表示lua最多隻有64個操作碼(實際使用到的還沒有這么多),一個位元組碼由四位元組組成,這些個opcode又可進一步分成四大類,分別是iABC,iABx,iAsBx,iAx,這里i代表opcode,A,B,C分別代表參數,s代表有符號參數。
『陸』 關於lua語言的一些簡單問題
LUA語言本身不能實現這些功能,這與LUA語言的宿主語言或者宿主平台密切相關的,比如用VC編寫軟體,就要把LUA虛擬機移植到VC工程中,自己動手寫一些C++與LUA的介面,或者增加一些別人寫好的LUA增強包;如果是游戲平台的話,就要考慮平台提供的輸入輸出介面集,恰當地調用這些介面。總之,單憑LUA語言自己是沒辦法實現諸如快捷鍵捕獲、定時器之類的功能的。
『柒』 lua源碼分析4(lua是怎麼執行的)收藏
當分析到這里,對於lua生成中間碼的過程就比較熟悉了。關鍵是生成的中間碼必須要和lua虛擬機的執行聯系在一起。所以,對於這里分析的函數調用,要結合lua虛擬機的執行一起來分析。
上篇文章對生成局部函數中間碼做了簡單的介紹。這里知道,當lua發現一個新定義的函數的時候,會生成OP_CLOSURE指令。那麼,lua虛擬機執行到OP_CLOSURE後怎麼執行呢?
在此之前,先說在lua解析代碼完了以後,會做那些善後之事呢?
前面說過,lua會把一個代碼文件當作是一個函數解析執行。在解析期間,它會率先生成一個FuncState的結構,作為最外面的函數。但這是解析時做的事情,運行期間,是不會有FuncState這個東西出現的。在運行期間,是由一個個叫CallInfo的數據結果的,它指的是當前運行的函數。
那麼,在解析代碼以後,是怎麼轉入運行的呢?
『捌』 cocos lua 是怎樣實現跨平台的
基本流程如下:
1.下載Cocos2d-x庫,分別在Windows平台和Mac平台上解壓,並安裝對應的向導。
2.在Windows平台和Mac平台上創建同名工程。
3.在Windows平台上開發代碼,保證將代碼放在Class目錄和Resource目錄。
4.把Windows平台上開發的Class目錄和Resource目錄中的代碼拷貝到Mac電腦上,覆蓋同名目錄。
5.在Xcode中將剛添加的代碼和資源加入工程。
6.在Xcode中啟動編譯,在虛擬機和真機上測試,完工。
『玖』 lua解析luac 會還原為明文腳本嗎
不會,luac 是把純文本腳本 轉換成 lua虛擬機位元組碼。腳本的在內存中實際運行就是位元組碼。luac預編譯可加快腳本初次載入。
從 luac 到 明文 實際上是 反編譯。lua運行時並不進行反編譯。
『拾』 slua,ulua,nlua,unilua這幾種unity3D的lua插件各有什麼優劣
slua 是目前所有unity+lua方案里最快的,沒有反射,很少gc alloc,功能最強大的,沒有之一
**以下的benchmark是老版本, 新版更快**
slua 0.6 vs slua 0.7
直接支持代理(支持iOS), 支持4.6+ ui系統,支持il2cpp,支持yield, 代碼最簡潔, 更新最快,文檔最完善.
我們自己項目在用slua, 大概70%+的lua代碼,都是游戲核心邏輯,包括ui, 而我們的游戲是一個2.5D動作射擊游戲,同屏超過30個怪,上百發彈幕做碰撞檢查,紅米可以輕松跑在30fps,說這些只是想說slua用於動作的游戲作為主邏輯都不慢, 更不用說什麼回合/卡片/休閑游戲了.
ulua/nlua都是基於反射的解決方案, 劣勢是速度慢,gc alloc頻繁,不直接支持代理, 還有一堆坑,需要修改,優勢是不會產生靜態代碼,減少了app的尺寸.
上面的方案都是基於lua的原生代碼做為插件被unity調用,
而unilua是c#的lua實現, 本身肯定沒有c代碼效率高,同時還需要考慮如果導出unity介面(可以反射,也可以靜態代碼),所以unilua不是一個完整的unity+lua方案,只是一個c#實現的lua虛擬機.
還有其他什麼值得推薦的插件? 沒有了,就用slua吧,妥妥的.
