这是一个专门的编程语言/编译器速度测试/对比网站(http://shootout.alioth.debian.org/)给出的题目,
以下是EF源代码:
//fannkuch
public final class 启动类 <作者 = "liigo">
{
public static main()
{
int n = 11;
int time = 运行环境.取启动时间();
控制台.输出("Pfannkuchen(", n, ") = ", fannkuch(n), "\n");
控制台.输出行("time(ms): ", 运行环境.取启动时间() - time);
控制台.输入文本();
}
static int fannkuch(int n)
{
int[] perm = new int[n];
int[] perm1 = new int[n];
int[] count = new int[n];
int flips;
int flipsMax;
int r;
int i;
int k;
int didpr;
int n1 = n - 1;
if( n < 1 ) return 0;
for(i=0; i<n; i++) perm1[i] = i;
/* initial (trivial) permu */
r = n;
didpr = 0;
flipsMax = 0;
for(;;)
{
if( didpr < 30 )
{
for( i=0;i<n;i++ ) 控制台.输出(1+perm1[i]);
控制台.输出行("");
didpr++;
}
for(;r!=1;r--)
{
count[r-1] = r;
}
if(!(perm1[0]==0 || perm1[n1]==n1) )
{
flips = 0;
for( i=1;i<n;i++ )
{
perm[i] = perm1[i];
}
k = perm1[0];
/* cache perm[0] in k */
do
{
/* k!=0 ==> k>0 */
int j;
for( {i=1; j=k-1;}; i<j; {i++; j--;} )
{
int t_mp = perm[i];
perm[i] = perm[j];
perm[j] = t_mp;
}
flips++;
/* * Now exchange k (caching perm[0]) and perm[k] */
j=perm[k];
perm[k]=k;
k=j;
}
while(k != 0);
if( flipsMax < flips )
{
flipsMax = flips;
}
}
for(;;)
{
if( r == n )
{
return flipsMax;
}
/* rotate down perm[0..r] by one */
int perm0 = perm1[0];
i = 0;
while( i < r )
{
k = i+1;
perm1[i] = perm1[k];
i = k;
}
perm1[r] = perm0;
count[r] -= 1;
if( count[r] > 0 )
{
break;
}
r++;
}
}
}
}
这个EF程序,在我的机器上,运行耗时约37 秒。相应的VC6最佳优化后运行耗时约5.8 秒。
其它编程语言/编译器的表现,请看这里:http://shootout.alioth.debian.org/gp4/benchmark.php?test=fannkuch&lang=all
总的来说,EF表现不坏。比不少编程语言(如C++, JAVA, C#, D, Fortran, Pascal)慢很多,又比另外不少编程语言(如Erlang, Python, Ruby, Perl, PHP, Lua, Groovy, SmallTalk, JavaScript)快很多。
进一步分析的话:EF作为编译型语言,通常比其它编译型语言都慢(毕竟EF编译器尚未优化),最多慢7倍;EF通常比解释型语言都要快,往往快数倍、数十倍,以至上百倍。
还有很多测试题目,有时间再继续。想了解EF语言,请到EF官方博客:http://blog.csdn.net/efdev/
分享到:
相关推荐
- **SunSpider-Access-Fannkuch**: 这个测试中,RISC-V 64位的指令数量为397228043,MIPS 64位为345380701,差值为51847342,即RISC-V比MIPS多执行了约15.01%的指令。 - **Octane-Box2D**: 在这个测试中,RISC-V 64...
Crates.io版本无法再更新! 原始维护者已失去联系,新维护者(Portable SIMD项目组)没有适当的crates.io权限来发布更新。 我们知道crates.io上... fannkuch_redux matrix inverse mandelbrot n-body options_p
Amazon S3:S3静态网站托管教程.docx
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 替换数据可以直接使用,注释清楚,适合新手
Matlab领域上传的视频均有对应的完整代码,皆可运行,亲测可用,适合小白; 1、代码压缩包内容 主函数:main.m; 调用函数:其他m文件;无需运行 运行结果效果图; 2、代码运行版本 Matlab 2019b;若运行有误,根据提示修改;若不会,私信博主; 3、运行操作步骤 步骤一:将所有文件放到Matlab的当前文件夹中; 步骤二:双击打开main.m文件; 步骤三:点击运行,等程序运行完得到结果; 4、仿真咨询 如需其他服务,可私信博主; 4.1 博客或资源的完整代码提供 4.2 期刊或参考文献复现 4.3 Matlab程序定制 4.4 科研合作
CPPC++_半透明效果,大多数的win32飞出
mondo离线包
VID_20241112_234319.mp4
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。 替换数据可以直接使用,注释清楚,适合新手
基于C/C++实现根据人类手写汉字图片-使用机械臂复写汉字+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档~ 基于C/C++实现根据人类手写汉字图片-使用机械臂复写汉字+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档~ 基于C/C++实现根据人类手写汉字图片-使用机械臂复写汉字+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档~ 项目简介: 实现根据人类手写汉字,使用机械臂复写汉字 项目目的 完成将相机拍摄的人类手写汉字图像; 通过halcon处理为骨架图片; 再将其剪枝、转换为矢量图; 最后使用UR3机械臂抓握笔将其复写出。
mysql5.7 win版本压缩包
CatBoost使用的一个小例子,包含代码和数据。 代码解释的博文为:https://blog.csdn.net/u013172930/article/details/143723670
cppc++
CPPC++_基于ImGui和OpenGL的桌面GUI开发框架 很遗憾项目已荒废
Python小项目之皮卡丘
使用springboot搭建的音乐,电影,书栈,视频教程app的后台项目,所有数据来自互联网,使用python爬虫抓取,涉及,负载
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
ApachePOI是Apache软件基金会的开源代码库,POI提供了Java程序操作Office格式文件的功能。
基于python的分布式爬虫