作为前与C编程软件工程师的主要工作,和一定程度上的汇编程序,我知道在我的心里,这是两个最高效的编程语言,因为它们是如此接近硬件。
但是消除疑虑,葡萄牙大学的一个研究小组试图量化不同编程语言的能源效率(和他们的编译器/解释器)在一篇名为能源效率在编程语言2017年出版,他们看着运行时,内存使用,能源消耗27著名的编程语言。C是这里的无竞争的赢家是最有效的,而Python,我将现在所称的污染者的编程语言:),对底部的规模与Perl。
研究通过方法和各种基准,但让我们选择二叉树结果说明这一点开始编译后的代码。
没有人惊讶的是,这项研究得出结论,“编译语言往往是,正如所料,最快、最节能的”。C和c++语言是最有效和最快的语言。去是最糟糕的语言的编译语言类别,而且甚至比语言依赖于一个VM如Java或Erlang,至少使用二叉树的示例。
但国王最低效的语言去解释语言如Perl, Lua,或Python,一些保证金。
应该注意所有的测试机器上进行基于英特尔酷睿i5 - 4460 Haswell @ 3.20 ghz CPU和16 gb的内存,并运行Ubuntu 16.10服务器操作系统Linux 4.8.0-22。考虑MicroPyhon现在广泛的微控制器上运行,我怀疑它可能不是那么糟糕与一个较小的足迹,在这些平台上,它将会是很有趣的发现。
研究还排名每种语言的不同组合目标混合时间,内存,和能量参数C总是在顶部与指标。多年以来,但如果你想优化你的程序对于电池寿命/低功率,优化的一些例程必须在C语言中,汇编、SIMD指令,或自定义指令的加速器。
通过Hackaday

jean - luc CNX软件在www.yabo188.vip2010年开始作为一个业余的尝试,在戒烟之前他的工作作为一个软件工程经理,并开始写每日新闻,评论在2011年晚些时候全职。
C可能是最危险的语言——研究人员因素的停机时间,写得很糟糕的C崩溃造成的损害。
我不会声称,C语言是完美的或者任何但无论您使用它运行在同一台机器上。如果机器允许坏处它最终会发生你是否使用所谓的安全的语言。我想很多新的语言介绍自己的问题。你可能会避免愚蠢的内存错误(我们有很多工具来查找和调试现在即使对C)但是现在你添加一个吨untrustable代码构建的软件包管理器。为什么要寻找高和低内存错误吗…阅读更多»
宾果!
做新语言添加“一吨untrustable代码构建的软件包管理器”?嗯,也许吧。是的,许多程序使用大量依赖于随机的人基本上没有复习,所以恶意代码是值得考虑的。但是有方法解决这个问题。你不需要使用外部包。更实际的是,您可以使用包少只从信任/审查的作者。lockfiles可以(而且应该)检查(包括依赖版本号和内容哈希)新的,潜在的恶意版本不是偶然。你可以对厂商的依赖。有年轻但有前途的工具…阅读更多»
这就是Linux发行版包装系统。他们管理的依赖,你可以看到,该库使用,主要是在C语言中,在其他语言与C库绑定在其他语言。Python脚本还幸福的Python,使用CCI来减少浪费和使用更多的编译后的代码,在cpu /其他处理器密集型部分。
写得很糟糕的代码不应该算到的事情。试图保护人们免受自己那些效率低下的很大一部分来自哪里。有所谓的“技巧”,需要占。认真对待。我不希望有一个安全网,因为它会导致开发者马虎。
你的论文是4,近5岁。尽管Python已经取得了不错的进步速度和一些分支C附近速度,它与CPU稳步增加的一个有争议的问题。但它的一大优势/ C是几乎每个人都可以选择它并使用它。更易于维护和运行时错误的代码可以快速定位和压扁。但糟糕的代码仍然是糟糕的代码和仍将存在。发展的另一个优点是速度与c .添加一个新的功能需要3次以上的Python。所以随着时间的推移…阅读更多»
您可以编写恶意代码在语言。得到一个崩溃,因为一个uncatched异常不是更好。抓住它,不要反应正确甚至更糟的是,因为你是隐藏真正的误差源。C程序员知道检查malloc结果和处理伯父。我不知道任何高级Java或c#程序处理伯父。开发者默默地承担mem是无限资源。还在satilites关键软件,飞机等仍然是用C编写的,因为它是确定的,并且可以被证明是正确的。每个lamguage与…阅读更多»
已经很长一段时间以来compsci但我认为这是被证明是不可能证明任意复杂的程序是正确的。
WAF寻找统计产品时,你会注意到C是几乎不代表远程利用的缺陷,与所有你能做的恐怖语言支持评估或执行,比如PHP,这是迄今为止最害怕在托管环境中。
WAF的Web应用程序防火墙?不惊讶听到C是几乎不代表WAF统计;几乎没有web应用程序是用C编写的代码不存在是安全的但也许不那么功能…事情是用C / c++编写的,大约70%的安全错误是由于内存安全问题。亚博体育官下载(引人注目的是,微软和铬给同样的比例各自安全漏洞)。Memory-safe语言是有效地消除这些错误。我特别喜欢生锈。在安全生锈(我使用“不安全”< 1%的生锈我写行),我有记忆…阅读更多»
阅读很有趣,它不存在或者是不安全的,因为几乎所有* *产品的边缘,还有为那些需要一个WAF实际上是用c语言编写NGINX, Apache,清漆,HAProxy, Litespeed Lighttpd。因此他们是第一批接受所有的攻击和中至少vuln数据库。可以不知道会是什么感觉,如果他们不是在前面处理恐怖他们处理,保护下一个级别…
出于兴趣,漏洞数据库你在看什么?你可能是对的,他们至少代表,但是他们不能幸免。例如,我记得一些引人注目的漏洞在Apache。这是一场巨大的努力投入其中的每一行六个http服务器。他们标准,受人尊敬,开源软件,他们中的一些人发展了几十年,这是近一个完整列表的人使用。他们完全由web应用程序代码行数相形见绌,这又不是写在c .我不能列出六都是大多数网站使用的web应用程序。事实上,大多数…阅读更多»
我知道至少有一个银行应用程序用C语言编写,不是车。但是它总是花费很多在升级。我的意思是,几乎没有维护。它的工作原理,没有移动部件。但是当请求一个新特性,它成本更添加新语言。和开发人员贵3倍他人需要Java或发现在这样的环境中。
在这种情况下,问题是程序员而不是语言。甚至糟糕的代码和好的可以在性能和效率有很大的影响。
当你看到自定义高级软件工程师一个整数除以2 ^ n,而不是改变你明白这个问题不是语言。
绝对的!可悲的是,糟糕的开发者往往限制他们可以使用谷歌或者StackOverflow可以提出起动器。
什么一堆屎。
我在c++程序,宇宙是用c写的如果你有兰博基尼都无所谓,如果你不知道如何开车。
多次停止传播废话,硬度C是资源密集型的,容易出错,更不安全。你可以死前C程序表现良好,平滑,绿色和快。
有很多更好的候选人像nim-lang接近C在性能和python一样容易。
幸运的是在过去的50年里有成千上万的人不如你想象的困难,可以建立整个互联网,您可以使用今天发布这样的未受过教育的信息
好像锈应“去”的语言,如果你想要速度、效率和安全。
没有,因为它有难以理解的复杂构造,等。生锈的问题是它试图做同样的事情,最新的c++标准做好加上什么Haskell(生锈的效率是其他价格)——我的新的语法和罗伊,不给你同样的事情。
我现在从来没有见过的软件在生锈和C版本一样快。他们通常使用大量的硬盘,由于错误的习惯静态链接库,所有与安全问题+编译浪费随之而来当更新是必需的。
我同意,我们应该要求速度、效率和安全性…但是你拼错的艾达
这就是一些人说的,但发现开发人员能够破译,笑脸的语言是不容易的。
C / c++的low-energry消费成为相关当程序从客户端转移到供应商/云…因为只有那么供应商必须支付自己的能源消耗。导致声望的提高C / c++在过去1 - 2过去十年。
它实际上是发挥更早。C / c++的观念是不受欢迎的在这之前,所有的盒子一个愚蠢的想法。你来晚了。这就是35年行业带给你。理解。很多的事情。
祖父母没有相同的观点你的战场。把你的头在一点。
让我看看你的理解我的理解:我1988年第一次C编程。帕斯卡。和组装之前(1985)。
你的意思和PL / 1相比,装配或COBOL也许吗?因为C语言的系统和工具都是写。当通信工具开始出现增长的互联网,使用C编写大多数应用程序。邮件客户端和服务器,IRC客户机和虚拟光驱,浏览器和web服务器、新闻读者和服务器,当然,所有的CGI应用程序都是用C编写的,因为上面的语言不是为这个。Perl CGI应用程序开始取代C是容易(和非常利用大部分时间由于不可读…阅读更多»
C / c++是国王在1990年´s,但随后Java绝对王2002年,然后在2000年底´s C再次上升。
我还没读过整件事但根据你写我怀疑有任何realworld见解了。即使在高标准的基础语言像java VM你不会写这些微观功能块在语言本身提供的这些事情你应该decentish编译的版本了。否则有什么意义?Python是热熔胶/ C库在很多情况下。我怀疑这大量的区别对于很多用例。和用例对这些语言往往是不同的。…阅读更多»
它是介于他们的需要和你的。认真对待。过早优化的大多数情况下,可以肯定的是,但有很多在Perl和Python比我和应该考虑一些低效率的“测量”缺乏理解的语言和程序来实现一些如果你用c . Lua不是低效的,例如,在游戏中你不能使用它作为一种脚本语言,例如,如果像他们描述的“坏”。一些你跟,但你的光泽…阅读更多»
你越接近C的层次结构在他们的研究中,效率越高。这不会进入相对优点或问题(他们中的许多人也有)的各种语言。他们只是继续实施< X >,然后测试它,没有语言的特性问题的沉思。专业学习后,使用超过20编程语言/ 35 +年的从业经验,有很好的选择,良好的适合和穷人。无论是开发人员效率、系统效率、规模,等等。这是一个说明…阅读更多»
>低效他们“测量”是缺乏语言的理解
或者他们知道,但是结果会更有趣* *如果他们基准测试一个完整的真实世界的应用程序用C语言编写对基本相同应用程序实现为Python胶主要是相同的C库。
事实上,其中一个问题是,人们倾向于认为微型基准测试用例或者大局,但没有时间花在如何应用。现实情况是,大多数极其缓慢的应用程序遭受:一个非常低效的手工操作实现,因为没有其他选择或深数据传播通过许多转换由于对象继承,允许访问一些数据最直接的方式,看上去更像是一个迷宫,而自然的东西。通常应用程序被认为是足够优化的单元测试时显示接受的等待时间。但100毫秒来计算…阅读更多»
我倾向于同意。我们一直做UI在VB中因为它是无痛的,和一切在C或汇编程序。
这是最好的方法,但是是很罕见的,因为它需要更多的技能。恭喜这
我们曾经用Verilog编写实时系统组成部分(FPGA)和C (DSP),然后在x86 PC的C代码的基本操作,和UI是VB COM链接容易定制的Python程序逻辑。它工作得很好。
有用的文章
谢谢
5 . n亚博体育官下载et核心呢?
我很清楚多少加热javascript的原因,我可以关闭标签浏览器风扇停止和有很多100 mb的每一次释放。Javascript的自然栖息地是web浏览器和html需要呈现。我们需要一个丰富的默认的web控件集和框架可渲染的浏览器的操作系统,不需要无休止的javascript框架和抽象。
在一篇名为>能源效率在编程语言在2017年出版
该组织在2021年发布了一个更新:http://repositorium.uminho.pt/bitstream/1822/69044/1/paper.pdf
非常感谢。这一切都是非常接近我的博士研究领域,我不知道2021年的论文
我的数据表中给出的纸和一些额外的评估基于几何平均的时间数据归一化到C,明白了http://software.rochus-keller.ch/Ranking_programming_languages_by_energy_efficiency_evaluation.ods。
有趣的是我得到了一个在表4的顺序不同。纸似乎使用算术几何手段,这是有问题的http://ece.uprm.edu/ nayda /课程/ Icom5047F06 /论文/ paper4.pdf。
>在一篇名为跨编程语言在2017年出版的能源效率
该组织在2021年初发布一个更新。这是链接(炒,因为显然不能链接贴在这里):repositorium.uminho.pt削减比特流削减1822年削减69044削减削减。pdf(前缀与http的东西和替换“削减”字符)
但这意味着杀死的诗歌…拉丁文,像Perl…
怎么去使用如此多的CPU吗?
有一些错误,因为每一个脚本我在去有一个很好的的CPU和内存使用。
相对于什么?
所以是生锈的,有发现而大幅度的改善等常见算法,但它们并不是那么明显,我怀疑他们都在那里呢。
至于去,这是经常被引用:https://blog.discord.com/why-discord-is-switching-from-go-to-rust-a190bbca2b1f
你的意思是你“足够好”。大量的任务通常比解释语言,但是我看到有些人用它来网络工具或日志处理和它没有至少一个数字相比普通的C代码。
我写了雄鱼子样品反弹消息基于MySQL ruby程序设置和美联储的结果。pthreads的雄鱼是用C编写的,从不失败或崩溃或耗尽内存。ruby程序必须使用一个睡眠一秒钟来阻止它的崩溃将线程问题。两个程序是多线程的。我认为坏编程实践可以毁灭任何项目。但是,当写得很好,C将击败他们所有。
Waouh,这意味着低级编程语言更有效比更高层次的…只是轮意外发现呃…对汇编语言应该把C和c++的峰会效率低下,为什么不去六代码或直接在二进制…祝你好运程序即使只是一个简单的压缩软件。亚博体育官下载也许你应该只考虑成本的全球发展,目前唯一的项目所有的公司都在关注。是的,开发一个复杂的软件在C语言中,良好的安全级别和用户友好,会比在python中5倍的时间。…阅读更多»
他们没有看Smalltalk,他们应该。同时,所使用的操作系统是一个重要因素。例如,Windows永远是索引的所有时间。更新以g。数以百计的流程是所有的时间。应用程序不独立和使用资源的地方。安装是一个复杂的过程,简单地复制一个自包含的应用程序到计算机作为一个简单的文件将会是一个更实用的选择以几秒,而不是重新启动机器很多字节大小和试图解决成千上万的潜在冲突…阅读更多»
本研究的重点:这不是一个亚博体育官下载编程语言的直接比较。计算机语言的实现的比较基准的游戏挑战各种各样的编程语言。一些实现精心优化SIMD和复杂的算法。一些不是。这是基准N M语言编写的不同的程序(M < N)满足给定的挑战,不一样的程序移植到N的语言。语言有高质量的实现可能会说更多关于给定语言的社区是那样痴迷于这个特定的基准比的实际效率和规则吗亚博体育官下载…阅读更多»
平常的随意的基准测试:你的基准,但实际上测量B,和总结你测量C '
哦,是的,让我们彻底改造Erlang / OTP C为了节省CPU周期(我打赌不会这样)。让我们浪费数百万小时的程序员的生活,只是为了让一个点。
你能读图吗?根据你目前的结果,不如一些节能“解释语言”像飞镖,黑客,JavaScript和打印稿(所有使用JIT编译器,所以我不知道为什么他们被归类为“解释”)。
同时,请注意,最快的C, c++,生锈,和Pascal程序(至少)使用一个定制的凹凸分配器,而其他人使用标准的内存管理设施的语言。虽然这可能是一个可接受的选择的问题,当然是不正常的,不“一般”的工作。
一篇文章,让一个环保人士声明中关于计算机亚博体育官下载能源消耗通过,但最终通过请求捐款cryptocurrencies这是世界能源危机的一个贡献。
抱歉,但这是不知道如何实际使用Python。计算密集型部分是用汇编语言编写的,所以功耗更小的差异。整个的数据是无关紧要的基准计算密集型问题是在Python中编码。没有实际的专业会这样做。
>从无关紧要的基准数据,整个计算密集型问题是在Python中编码。没有实际的专业会这样做。对不起,我看到所有的时间。很多管理员使用它来处理日志或转换数据,他们适应slugishness发现完全正常的等待1分钟平均响应时间在1 GB的HTTP记录或计算状态码,因为,嗯,“当然应该需要时间,毕竟1 GB,这是16 MB每秒,哇!”。这并不是…阅读更多»
弗兰克是哪一位伯爵的人如此之高的放屁,35年的经验吸取法典?
可能一个人,就像我们很多人在这里,开始真正的计算机虚拟机的时候甚至没有一个名字也没有概念,当你将申报数据报表基本将本机代码的东西你想要快,写这段代码在装配调试工具,小心地复制字节,并要求他们使用电话VARPTR (foo)…是的,旧时光。至少那时储蓄被肉眼可衡量的(或耳朵当你想蹩脚的蜂鸣器发出声音)。
虚拟机像帕斯卡p代码不存在呢?甚至SWEET16苹果/沃兹尼亚克的整数基本吗?
啊是的机器代码在数据报表。谢谢你提醒我。那些日子
通知你的语言被称为装配,而不是汇编。汇编语言是一种工具,翻译汇编成机器代码。
的作者LOL MASM32犯了这个错误。
但是在许多用例,在Python或Perl代码只是一些胶水/包装器调用库大多数crical部分是用C编写的(例如numpy…)。此外,记住地十法则:“任何足够复杂的C或Fortran程序包含一个特别的,非正式,查找这些错误,慢一半的Common Lisp的实现”。
我发现声明变量类型疲惫。虽然我同意文章中所有的C和类似的更快,因为它是接近硬件我只是觉得失去电力的数量太微不足道了。亚博体育官下载我不能做很多的任务,我需要做一个Linux服务器管理员和网络营销没有Perl和python。我使用python模块scrapy和硒webdriver (chromedriver)执行很多日常任务甚至想到这样做是很可怕的东西我必须编译每次我想的东西亚博体育官下载…阅读更多»
>我只是觉得失去电力的数量太微不足道了
每个用户经常如此。但当你开始将所有代码打包成数万vm运行在真正的硬件,数据中心,我可以向你保证,不会出现这种情况。我见过几次改变到一个新的直流的人因为他们达到其最大发电能力。,当这种情况发生时,太晚了,想“如果我早知道,我会雇佣了几个开发人员重写所有的背景和惊人的储蓄”。
我很高兴终于看到由能量来比较,我一直说我最终会产生这样的!看到性能比率之间的6000 C和另一种语言在过去一些算法真的讨厌我什么我们做所有这些焦耳…我记得有表现出一些“正常”的性能水平在某些事情上运行的非常小的机器上(比如usb供电gl.inet机器运行一个MIPS 400 MHz),和人问作弊是因亚博体育官下载为他们认为不可能,因为他们需要一个相同的任务…阅读更多»
这是今天最愚蠢的狗屎我读
这是奇怪,表现不佳。我离开社区,因为免费的好工作给坏人对我没有任何意义,不是因为我预期不足的实现。非常简单的想法一开始是把锋利的边缘从C,添加一个垃圾收集器,实施霍尔“通信顺序进程”的文章,所以谷歌员工会有一个限制c++重写所有的Python代码在圭多离开后。你总是可以在Jython VM运行您的Python代码,虽然我不知道…阅读更多»
显然C比Python运行在一个便宜,但开发一个C程序需要比Python迭代编译和测试的方式,由于程序员的友好的语言和库。是一样的高亚博体育官下载性能优化,不花(CPU)的时间优化的代码在运行时并不昂贵。
虽然对于大多数开发人员来说这似乎是真的,其实对我来说,一直是相反的。花了无数个小时试图做一个非常简单的python脚本提供一个页面并发出HTTP响应中的某些标题让我完全疯了。有无数不同的HTTP服务器,一些易于使用,但是不扩展,和其他人,你甚至不知道你必须喂养它们。现在我知道是什么驱使stackoverflow流量,我花了我的时间阅读和盲目地复制粘贴垃圾,看看,让我进步。…阅读更多»
特斯拉自主驾驶软件似乎主要依靠c++, Java,硬件描述语言(VHDL) / Verilog, Python。(PHP Web设计接口、CSS、Ruby反应,Truescript和SQL数据库管理)?
认为效率有重点专家或社区的工作流任务(和他们的大小和强度交互发展变化)和基础设施依赖性(司机经验数据库,围绕声学识别与本地计算能力与基于人工智能硬件)。
不过30 - 70的倍数为可执行文件速度比较或能耗差异超过预期(在2021年的硬件水平)?
基本的想法是有缺陷的。并不在额外的编程工作写有效的c。这可能是远比运行时的收益。
它真的取决于。我数不清的次数我写一次使用C程序,因为它花费的时间少于一个运行的区别与另一种语言(通常是数据处理)。当应用程序规模你价值托管费用很多,以至于服务器可以很快超过你的开发人员的费用。
计算机(包括服务器)约占世界上1%的能源需求。亚博体育官下载
可以忽略不计
C是一种低水平的编程语言。
Python和其他高结束,为程序员和封装成本。
如果你能负担得起费用,就去做吧。
当然,铁锈一样有效的c…我认为这是我相信韦兰基准phoronix:零。
我看着一些asm生锈。很不错的,真的。这种语言的问题是非常严格和阻止你做你想要的,这也是如何编译器可以推断出一些简化和优化。所以你花3倍的时间来编写程序的方式取悦编译器,此时让我更喜欢组装,这对我来说是比锈可读性更强!
是的但是你假设程序员需要0秒写完美的代码…
保持机器运亚博体育官下载行所需要的能量呢…?
嗯?能量(如果存在)正比于代码的效率低下。当你可以sub-watt机器上运行您的应用程序不需要启动配置为在400 w octa-core相同的东西。只是一个例子,我的备份服务器,它是一个Armada385 1 gb内存。它需要一些体面的峰值性能在备份但不是用其余的时间,所以硬件是完美的。它会消耗大约2 w闲置。我建议使用一些非常低效的备份工具写在这台机器上不能满足…阅读更多»
这篇文章的作者似乎个人不喜欢Python。至少这是我自己的感受。
或者他只是不得不支付比尔让他的意见。
喜欢到处都是在这个环境陈述应该做什么…他们背后的经济学完全避免一切…没有办法取代我们与绿色能源的能亚博体育官下载源基础设施成为今天在一个像样的成本,和这里的相同…和维护复杂的C / c++软件在许多情况下都不是经济上合理。
我将比较当前世界经济犯罪活动。破坏自然和环境只是一些人住在豪华。没有谈论的巨大世界上最好的债务需要亚博体育官下载偿还我的理解4代。据说,许多It公司搬到了这一趋势。我个人感到非常失望的当前软件趋势使用。net, Python,基于Java…的产品,此类产品的经验相当失望。希望更多的程序员和软件工程师会保护自然和环境,什么是重要的…阅读更多»
许多前代维护就业结构,迫使他们建立cookie弹出消息和数据跟踪,需要注意,知识“回弹效应”,时间和精力,使他们的生活,因为这就是这种“经济第一”的文化创造了法律?