1、说明:

测试是在win10平台下进行的,先给大家看一下计算机的配置:
测试环境:

Python3.6.4
GCC 8.1.0   # 需要自己安装哦~
G++ 8.1.0

2、测试C和Python分别累加到1亿,花费的时间

2.1、C语言程序

首先使用创建Test.c文件,然后将Test.c文件转化为DLLWin下使用Python调用DLLUbuntu下调用so)。
将下列程序复制到Test.c文件中,然后运行gcc -shared -o Test.dll Test.c生成DLL文件

#include "stdio.h"
// 关键:__declspec(dllexport) 申明将这个方法导出到DLL中。
__declspec(dllexport) int sum(int a)
{while (a < 100000000){/* code */a = a + 1;}// printf("%d", a);return a;
}

2.2、Python程序

创建python2c.py文件,将下面程序复制到python2c.py文件中,然后运行python2c.py

from ctypes import *
import time
from numba import jitdll = windll.LoadLibrary('Test.dll')def c_calc_sum():a=dll.sum(1)print(a)start_c = time.time()
c_calc_sum()
print(time.time() - start_c)# @jit
def calc_sum():sum_py = 0 for i in range(100000000):sum_py = sum_py + 1start_py = time.time()
calc_sum()
print(time.time() - start_py)

输出结果如下:

100000000
0.15740251541137695     # 说明:c语言计算结果
4.498934984207153       # 说明:Python语言计算结果

上面的测试,是分别使用C程序和Python程序累加计算1+1+1+1…(1亿次)
从结果中我们可以看出,使用C比Python快了约28倍。


3、测试C和Python(numba加速)分别累加到1亿,花费的时间

我们只需要将上述python2c.py文件中的# @jit注释去掉,也就是改为@jit即可实现numba加速。
看一下使用numba加速后Python的运行效率:

100000000
0.14839458465576172     # 说明:c语言计算结果
0.16844749450683594     # 说明:Python语言计算结果

4、结论

从上述结果我们可以看出:
1、分别使用c和python测试从1累加到1亿,c比python快了将近28倍(python不使用numba加速);
2、分别使用c和python测试从1累加到1亿,c比python快了将近1.4倍(python用numba加速);

Python和C语言运行速度对比(累加1亿次)相关推荐

  1. Cython,Python,C/C++的运行速度对比

    关于Cython,Python,C/C++的运行速度的对比 测试环境: 处理器: AMD Ryzen 5 3500U with Radeon Vega Mobile Gfx 2.10 GHz 机带: ...

  2. python如何在没有环境的电脑上执行_没安装python的电脑可以运行python写的程序吗 python语言编写的程...

    py2exe 能够把 Python script 转换成可以在windows上独立执行的(即不需安装Python)的exe程序(加上其它必需的运行时函数库). -- 摘自百度知道 py2exe能够把P ...

  3. python中如何插入C语言运行?

    1. python中如何插入C语言运行? (1)编写C语言代码: #include<stdio.h>void CFun() {printf("---------我是c语言:--- ...

  4. go加载python_python培训 | python调用go语言来提速

    在写一些对性能要求十分严格的功能的时候,python往往力不从心.毕竟是一个解释性的语言,没有办法和变异性的语言去比较速度和内存占用率.但是python的本身的特定就使得我们可以将耗时的操作移交给编译 ...

  5. java c 速度_Java和C#运行速度对比:Java比C#快约3倍

    测试条件: Java版本: Java 8, .NET版本:v4.0, Release模式,针对x86平台优化 单线程模式. Java代码: package javatest; public class ...

  6. python比c语言开发速度快多少倍_Python语言其实很慢,为什么机器学习这种快速算法步骤通常还是用呢?...

    原标题:Python语言其实很慢,为什么机器学习这种快速算法步骤通常还是用呢? 作为python的忠实粉丝,看见这个题目就情不自禁想怼回去.鉴于和谐社会,我决定慢慢讲道理. 首先,相对于c语言,pyt ...

  7. python与c语言数据交互,python与c语言交互应用实例

    1.python向c语言写数据 1) 先将接收端编译成一个共享链接库 gcc/arm-linux-gnueabihf-gcc -o bluetooth_proxy.so -shared -fPIC b ...

  8. python可以在linux运行_在linux运行python

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! linux下编译安装python3与python2共存linux下默认系统自带p ...

  9. 新手学python还是c语言_py和c语言究竟新手该学哪个?

    看到另外两个答主都建议先学C,那么我出个不一样的意见:先学Python. 对于新手来说,Python语法比较简单,学起来容易. 另外,Python很实用.这不仅是因为Python有很多现成的库,你可以 ...

  10. python输入完怎么运行-教你如何编写、保存与运行Python程序的方法

    第一步 接下来我们将看见如何在 Python 中运行一个传统的"Hello World"程序.Python教程本章将会教你如何编写.保存与运行 Python 程序. 通过 Pyth ...

最新文章

  1. spring源码分析之spring注解@Aspect是如何工作的?
  2. 9号团队-团队任务4:每日立会(2018-11-26,2018-11-27)
  3. PLSQL_性能优化系列20_Oracle Result Cash结果缓存
  4. vld不输出泄漏信息_光纤天线方案和泄漏电缆方案的比较
  5. 氢气露点和湿度换算_如何创建氢气鼓组以获取乐趣和收益
  6. C# Rotating Oval
  7. Cocos2d-x Touch事件处理机制(better)
  8. 基于目标检测的电车充电插孔检测实践
  9. Package php5 have no installation candidate解决方案
  10. 三星电子能从硬件公司转型成软件公司吗?
  11. linux系统自动获取ip地址,Linux系统怎么自动获取ip地址用什么命令
  12. 高等数学:第八章 多元函数的微分法及其应用(6)微分法在几何上的应用
  13. kotlin-android-extensions过时了,迁移到ViewBinding
  14. 【时间与空间】基本概念
  15. 尝试Ping百度域名后的思考
  16. ST公司三轴加速度计LIS3DH应用
  17. c语言程序ax2 bx,计算ax2+bx+c程序清单计算机组成原理计算机系统概论.PPT
  18. 【雕刻机】Grbl程序使用入门
  19. Java 8 将Map转换为List
  20. java md5 decode_MD5编码工具类 MD5Code.java

热门文章

  1. 弘辽科技:直通车测款测图
  2. Python下载和安装图文教程[超详细]
  3. 深入解读5G关键技术
  4. 嗨到起飞!终于搞懂前端数据可视化了!
  5. 如何使用STVP烧录程序
  6. 一款比较简单的PDF解密工具注册码分析
  7. MD5 加密算法详细介绍
  8. 汇编intel 8086/8088/80386 学习
  9. GA/GP中的适应度函数
  10. Python实时垃圾分类系统(环境教程&完整源码&数据集)