• 周年纪念勋章活动已圆满结束,如有已购买但仍未申请的用户,可以通过对应勋章的下载链接申请~

教程 关于Bedrock block servers 的Function执行命令测试与LSE执行命令测试

Moonlight_uu

【Lv:3】

正式会员
注册
2022/07/18
消息
15
金粒
7,850金粒
前言
  • 有稍微深入了解的minecraft基岩版的哥哥姐姐们都知道在游戏里有function 提高强大的指令函数包调用功能;
  • 这个教程是为了测试 functionlse. js 执行命令 谁更快?

JS测试代码
  • (让监听破坏方块给最近玩家循环加分
  • 指令测试为有效5000条!
  • 监听分数变化后的结果输出耗时; );
JavaScript:
function onA_B(pl, bl) {
    //mc.runcmdEx('say §aLSE执行命令 : ')
    // for (let i = 1; i < 5000; i++) {
    //     mc.runcmdEx('scoreboard players add @p "tset" 1');
    // }
    mc.runcmdEx('say §b函数包执行命令 : ')
    mc.runcmdEx('function test')
}
mc.listen('onDestroyBlock', onA_B);

function onScore(pl, num, name, disName) {
    num == 1 ? mc.runcmdEx('test') : num == 4999 ? mc.runcmdEx('test') : {};
}

mc.listen('onScoreChanged', onScore);

Function命令测试代码
代码:
scoreboard players add @p "tset" 1
function test

插嘴
  • 由于游戏原生规则限制 function 指令函数一次性最多执行10000命令 (测试修改世界NBT等办法, 无效);

速度对比
Lse.js执行耗时​
Function命令执行耗时​
62ms31ms
62ms47ms
63ms31ms

1715317293521.png

结果
  • 虽然看似函数包波动较大 但是执行数千条有效命令下 函数包执行命令几乎比Lse快1倍!!!
  • (而且实际上function执行了10000条命令(因为函数包有两条命令 循环执行到一万条自动停止); 而lse只执行了4999条 (因为变量i 我定了1)

个人猜测
  • 因为Function命令的函数系统更接近游戏底层 LSE执行应该是借助legacy-script-engine-quickjs插件再去加载JS插件 而后执行后台命令;
  • (即使是用命令方块执行Function也是一样的 可能效率会更高);
  • 所以如果你需要循环的 同时去执行数百上千的命令 用Function实际上效率会更高; add-on福音!

测试命令注册
JavaScript:
var cmdms;
function cmd() {
    const cmd = mc.newCommand('test', "耗时检测", PermType.Any, 0x80);
    cmd.overload();
    cmd.setCallback((cmd, ori, out) => {
        function a() {
            mc.runcmdEx(`say 间隔 ${Date.now() - cmdms} ms`);
            cmdms = undefined;
        }
        function b() {
            cmdms = Date.now();
            mc.runcmdEx('say 时间点已经设置, 等待第二次执行');
        }
        cmdms !== undefined ? a() : b();
    });
    cmd.setup();
}
mc.listen('onServerStarted', cmd);
 
内容版权许可
CC BY-NC-SA 署名-非商业性使用-相同方式共享

在线管理成员

在线会员

  • 筱森
  • fjghaw
  • 破寒
  • Green
  • 汽水味橘孑
  • 奔跑大土豆
  • 小虾米呀
  • czf430
  • Single_fun
  • sssjiu
  • Butterfly丶
  • Sh1roCu
  • franzvongal
  • Yurinann
  • Lilac
  • 没钱的山海
  • 2008716fzy
  • 七彩小镇~温馨和谐
  • 648645654465456
  • mc506lw
  • polang
  • PuddingKC
...和 86 更多。
后退
顶部 底部