C++比Python快50倍?如何让C++和Python优势互补?(Boost Python)_boost python vscode

1 为什么需要多语言联合编程?

在这里插入图片描述
在大型工程项目中,经常会遇到多语言联合编程的情况,举个例子:

在一个远端控制系统中,前端Web使用html+css+js;后端采用python-flask作为服务端,底层控制采用C/C++

这是因为不同编程语言有各自的适用场景和语法特性,联合编程可使得各种语言发挥自己的特长。本文主要比较Python和C++,先列举各自特点如下:

对比项目 C++ Python
本质 编译型语言 解释型语言
编程难度 难以掌握 易于上手
语法特性 静态 动态
垃圾回收 不支持 支持
安装 难(需要专门打包)
数据类型 在编译时由关键字确定 在运行时由数值确定
函数 输入参数和返回值类型有限制 输入参数和返回值类型无限制
执行速度
性能

国外有一个测试指出在相同复杂度算法中,C++约比Python快50倍左右。因此Python不适合用于底层算法的开发,应用在上层应用中作粘合剂或进行智能领域的研究比较占优;C/C++则适合用于底层控制算法编程。下面主要介绍Python调用C++,让C++和Python形成优势互补。

2 Python调用C++的主要方式

主要介绍三种C++/Python联合编程的方式:

2.1 SWIG

  • 支持Python、Java、Ruby等语言调用C接口
  • 文档全面,易于学习
  • 绑定性能欠佳, 不支持属性和内部类封装
  • C++支持不好

  • 28
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值