rel="File-List" href="file:///C:%5CDOCUME%7E1%5Cibm%5CLOCALS%7E1%5CTemp%5Cmsohtml1%5C01%5Cclip_filelist.xml">

三:Squirrel的执行速度

值得关注的是Squirrel的执行速度,Lua本来就是以速度见长,Squirrel是否可以将这个特点继承并发扬光大?这个不好说,Squirrel的作者也说不好比较,因为Squirrel增加了很多新特性,作者说Squirrel的内置Array肯定比Lua中用Table模拟的Array快(我看未必,可以看我测试的结果)。

我没有专门测试Lua和Squirrel的速度,但看过“云风”的一篇Blog,说Lua虚拟机优化很好,是基于“寄存器”执行,我没有研究Lua的源码,Squirrel的源码粗粗看了一下,这段执行字节码的代码似乎没有做到Lua那么精细,估计同等情况下Squirrel的执行速度要慢于Lua。

虽说Squirrel可能慢于Lua,但它还是一个比较快的脚本语言,毕竟它的核心思想都来源于Lua,在我的1.5G Laptop上,执行一个数组创建及遍历,其速度大约是C++的1/4。测试代码如下:

C++:

std::vector<int> arr;

for(int i=0;i<1000;i++) arr.push_back(i*13);

int total=0;

for(int j=0;j<1000;j++) total+=arr[j];

Squirrel Array:

local arr=[];

for(local i=0;i<1000;i++) arr.append(i*13);

local total=0;

for(local j=0;j<1000;j++) total+=arr[j];

Squirrel Table:

local tb={};

for(local i=0;i<1000;i++) tb[i]<-(i*13);

local total2=0;

for(local j=0;j<1000;j++) total2+=tb[j];

tm.endClock();

我使用CPU内部的TSC寄存器进行直接运行时间测定(应该是目前最精密的运行时间测定方法之一了,1.5M CPU时钟脉冲为一毫秒),运行上一段代码,C++使用280K CPU时钟脉冲,Squirrel Array使用 1110K CPU时钟脉冲,Squirrel Table使用了903K CPU时钟脉冲。

这个测试很有意思,Squirrel的Table居然比Array还要略快一些,这是完全出乎我意外的。

Squirrel语言的执行速度相关推荐

  1. c语言程序运行内存图解,从执行速度和内存使用等方面来优化C语言代码

    在本篇文章中,我收集了很多经验和方法.应用这些经验和方法,可以帮助我们从执行速度和内存使用等方面来优化C语言代码. 简介 在最近的一个项目中,我们需要开发一个运行在移动设备上但不保证图像高质量的轻量级 ...

  2. SQUIRREL语言

    Squirrel是一种较新的 程序设计语言,它从著名的LUA语言继承了很多特性,适用的范围也与LUA语言相似. Squirrel的作者是意大利人Alberto Demichelis,SQUIRREL开 ...

  3. 《预训练周刊》第12期:无注意力变换器、借蛋白质语言模型论进化速度

    No.12 智源社区 预训练组 预 训 练 研究 观点 资源 活动 关于周刊 超大规模预训练模型是当前人工智能领域研究的热点,为了帮助研究与工程人员了解这一领域的进展和资讯,智源社区整理了第11期&l ...

  4. java语言的执行模式是什么,Java语言的执行模式是()?

    Java语言的执行模式是()? 更多相关问题 反馈控制系统是指系统中有().A.反馈回路B.惯性环节C.积分环节D.PID调节器 肾锥体为()A.强回声B.等回声C.低回声D.较低回声E.无回声 给图 ...

  5. 使用PyPy加快Python程序执行速度

    Python可以说是近年来比较火的编程语言之一了,Python的优点就不多说了,写过Python的同学应该都有所体验,Python独有的一些特性,写起来真实太舒服了,但是老实讲,Python也没有像各 ...

  6. java web运行的快慢_WebAssembly执行速度真的很强悍吗?对微软Edge很无语

    原标题:WebAssembly执行速度真的很强悍吗?对微软Edge很无语 Firefox一直在WebAssembly上耕耘,在macOS与Windows上表现的都很好,Chrome 67在WebAss ...

  7. iar代码优化影响运行速度吗_IAR中优化等级对Kinetis FGPIO执行速度的影响

    在灯光控制.IO模拟Flex Bus等很多应用中,对GPIO的翻转速度有很高的要求,M0+内核中集成了一个特定的single-cycle I/O port,Kinetis中我们称之为Fast GPIO ...

  8. python.freelycode.com-优化Pandas代码执行速度入门指南

    Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 如果你用Python做过一些数据分析相关的项目,那么很有可能你已经接触过Pandas,由Wrs McKin ...

  9. python timeit class Timer()类 timeit(string, string) repeat(string, string) default_timer() 耗时检测 执行速度

    #! /usr/bin/env python3"""Tool for measuring execution time of small code snippets. 用 ...

最新文章

  1. windows server2012怎样关机怎样重启-详细教程
  2. 获得 DataSet中的记录总数
  3. 省常中模拟 Test3 Day2
  4. Flink 在又拍云日志批处理中的实践
  5. 前端学习(1662):前端系列实战课程之div跟随鼠标移动
  6. 【酷熊科技】工作积累 ----------- Unity3d中的Awake()、OnEnable()、Start()等默认函数的执行顺序和生命周期...
  7. 细说Golang的JSON解析
  8. Java IO(输入输出)
  9. [转载] 不少Gate或Node运算子 的反向传播代码
  10. RTP包里面得到H.264数据和AAC数据的方法
  11. Oracle-随笔笔记
  12. oracle用plsql导出表结构与数据
  13. CS224n(2019):Assignment 3 参考答案
  14. Python3对股票的收益和风险进行分析
  15. 《商业的本质》读书笔记
  16. 平安保险的万能险怎么样?
  17. Tanzu Observability by Wavefront Spring Boot Starter
  18. 海信android4.4.2电视怎么投屏,海信电视怎么投屏
  19. PaperTigerOS(第四天)
  20. ARAP(As-Rigid-As-Possible)变形算法

热门文章

  1. 稻盛和夫:内心不极度渴望的东西,它不可能轻易靠近你
  2. moran指数 r语言_新版白话空间统计(19)空间关系对莫兰指数的影响
  3. EAC3 channel program extension
  4. 中国计量大学本科毕业论文答辩PPT模板
  5. 图文并茂解释Transformer--The Illustrated Transformer翻译精简
  6. NTP网络时间服务器是如何完成它的授时服务的?
  7. 自己的Flash作品(1)截图
  8. 台湾地区信用卡客户贷款违约预测
  9. Linux wine 字体发虚,解决QQ(wine)因字体卡死宋体发虚太难看的一种方法
  10. Python可以解决哪些生活中的小问题