大家好,今天小编关注到一个比较有意思的话题,就是关于python语言很慢的问题,于是小编就整理了3个相关介绍Python语言很慢的解答,让我们一起看看吧。
为什么python调用matlab程序很慢?
Python调用Matlab程序较慢的原因可能有以下几点:
1. 程序转换:Python和Matlab是两种不同的编程语言,调用Matlab程序需要将Python代码转换成Matlab代码,这个过程可能比较耗时。
2. 通信开销:Python和Matlab之间的通信开销比较大,因为它们是两个独立的进程,需要进行进程间通信,这会增加程序的运行时间。
3. 运行环境:Python和Matlab使用不同的运行环境,调用Matlab程序需要启动Matlab虚拟机,并加载相应的库和数据,这些操作都会耗费一些时间。
4. 数据传输:在Python和Matlab之间传递数据也需要一定的时间,特别是在数据量较大时,数据的传输会成为影响性能的一个因素。
综上所述,由于Python和Matlab之间的语言差异、通信开销、运行环境和数据传输等因素,导致Python调用Matlab程序较慢。为了减少此问题,可以使用更高效的交互方式,如使用MATLAB Engine API等。此外,也可以考虑在Python中使用原生的库来避免调用Matlab程序。
java和c都是编译型语言,一个是解释型语言。 编译型语言在程序执行之前,有一个单独的编译过程,将程序翻译成机器语言,以后执行这个程序的时候,就不用再进行翻译了。 解释型语言,是在运行的时候将程序翻译成机器语言,所以运行速度相对于编译型语言要慢。 当然更多的是与算法有关而不是语言。你python代码换成这个看看,速度是不是比你快多了 def primes1(n): 34;"" returns a list of primes < n """ sieve = [True] * (n/2) for i in xrange(3,int(n**0.5)+1,2): if sieve[i/2]: sieve[i*i/2::i] = [False] * ((n-i*i-1)/(2*i)+1) return [2] + [2*i+1 for i in xrange(1,n/2) if sieve[i]] import time start = time.time() a = primes1(4000000) end = time.time() print a print 39;used time:' end-start
为什么感觉python比Java、c++慢很多?
谢邀。为什么Python很慢?由于各种原因,Python比Fortran和C慢:其中有一个很主要的原因是Python是动态类型而不是静态类型。
这意味着在程序执行时,解释器不知道定义的变量的类型。 此图表总结了C变量(我使用C作为编译语言的替代)和Python变量之间的区别:
对于C中的变量,编译器通过其定义知道类型。 对于Python中的变量,在程序执行时你所知道的只是它是某种Python对象。
所谓慢,也只是因为CPython的实现相对保守一点罢了,又不是没有别的选择?更可况Python大多数时候是作为简单易用的胶水语言来使用,负载高的底层计算模块的实现,完全可以用效率高的C语言,用Python随便摆弄一下上层逻辑就好了,无伤大雅。
以时下比较火爆、所需计算负载高得惊人的人工智能领域为例,无论是机器学习框架还是数据处理程序,Python都是当之无愧的主角,要是真的慢,早就一脸嫌弃的被抛弃了……
就是gil导致这货只能跑一个线程,无法充分利用cpu。题主说的场景,语言解释性是次要的,可以忽略。python真正程只能通过调用c库。gevent,libuv等实现。所以当年那些人工智能库只是为了语法简单就选了python,真的是一个很二的选择。
从语言的本质上来讲,python是解释型语言,而C++是编译型语言。
也就是说python代码解释一句,执行一句;而c++语言是讲整个代码编译、链接为机器可识别的二进制代码,最后一起执行。
所以从这个角度来讲,c++自然会比python在很多情况下快很多。
为什么Python比C++慢很多?
我尝试下用通俗的话来解释这个问题,有问题或者有更好的看法欢迎在评论区讨论。
C++是一门编译型语言,所有代码都会在编译阶段翻译成机器码,机器码就是系统能够直接理解的码,实际执行直接调用即可,只翻译一次机器码,所以很快。
而Python是一门解释性语言,解释性语言简单来说就是你可以通过比较简单的语句来表达你的逻辑关系和判断,然后跨平台去使用它,有着简单、方便的开发性能,因为运行一次翻译一次机器码,所以性能相比C++较差。
从运行效率看,C++确实比Python要好很多。首先,Python的东西比C++复杂,[_a***_]上所有变量都是对象。其次,Python是跨平台执行的,多了一层解释器,所以每次运行都要跑一遍,但C++一次编译就以后就不需要再编译了,除非代码改动,所以少了中间层自然快些。
从开发效率看,Python就要比C++要好不少,Python一两句可以搞定的逻辑,C++往往都要写一大堆,这不是黑,我也写C++。用C++可能写个东西终于写好了,搞不好过几天又内存泄漏,而且跨平台开发实在难受,这时候你就会想起Python的“人生苦短,我用Python”这句至理名言。
现在来看一个具体的例子,C/C++、J***a以及Python的测试比较,用的是Win8、I5 4670k,内存8G的电脑配置。
这是因为Python在C语言基础上又多做了一层抽象。说白了就是把大多数常用功能都打包好了,比如数据结构和操作接口。学过C语言数据结构和算法都知道,用C实现个链表要自己定义结构,插入,排序之类的操作都自己写代码。而Python的list直接把这些基础的事儿都准备好了,程序员拿来直接用。
增加比较多抽象层高级功能后python自然运行就慢了很多,但是优势是省事儿了。实际上一个小白C程序员自己实现的链表性能上可能还不如Pthon的list,而且还可能有bug。
到此,以上就是小编对于python语言很慢的问题就介绍到这了,希望介绍关于python语言很慢的3点解答对大家有用。