簡體   English   中英

加速Java中的嵌入式Groovy

[英]Speed up Embedded Groovy in Java

我正在嘗試為自己正在玩的游戲引擎創建腳本化AI。 我決定嘗試使用Groovy創建.groovy行為文件,將其作為GroovyClasses加載,然后轉換為我的行為接口。 問題是,這非常慢。 我在每個游戲周期都執行更新,而腳本化的AI類將程序抓取。 我的問題是,有沒有辦法提高嵌入式Groovy速度,或者有更好的方法來完成我正在做的事情? 謝謝你的幫助。

以下是相關代碼:

public interface Behavior {
     public void execute(GameComponent component, float time);
}

Groovy文件在初始化時加載並強制轉換為GroovyClasses:

 public boolean cacheScript(String key, String path) {

        try {
            Class groovyClass = loader.parseClass(ClassLoader
                    .getSystemResourceAsStream(path));
            Object object = groovyClass.newInstance();
            scripts.put(key, (Behavior) object);
        } catch (InstantiationException e) {
            return false;
        } catch (IllegalAccessException e) {
            return false;
        }

        return true;
    }

然后GameComponent像這樣執行這段代碼

engine.getBehavior(key).execute(component, time);

如果不查看整個項目,就無法確定瓶頸是否一直在不斷加載和編譯Groovy代碼,或者一旦加載就在運行實際的Groovy代碼。 如果您的問題是,一旦在游戲中加載了Groovy代碼后,執行該代碼就需要花費很長時間,那么請看一下Groovy ++ ,因為它仍處於早期階段,所以我不確定它的運行情況如何,但是如果這是一個學習型項目,則可能對你足夠穩定。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM