返回顶部
首页 > 资讯 > 后端开发 > Python >C与Python的不同在于速度
  • 408
分享到

C与Python的不同在于速度

速度Python 2023-01-31 05:01:21 408人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章我在一个叫做The Unix Geek的博客中看见,刚好最近对这方面比较感兴趣,就顺手翻了过来,可以探讨探讨。 简介 python是个非常流行的解释型脚本语言。C是一个非常流行的编译语言。由于其编译的性质,导致C一般比Python要

这篇文章我在一个叫做The Unix Geek的博客中看见,刚好最近对这方面比较感兴趣,就顺手翻了过来,可以探讨探讨。
简介
python是个非常流行的解释型脚本语言。C是一个非常流行的编译语言。由于其编译的性质,导致C一般比Python要快,但是它是更底层的。相对的,Python编程更加快速和简单。译者注:在目前最权威的TioBE编程语言排行榜上,Python和C语言分处榜上第6和第2的高位,在脚本语言和编译语言中分别坐着第二把交椅(第一把交椅分别是PHP和Java)。
问题在于,Python程序(在没有输入的情况下)运行时所额外花费的时间相对C而言是否更加划算,以及运行时所用的时间是否比编程时间更加重要。
系统程序
我决定建立一个简单的程序,该程序可以处理以下公式的计算:
{ x + y = 14
{ x^2 + y^2 = 100
我很快用Python写了一遍,找到了答案。然后,我将其翻译成C语言。我知道,在C语言中的同一程序会花费比Python更多一些的代码,但是这并非是我所注意的问题。在继续之前,让我们看看代码:
Python:
x = 1
while x <= 14:
y = 14 - x
print str(x) + "|" + str(y)
if x**2 + y**2 == 100:
print "match"
x = x + 1
C:
#include (<)stdio.h(>)
int main()
{
int x, y, t;
for (x = 1; x <= 14; x++) {
y = 14 - x;
printf("%d|%d\n", x, y);
if ((x*x) + (y*y) == 100)
printf("match\n");
}
return 0;
}
我总是听说C语言永远是最快的语言之一。在命令端口运行这两个程序,我并没看出这两个的运行速度有任何差别。所以我打开ubuntu的命令端口,并输入如下代码:
time ./a.out
(time指令,紧跟着可以脱离time指令而单独运行的普通指令,运行指令并计时——很明显,这里的测试对象是C程序。)我得到0.001秒real time(真实用时),而user time(用户用时)和system time(系统用时)都是0。
接下来是Python:
time python system.py
结果有些吓人:0.017秒real time,0.012秒user time,0.004秒system time。
当然了,real time的差别毕竟只有16毫秒,不过在长时间运行大量运算的大系统下这个差别就很明显了。
百万程序
我决定将这个设想付诸现实。我写了另一个程序,这个程序将0到1000000之间的所有整数,包括0,依次print输出。当然这和我之前提到的大量运算的情况还是不同的,不过还是给了计算机比较多一些需要print的内容。
Python:
i = 0
while i (<) 1000000 print i
i = i + 1
C:
#include (<)stdio.h(>)
int main ()
{
int i;
for (i = 0; i <>
printf ("%d\n", i);
return 0;
}
然后是测试结果:
C:
real 0m24.625s
user 0m0.652s
sys 0m2.240s
Python:
real 0m29.805s
user 0m1.984s
sys 0m1.812s
结论
我承认,每个语言都有其优势和弱点。但从以上结果看来,我只会在像上面这些小程序这样快捷的编程中,或为C程序建立原型的时候才会用Python,而在运行花费时间更重要的任务中,我无疑会选择C语言。
 
译者:其实这篇文章中用于测试的程序编写的不是很严谨。在原博客上,这篇文章有不少评论都表示说,虽然他们承认C是比较快,但是这样的测试方法并没有充分利用两种语言的效率最优化机制。不过,具体测试是否准确并非是我所关注的。重点是,一个Java程序员,或者一个C程序员,或者别的什么语言的开发人员,在怎样的情况下,怎样的职业需求,会促使他们学习并使用新的语言呢?

--结束END--

本文标题: C与Python的不同在于速度

本文链接: https://lsjlt.com/news/188605.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • C与Python的不同在于速度
    这篇文章我在一个叫做The Unix Geek的博客中看见,刚好最近对这方面比较感兴趣,就顺手翻了过来,可以探讨探讨。 简介 Python是个非常流行的解释型脚本语言。C是一个非常流行的编译语言。由于其编译的性质,导致C一般比Python要...
    99+
    2023-01-31
    速度 Python
  • 基于python不同开根号的速度对比分析
    我就废话不多说了,大家还是直接看代码吧~ import time import math import numpy as np def timeit1(): s = time....
    99+
    2024-04-02
  • Python与C++的速度有哪些区别
    这篇文章主要讲解了“Python与C++的速度有哪些区别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python与C++的速度有哪些区别”吧!DNA K-mers简介DNA是一种称为核苷酸...
    99+
    2023-06-15
  • 关于c++11与c风格路径拼接的速度对比
    目录这里用c++11的stingstream实现一个用c重新实现一遍c++11的std库中没有提供路径拼接的功能 比如我需要将  "d:\\temp\\robin...
    99+
    2024-04-02
  • 透视C语言与Python的不同之处
    C语言和Python是两种流行的编程语言,它们在语法、运行方式、适用场景等方面有着显著的不同。本文将深入探讨C语言和Python的不同之处,并通过具体的代码示例来阐释这些差异。 首先,...
    99+
    2024-04-02
  • 速度快的vps价格为什么不同
    速度快vps价格不同的原因有:1、vps的品牌,品牌知名度越高,价格越高;2、vps的配置,配置越高,价格越高;3、vps的节点,就近节点比较便宜;4、vps购买时间的长短,时间越长,价格越高;5、vps的优惠活动,活动优惠折扣大,租用vp...
    99+
    2024-04-02
  • Python与C++在数据处理方面的异同
    c++olor:#f60; text-decoration:underline;' href="https://www.php.cn/zt/15730.html" target="_bl...
    99+
    2024-05-15
    python c++ 数据处理 编译错误 数据排序
  • python课程与c+课程有什么不同
    python 和 c++ 的主要区别在于:python 是动态类型语言,而 c++ 是静态类型语言。python 使用缩进表示代码块,而 c++ 使用大括号。python 有自动内存管理...
    99+
    2024-04-02
  • Python和 c++/c/java对于负数的存储方式有什么不同
    本篇内容主要讲解“Python和 c++/c/java对于负数的存储方式有什么不同”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python和 c++/c/java对于负数的存储方式有什么不同”...
    99+
    2023-06-03
  • c#快速入门~在java基础上,知道C#和JAVA 的不同即可
    ☺ 观看下文前提:如果你的主语言是java,现在想再学一门新语言C#,下文是在java基础上,对比和java的不同,快速上手C#,当然不是说学C#的前提是需要java,而是下文是从主语言是jav...
    99+
    2023-09-28
    c# java microsoft net C sharp
  • Python 2.7版本与3.6的不同
    许多Python初学者都会问:我应该学习哪个版本的Python。对于这个问题,我的回答通常是“先选择一个最适合你的Python教程,教程中使用哪个版本的Python,你就用那个版本。等学得差不多了,再来研究不同版本之间的差别...
    99+
    2023-01-31
    版本 Python
  • Java与C#的不同之处有哪些
    Java与C#的不同之处有哪些,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。关于类的理解重载访问器(Accessors——Getters)和修改器(Mutators——Se...
    99+
    2023-06-17
  • C语言关于include顺序不同导致编译结果不同的问题
    目录编译环境问题简化问题分析总结  今天遇到了因为include顺序不同而编译结果不同的问题。归根结底还是自己写代码的习惯不好导致的。 编译环境  &e...
    99+
    2024-04-02
  • 对比C语言和Python:哪个更适用于不同领域?
    对比C语言和Python:哪个更适用于不同领域? C语言和Python是两种常用的编程语言,分别在不同领域有着各自的优势和适用性。本文将对这两种编程语言进行对比,分析它们在不同领域中的...
    99+
    2024-04-02
  • 探究C语言和Python在不同领域的应用差异
    C语言和Python作为两种不同的编程语言,在各自的领域有着不同的特点和优势。本文将探究C语言和Python在不同领域的应用差异,并通过具体的代码示例来展示它们的特点。 1. C语言的...
    99+
    2024-04-02
  • 基于Python绘制三种不同的中国结
    目录前言示例一效果图代码展示示例二效果图代码展示示例三效果图代码展示前言 今天就来分享几个用python绘制的图案吧 马上就要迎来新年了 就绘制了几个中国结,嘿嘿 话不多说,直接展示...
    99+
    2023-01-09
    Python绘制中国结 Python 中国结
  • C#与Flex的访问权限有什么不同
    本篇内容介绍了“C#与Flex的访问权限有什么不同”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!在类型内部,对象方法可以自由的访问任何权限成...
    99+
    2023-06-17
  • C++中NULL与nullptr的区别有什么不同
    这篇文章主要介绍C++中NULL与nullptr的区别有什么不同,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、C程序中的NULL在C语言中,NULL通常被定义为:#define NULL ((void *)0)所...
    99+
    2023-06-15
  • Linux下的Bash响应速度不够快?试试Python!
    在Linux系统中,Bash是一种非常常见的命令行解释器,它可以帮助我们快速执行各种命令和操作。不过,有时候我们会发现Bash的响应速度不够快,特别是在执行一些复杂的操作时。这时候,我们可以考虑使用Python来替代Bash,以获得更快的响...
    99+
    2023-11-05
    linux 响应 bash
  • 用于读取不同消息模式的 Python 脚本
    问题内容 我正在尝试制作一个灵活的python脚本,从synop代码中读取和提取一些天气变量。 这是代码: import re def extract_data_12_utc(mes...
    99+
    2024-02-11
    python脚本
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作