作者 | Pawel Dziubałka, Sebastian Karasiewicz

译者 | 泓技

出品 | AI科技大本营(ID:rgznai100)

互联网上有非常多的精彩代码,它们成了构建各种基础设施的基础。你正在阅读的这个平台同样也在致力于创建出色的代码。尽管普通用户一般不会注意到这一点,但另一方面,优秀的开发人员始终在寻求使他们的应用程序(以及他们的代码)有更好的方法。

编写出色代码的基础取决于开发人员的技能及其选择的语言。这不可避免地导致开发人员之间的冲突,而冲突不仅关乎技能水平,而且主要关乎他们偏爱的语言(甚至有可能发生史诗般冲突)。当你将两种出色的编程语言(例如Golang(Go)和Python)放在一起时,最有可能出现这种情况。

现在让我们退后一步,消除个人偏见和偏好,单纯地从优点和功能的角度评估这两种语言,熟练地平整好比赛场地。现在,我们剩下的只有两个不错的选择:Go vs Python。现在的问题变成,哪个编程语言更适合你?

Python的故事

如果去询问一些开发人员,你会听到Python诞生之前的都不值一提,而Python之后的也都不值一提之类的话。多年来,由于它是一种非常好的编程语言,已成功赢得了庞大关注。互联网上充满了使用Python创建的酷炫应用。

就编程年限而言,Python算是元老。它于1991年首次被概念化。随着年龄的增长,逐渐具备了一定的优势。它拥有广泛的支持者,这意味着它是稳定的,并且文档丰富。在大多数情况下,你会找到几乎所有内容的库以及几乎所有可以想到的任何代码示例。对于开发人员和企业而言,这意味着使用Python的选择会带来丰富的经验和编码。

有很多使用Python作为基础的开源项目,因此在大多数情况下,你不是从头开始的。它很好地集成到企业应用程序中,并且可以在机器语言和AI应用程序中使用。但是它确实有缺点,一方面,它对于内存密集型任务不是理想的选择,对于执行而言有点慢,另一方面,它不适合移动应用程序开发。

说到Golang(Go)

Google于2009年开发了Go语言。Go的初衷是解决实际问题。它的目标是创建一种语言,以消除C++等语言中发现的所有负担和多余的东西,这给它带来了性能和速度上的提升。另外,大多数第一次接触Go的开发人员不会体会到语法的高门槛,因为Go里面熟悉的元素和易用性会令人惊喜。

这并不是说该语言在所有情况下都是完美的。尽管将速度和优雅提升到了一个新的高度,但它确实留下了一些需要改进的地方。首先,它没有扩展库,也不支持继承。此外,没有GUI库或面向对象的编程支持。它要做的就是创建一个轻量级线程(Goroutines),智能标准库,强大的内置安全性,并且易于使用最少的语法进行编码。

性能测试

我们可以无休止地谈论Golang或Python的优缺点,但是当我们考虑部署使用时,我们都期待它们能有卓越性能。因此,我们在Intel®Core™i7–9700KCPU @ 3.60GHz × 8核的测试设备上进行了一些测试。测试代码可以从这里获得https://github.com/sekarasiewicz/go-python-benchmark。

1.二分搜索

我们创建了一个整数列表(从1到100000),然后使用二分搜索查找始终相同的数字729。结果是:

2.冒泡排序

再次,我们生成了一个整数列表(这次是随机的,共10000个元素),并使用冒泡排序算法对其进行了排序。

3.文件读取

读取“ lorem ipsum”文本文件的简单测试。

4. HTTP请求处理

编写HTTP服务器确实很容易,但是我们为在Python中进行有效的模拟付出了很多努力。我们检查了一个简单的“hello world!” 信息需要多长时间响应。

选Golang还是Python?

尽管Python一直是社区中的最爱,在2019年第一季度就成为GitHub上最快的编程语言排行榜上(按拉取请求数计算+17%)的第二名,但Golang并没有落后很多,位于紧随其后的第四位(+ 8%)。Golang与Python之间的选择变得更加模糊。无论如何,在选择哪一项适合你时都需要考虑一些事项。

1.可扩展性:Golang在创建时就考虑了可扩展性。它具有内置的并发性,可以同时处理多个任务。Python同样可以使用并发,但不是内置的。它通过线程实现并行性。这意味着,如果你要处理大型数据集,那么Golang似乎是一个更合适的选择。

2. 性能:众所周知,Python不是内存或CPU友好型的编程语言,但由于它拥有大量的库,Python可以有效执行基本的开发任务。Golang具有内置功能,它更适合于微服务软件体系结构。

3. 应用程序:Python非常适合编写用于人工智能、数据分析、深度学习和Web开发的代码。Golang已普遍用于系统编程,并且受到云计算和集群计算应用程序的开发人员的喜爱。

4. 社区和库:如前所述,Python的时代赋予了它一定的优势。其中之一是它拥有的库数量以及支持它的大型社区。另一方面,Golang虽然没有Python提供的大量库和社区支持,但仍是一种增长中的语言。我们不应该将Golang踢出局。它的增长和采用率令人难以置信,并且每天都在增长。

5. 执行性能:如果只关注速度,那么Golang肯定会赢。

考虑所有这些因素后,你的用例将成为采用哪种语言的决定因素。在你要建立开发团队来创建微服务的情况下,Golang将是更合理的选择,因为它既快速,易于编码,又可以很好地扩展。另一方面,Python更适合于AI、ML和数据分析。

因此,一对一地比较,在大多数情况下,Go会脱颖而出,被认为是使用Python的有效替代方案。开发人员需要选择一种编程语言,要考虑其开发项目的性质和规模以及所涉及人员的技能。

好消息是,无论选择哪种语言,两种语言都在不断发展。尽管在大多数情况下,Golang似乎是一个显而易见的选择,但Python社区不会闲坐而不采取任何行动。两种语言都在扩展和增长。这意味着将来我们将看到更多的功能和改进。

原文链接:https://www.softkraft.co/golang-vs-python/

(*本文由AI科技大本营编译,转载请联系微信1092722531)

卓越性能代码_编程语言性能实测,Go比Python更胜一筹?相关推荐

  1. java测试性能代码_关于性能:Java代码内部的基准测试

    我最近一直在研究基准测试,我一直对记录程序数据等感兴趣.我想知道我们是否可以在程序中有效地实现自己的内存使用代码和实现自己的时间消耗代码.我知道如何检查代码运行所需的时间: public static ...

  2. 卓越性能代码_装好win10后,应该这样设置,才能压榨出系统十足的性能

    用了这么久win10系统,你知道在win10中有不同的性能模式吗?而使用不同的性能模式会消耗不同的电量,就会为系统提供不同的性能.为了拥有好的性能,我们一般会在电源选项中给系统设置为高性能模式,但你以 ...

  3. python第一行代码_“少年py”001:下载Python软件,写第一行代码

    Python,网络上称之为人工智能时代的第一编程语言. 功能超级强大,能做科学计算.大数据处理.网络爬虫.游戏开发等等. 但是说实话,彬哥玩Python还没到这么厉害的程度,究竟怎么实现,我们不着急, ...

  4. python3经典小程序代码_一个可以套路别人的python小程序实例代码

    python可以开发什么?谁有python小程序的源代码,...桌面程序,web都可以,还有比如现在讲的多的人工智能,神经网络源码可以去找一些开源代码,搜索一下,蛮多的. 分享python小程序代码练 ...

  5. 浪漫的python代码_七夕,最浪漫的Python代码送给陷入爱河的Python男同胞

    七夕,最浪漫的Python代码送给陷入爱河的Python男同胞 image.gif ​ 三句话情书,我们听过.如何用python写一段浪漫的代码?可以是简短有韵味的情书式, 也欢迎冗长而效果拔群的万行 ...

  6. 卓越性能代码_开启win10隐藏的“超级性能模式”

    ​微软总是悄悄给Windows 10 加一些新功能,又不大肆宣传,导致很多朋友感觉Windows 10不过是换了一套UI的Windows 7甚至XP. 今天来分享一个隐藏起来的"超级模式&q ...

  7. 卓越性能代码_「Win」被隐藏起来的卓越性能模式,为何不想让人发现?

    前言: 众所周知,电脑电源管理中包含三大模式,分别是:节能模式.平衡模式.高性能模式,其对电脑的性能影响还是比较大的,但是今天所说的"卓越性能模式"应该很多人都没听说过,又是何方神 ...

  8. python性能解决_我们如何发现并解决Python代码中性能下降的问题

    Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 作者:Omer Lachish 最近,我们已经开始使用RQ库代替Celery库作为我们的任务运行引擎.第一 ...

  9. 随机森林分类算法python代码_随机森林的原理及Python代码实现

    原标题:随机森林的原理及Python代码实现 最近在做kaggle的时候,发现随机森林这个算法在分类问题上效果十分的好,大多数情况下效果远要比svm,log回归,knn等算法效果好.因此想琢磨琢磨这个 ...

最新文章

  1. 均值极差图控制上下限_SPC之I-MR控制图
  2. NDK其他build变量
  3. java开发错误_每个Java开发人员都必须避免的9个安全错误
  4. element实现动态路由+面包屑
  5. Asp.net 中 Eval 调用后台函数的写法
  6. mysql_install_db is deprecated_MySQL5.7源码安装问题汇总
  7. 随想录(c语言的优缺点)
  8. C# datagridview 删除行(转 学会、放弃博客)
  9. jdbc map获取keys_JDBC连接数据库返回结果集的Key值
  10. Segmentation Measures
  11. 2021-07-01 <1000+常用Python库>
  12. jieba.lcut()
  13. redis压测工具redis-benchmark
  14. token 中有效期设置
  15. vue封装qq表情包和符号表情的发送
  16. 梁漱溟:年轻人的焦虑,在于把欲望当做志气
  17. kerberos搭建
  18. 微信中已停止访问该网页、据用户投诉及腾讯手机管家云网址检测、该网页包含不安全内容。为维护绿色上网环境,已停止访问的解决方案
  19. web直播、即时聊天流程图。第三方平台
  20. 计算机视觉常见的十种图像标注方法

热门文章

  1. linux下scp远程拷贝文件无需输入密码工具之expect
  2. Ubuntu 16.04下Caffe-SSD的应用(五)——安装VOC数据标注工具LabelImag
  3. 有跳板机时,如何使用sshfs挂载远程服务器文件夹
  4. Python Flask web 项目零改动迁移至阿里云函数计算
  5. 只用最适合的! 全面对比主流 .NET 报表控件:水晶报表、FastReport、ActiveReports 和 Stimulsoft...
  6. WebFlux基础之响应式编程
  7. 树莓派GPIO的两种模式区别
  8. EntityFramework Core数据查询
  9. Caffe 网络结构可视化
  10. 软件工程--软件设计