纯色bmp图片生成的效率

news/2024/11/17 6:27:48/

各种编程语言生成纯色bmp图片的效率

之前使用了各种语言生成纯色bmp图片,这里汇总并对比下纯色bmp图片文件生成的效率。

主要指标是完成bmp文件生成的耗时时长。

为了公平客观的对比,通过linux的date指令获取时间,在执行bmp文件生成前后各获取一次时间,再用第二次的时间减去第一次的时间,得到的时间差,即bmp文件生成的耗时时长。

linux获取时间的指令:

date +%Y-%m-%d' '%H:%M:%S.%N | cut -b 1-23;

各种编程语言效率对比结果

序号语言耗时备注
1c4.663s
2go6.66s
3java20.457s
4lua6.05s
5perl41.37s
6python7.079s
7ruby18.55s
8r61.636s

性能比较

c > lua > go > python > ruby > java > perl > r

可见c语言的性能还是最高的。但每一种语言都有其特点和魅力,同样的一个写bmp文件的功能,各种语言都可以实现。当然各种语言的侧重点不一样,也许本次测试中效率最低的r语言,有更优的实现方案,但目前的数据也是实测的。

具体数据见附1-附8。

各种编程语言特点对比

如上程序语言,其对比特点如下:

序号语言发明日期发明地特点
1c1972年美国贝尔电话实验室丹尼斯·里奇面向过程的计算机编程语言
2go2009年11月美国google静态强类型、编译型、并发型
3java1995年5月美国sun Microsystems 公司高级程序设计语言
4lua1993年巴西里约热内卢天主教大学脚本语言
5perl1986年美国Larry wall解释型的脚本语言
6python1991年荷兰Guido van Rossum解释型、面向对象、动态数据类型的高级程序设计语言
7ruby20世纪90年代日本人松本行弘一种简单快捷的面向对象(面向对象程序设计)脚本语言
8r1980年美国AT&T贝尔实验室数据探索、统计分析和作图的解释型语言

如上表格中的数据来源于网络,具体信息如下:

C语言是一门面向过程的计算机编程语言,与C++、Java等面向对象编程语言有所不同。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、仅产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言描述问题比汇编语言迅速、工作量小、可读性好、易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编语言代码生成的目标程序效率低10%-20%。因此,C语言可以编写系统软件。C 语言是一种通用的、面向过程式的计算机程序设计语言。1972 年,为了移植与开发 UNIX 操作系统,丹尼斯·里奇在贝尔电话实验室设计开发了 C 语言。C 语言是一种广泛使用的计算机语言,它与 Java 编程语言一样普及,二者在现代软件程序员之间都得到广泛使用。

Lua是一个小巧的脚本语言。它是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个由Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo三人所组成的研究小组于1993年开发的。 其设计目的是为了通过灵活嵌入应用程序中从而为应用程序提供灵活的扩展和定制功能。Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行。Lua并没有提供强大的库,这是由它的定位决定的。所以Lua不适合作为开发独立应用程序的语言。Lua 有一个同时进行的JIT项目,提供在特定平台上的即时编译功能。

Python 是一种解释型、面向对象、动态数据类型的高级程序设计语言。Python 由 Guido van Rossum 于 1989 年底发明,第一个公开发行版发行于 1991 年。像 Perl 语言一样, Python 源代码同样遵循 GPL(GNU General Public License) 协议。

Ruby,一种简单快捷的面向对象(面向对象程序设计)脚本语言,在20世纪90年代由日本人松本行弘(Yukihiro Matsumoto)开发,遵守GPL协议和Ruby License。它的灵感与特性来自于 Perl、Smalltalk、Eiffel、Ada以及 Lisp 语言。由 Ruby 语言本身还发展出了JRuby(Java平台)、IronRuby(.NET平台)等其他平台的 Ruby 语言替代品。Ruby的作者于1993年2月24日开始编写Ruby,直至1995年12月才正式公开发布于fj(新闻组)。因为Perl发音与6月诞生石pearl(珍珠)相同,因此Ruby以7月诞生石ruby(红宝石)命名。

Java 是由 Sun Microsystems 公司于 1995 年 5 月推出的高级程序设计语言。Java 可运行于多个平台,如 Windows, Mac OS 及其他多种 UNIX 版本的系统。本教程通过简单的实例将让大家更好的了解 Java 编程语言。移动操作系统 Android 大部分的代码采用 Java 编程语言编程。

Go(又称Golang)是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言
罗伯特·格瑞史莫(Robert Griesemer),罗勃·派克(Rob Pike)及肯·汤普逊(Ken Thompson)于2007年9月开始设计Go,稍后Ian Lance Taylor、Russ Cox加入项目。Go是基于Inferno操作系统所开发的。Go于2009年11月正式宣布推出,成为开放源代码项目,并在Linux及Mac OS X平台上进行了实现,后来追加了Windows系统下的实现。在2016年,Go被软件评价公司TIOBE 选为“TIOBE 2016 年最佳语言”。 目前,Go每半年发布一个二级版本(即从a.x升级到a.y)。

Perl语言是一种解释型的脚本语言。Perl语言由Larry wall于1986年开发成功。当初的目的主要是在Unix环境下,用于处理面向系统任务而设计的脚本编程语言。Perl对文件和字符有很强的处理、变换能力,它特别适用于有关系统管理、数据库和网络互联以及WWW程序设计等任务,这样使得Perl称为系统维护管理者和CGI编制者的首选工具语言。

R是统计领域广泛使用的诞生于1980年左右的S语言的一个分支。可以认为R是S语言的一种实现。而S语言是由AT&T贝尔实验室开发的一种用来进行数据探索、统计分析和作图的解释型语言

关于编程语言的思考

目前世界上的语言主要有英语、汉语、法语、西班牙语、葡萄牙语、俄罗斯语、阿拉伯语、德语、日语等等。

目前世界上的编程语言主要有c、java、python、go、r等等。

语言上我们国家还有汉语,但是编程语言上似乎没有更好的语言,都是使用别的国家设计的编程语言。

似乎大部分的语言都是其他国家中产生的,我们国家产生的编程语言几乎没有。

其实我们的程序员的人员还是比较多的。但似乎大部分公司或程序员都是埋头苦干解决问题,很少有实验室、公司或程序员有设计一种编程语言的想法,都是直接用别人已经设计好的编程语言。

古代农民进行耕种的时候,前面负责拉犁的老黄牛只知道低头走路,走快了、走慢了、走歪了后面的老农就会呵斥它鞭打它。
现在的程序员在进行开发的时候,负责一线开发代码的程序员主要负责功能实现,功能完成的好坏、快慢、对错都会有产品经理、项目经理和测试人员进行判断和识别,并要求整改和修复。很少有人能跳出这个框框,或者说格局,形成一种更高层次的思想。几乎所有企业的思路也是唯钱的,快速的完成一个一个的产品,快速的更新一个一个的版本。而几乎所有的实验室的思路是,接收并完成一个个的项目,发表一个个的文章。

我们广大的程序员,大家不要仅限于低头写代码改bug,还要抬头看看这个世界

最后,希望,有能力的程序员、公司或实验室,开发一种我们自己的编程语言。最好比c语言效率更高,更能广泛流行。

附1、c语言生成纯色bmp文件的耗时时长

执行命令:

date +%Y-%m-%d' '%H:%M:%S.%N | cut -b 1-23;./testbmp.bin test.bmp 3 1920 1080 0 0 255;date +%Y-%m-%d' '%H:%M:%S.%N | cut -b 1-23;

耗时时长为26.520-21.857=4.663s

在这里插入图片描述

附2、go语言生成纯色bmp文件的耗时时长

执行命令:

date +%Y-%m-%d' '%H:%M:%S.%N | cut -b 1-23;./testbmp test-go.bmp 3 1920 1080 0 0 255;date +%Y-%m-%d' '%H:%M:%S.%N | cut -b 1-23;

耗时时长为09.100 - 02.440=6.66s。

在这里插入图片描述

附3、java语言生成纯色bmp文件的耗时时长

执行命令:

date +%Y-%m-%d' '%H:%M:%S.%N | cut -b 1-23;java testbmp;date +%Y-%m-%d' '%H:%M:%S.%N | cut -b 1-23;

耗时时长为29.594-09.137=20.457s。

在这里插入图片描述

附4、lua语言生成纯色bmp文件的耗时时长

执行命令:

date +%Y-%m-%d' '%H:%M:%S.%N | cut -b 1-23;lua testbmp.lua;date +%Y-%m-%d' '%H:%M:%S.%N | cut -b 1-23;

耗时时长为18.043-11.993=6.05s。

在这里插入图片描述

附5、perl语言生成纯色bmp文件的耗时时长

执行命令:

date +%Y-%m-%d' '%H:%M:%S.%N | cut -b 1-23;perl testbmp.pl;date +%Y-%m-%d' '%H:%M:%S.%N | cut -b 1-23;

耗时时长为84.582-43.212=41.37s。

在这里插入图片描述

附6、python语言生成纯色bmp文件的耗时时长

执行命令:

date +%Y-%m-%d' '%H:%M:%S.%N | cut -b 1-23;python testbmp.py;date +%Y-%m-%d' '%H:%M:%S.%N | cut -b 1-23;

耗时时长为07.500-00.421=7.079s。

在这里插入图片描述

附7、ruby语言生成纯色bmp文件的耗时时长

执行命令:

date +%Y-%m-%d' '%H:%M:%S.%N | cut -b 1-23;ruby testbmp.rb;date +%Y-%m-%d' '%H:%M:%S.%N | cut -b 1-23;

耗时时长为45.972-27.422=18.55s。

在这里插入图片描述

附8、r语言生成纯色bmp文件的耗时时长

执行命令:

date +%Y-%m-%d' '%H:%M:%S.%N | cut -b 1-23;Rscript testbmp.r;date +%Y-%m-%d' '%H:%M:%S.%N | cut -b 1-23;

耗时时长为72.439-10.803=61.636s。

在这里插入图片描述

本次测试的环境是在虚拟机上安装的ubuntu系统。

在这里插入图片描述

参考网页

https://blog.csdn.net/YJREGD/article/details/106494057

https://blog.csdn.net/weixin_37988176/article/details/109377109


http://www.ppmy.cn/news/897879.html

相关文章

文献解读|环境DNA揭示了海洋群落的季节变化和潜在的相互作用

TITLE:Environmental DNA reveals seasonal shifts andpotential interactions in a marine community 译名:环境DNA揭示了海洋群落的季节变化和潜在的相互作用 期刊:nature communications 日期:2020年1月 下载链接: …

Nature子刊:用于阿尔茨海默病痴呆评估的多模态深度学习模型

在全球范围内,每年有近1000万新发痴呆病例,其中阿尔茨海默病(AD)最为常见。需要新的措施来改善对各种病因导致认知障碍的个体的诊断。作者报告了一个深度学习框架,该框架以连续方式完成多个诊断步骤,以识别…

Python 还原控制SCI论文算法系列1: 基于策略迭代的自适应最优控制器设计

Python 还原控制SCI论文算法系列1: 基于策略迭代的自适应最优控制器设计 文章目录 Python 还原控制SCI论文算法系列1: 基于策略迭代的自适应最优控制器设计0.前言1.研究问题的描述1.1 经典线性系统最优控制器设计问题1.2 策略迭代问题的提出 2. 论文所提…

简单回归分析方法———基于R

最小二乘回归 w read.table > w read.table("COfreewy.txt",header T) > a lm(CO~.,w) > summary(a)Call: lm(formula CO ~ ., data w)Residuals:Min 1Q Median 3Q Max -0.75030 -0.33275 -0.09021 0.22653 1.25112 Coefficie…

教你如何用R进行数据挖掘

教你如何用R进行数据挖掘 R是一种广泛用于数据分析和统计计算的强大语言,于上世纪90年代开始发展起来。得益于全世界众多 爱好者的无尽努力,大家继而开发出了一种基于R但优于R基本文本编辑器的R Studio(用户的界面体验更好)。也正…

使用 pyecharts 以及matplotlib分析猫眼哪吒影评

Geo函数参数源码解析 def __add(self, name, attr, value,type"scatter",maptypechina,symbol_size12,border_color"#111",geo_normal_color"#323c48",geo_emphasis_color"#2a333d",**kwargs):参数详情可看:https://blog.…

第3章(3.11~3.16节)模型细节/Kaggle实战【深度学习基础】--动手学深度学习【Tensorflow2.0版本】

项目地址:https://github.com/TrickyGo/Dive-into-DL-TensorFlow2.0 UC 伯克利李沐的《动手学深度学习》开源书一经推出便广受好评。很多开发者使用了书的内容,并采用各种各样的深度学习框架将其复现。 现在,《动手学深度学习》书又有了一个新…

等额本金和等额本息还款方式的差异分析

我们在办理按揭贷款的时候,银行一定会问你等额本金还是等额本息的还款方式选哪一个。现在我们就定量的分析一下,这两个究竟有何差别。 等额本息还款方式 假设银行年利率是R,则月利率为R/12,某人贷款总额为M,还款期为20年,240个月&#xff0…