Python和C++编写block
来源:互联网 发布:淘宝收货地址写什么 编辑:程序博客网 时间:2024/06/11 20:36
在gnuradio中可以使用Python编写模块,也可以使用C++编写。
看到官网上说使用Python编写对性能要求不高的模块,开始很不理解。后来使用Python编写了双差分调制和解调模块,终于意识到Python和C++的性能上还是差很多的。
由于Python是一种解释型语言,而且语法比较简单,使用Python编写模块确实比较简单,而且可以快速开发,即时测试。
而C++作为一种编译型语言,每次修改之后都需要重新编译、安装,需要重复输入很多命令,也很浪费时间,而且C++语法也比较复杂。
Python的一个不足在于多线程。据说Python是仅有的支持多线程的解释型语言,虽然如此,Python并非是真正的多线程,在Python中存在全局解释器锁,在任意时刻只有一个Python在解释Python code。
引用知乎上的解释:
+++++++++++++++++++++++++
如果你的代码是CPU密集型,多个线程的代码很有可能是线性执行的。所以这种情况下多线程是鸡肋,效率可能还不如单线程因为有context switch
但是:如果你的代码是IO密集型,多线程可以明显提高效率。例如制作爬虫(我就不明白为什么Python总和爬虫联系在一起…不过也只想起来这个例子…),绝大多数时间爬虫是在等待socket返回数据。这个时候C代码里是有release GIL的,最终结果是某个线程等待IO的时候其他线程可以继续执行。
但是:如果你的代码是IO密集型,多线程可以明显提高效率。例如制作爬虫(我就不明白为什么Python总和爬虫联系在一起…不过也只想起来这个例子…),绝大多数时间爬虫是在等待socket返回数据。这个时候C代码里是有release GIL的,最终结果是某个线程等待IO的时候其他线程可以继续执行。
反过来讲:你就不应该用Python写CPU密集型的代码…效率摆在那里…
链接:https://www.zhihu.com/question/23474039/answer/24695447
++++++++++++++++++++++++++
2 0
- Python和C++编写block
- Object-C-block和protocol
- 【Python】用C语言编写Python模块
- Python的C扩展模块的编写(Anaconda+VS2013,python3.5和c++)
- 【Objective-C】15-block和协议
- python编写FCFS和SJF
- 使用IDLE和Python Shell编写python
- C语言编写DLL动态链接库并分别用VB和Python调用
- 编写Python扩展(Extending Python with C or C++)
- 为python编写c/c++ 的extension
- 用C语言编写Python扩展模块
- 编写 Window 下 Python C程序
- 使用VS2010编写Python的C扩展
- 使用C/C++编写Python扩展库
- 用VS 编写 Python C扩展
- C语言函数指针和Objective-c中的block
- 小记最简单的socket服务器端和客户端的代码编写(C版和python版)
- 扩展python 用C语言编写python扩展代码
- clone branch in git
- linux一键安装包的使用教程
- 三个水杯问题
- twemproxy集群部署
- android 常用URI
- Python和C++编写block
- oracle一些操作汇总
- 中间件相关
- Tomcat集群部署
- NPOI读写Excel
- Windows D3D Intro - On Device Lost
- 2016.03.30 Supervised learning
- FZU-2148-Moon Game,,几何计算~~
- 【代码笔记】iOS-获取系统完成任务所需的后台时间