Squirrel语言的执行速度
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语言的执行速度相关推荐
- c语言程序运行内存图解,从执行速度和内存使用等方面来优化C语言代码
在本篇文章中,我收集了很多经验和方法.应用这些经验和方法,可以帮助我们从执行速度和内存使用等方面来优化C语言代码. 简介 在最近的一个项目中,我们需要开发一个运行在移动设备上但不保证图像高质量的轻量级 ...
- SQUIRREL语言
Squirrel是一种较新的 程序设计语言,它从著名的LUA语言继承了很多特性,适用的范围也与LUA语言相似. Squirrel的作者是意大利人Alberto Demichelis,SQUIRREL开 ...
- 《预训练周刊》第12期:无注意力变换器、借蛋白质语言模型论进化速度
No.12 智源社区 预训练组 预 训 练 研究 观点 资源 活动 关于周刊 超大规模预训练模型是当前人工智能领域研究的热点,为了帮助研究与工程人员了解这一领域的进展和资讯,智源社区整理了第11期&l ...
- java语言的执行模式是什么,Java语言的执行模式是()?
Java语言的执行模式是()? 更多相关问题 反馈控制系统是指系统中有().A.反馈回路B.惯性环节C.积分环节D.PID调节器 肾锥体为()A.强回声B.等回声C.低回声D.较低回声E.无回声 给图 ...
- 使用PyPy加快Python程序执行速度
Python可以说是近年来比较火的编程语言之一了,Python的优点就不多说了,写过Python的同学应该都有所体验,Python独有的一些特性,写起来真实太舒服了,但是老实讲,Python也没有像各 ...
- java web运行的快慢_WebAssembly执行速度真的很强悍吗?对微软Edge很无语
原标题:WebAssembly执行速度真的很强悍吗?对微软Edge很无语 Firefox一直在WebAssembly上耕耘,在macOS与Windows上表现的都很好,Chrome 67在WebAss ...
- iar代码优化影响运行速度吗_IAR中优化等级对Kinetis FGPIO执行速度的影响
在灯光控制.IO模拟Flex Bus等很多应用中,对GPIO的翻转速度有很高的要求,M0+内核中集成了一个特定的single-cycle I/O port,Kinetis中我们称之为Fast GPIO ...
- python.freelycode.com-优化Pandas代码执行速度入门指南
Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 如果你用Python做过一些数据分析相关的项目,那么很有可能你已经接触过Pandas,由Wrs McKin ...
- 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. 用 ...
最新文章
- windows server2012怎样关机怎样重启-详细教程
- 获得 DataSet中的记录总数
- 省常中模拟 Test3 Day2
- Flink 在又拍云日志批处理中的实践
- 前端学习(1662):前端系列实战课程之div跟随鼠标移动
- 【酷熊科技】工作积累 ----------- Unity3d中的Awake()、OnEnable()、Start()等默认函数的执行顺序和生命周期...
- 细说Golang的JSON解析
- Java IO(输入输出)
- [转载] 不少Gate或Node运算子 的反向传播代码
- RTP包里面得到H.264数据和AAC数据的方法
- Oracle-随笔笔记
- oracle用plsql导出表结构与数据
- CS224n(2019):Assignment 3 参考答案
- Python3对股票的收益和风险进行分析
- 《商业的本质》读书笔记
- 平安保险的万能险怎么样?
- Tanzu Observability by Wavefront Spring Boot Starter
- 海信android4.4.2电视怎么投屏,海信电视怎么投屏
- PaperTigerOS(第四天)
- ARAP(As-Rigid-As-Possible)变形算法
热门文章
- 稻盛和夫:内心不极度渴望的东西,它不可能轻易靠近你
- moran指数 r语言_新版白话空间统计(19)空间关系对莫兰指数的影响
- EAC3 channel program extension
- 中国计量大学本科毕业论文答辩PPT模板
- 图文并茂解释Transformer--The Illustrated Transformer翻译精简
- NTP网络时间服务器是如何完成它的授时服务的?
- 自己的Flash作品(1)截图
- 台湾地区信用卡客户贷款违约预测
- Linux wine 字体发虚,解决QQ(wine)因字体卡死宋体发虚太难看的一种方法
- Python可以解决哪些生活中的小问题