大家好,今天小编关注到一个比较有意思的话题,就是关于学习python虚拟机书籍的问题,于是小编就整理了4个相关介绍学习Python虚拟机书籍的解答,让我们一起看看吧。
- python哪个版本比较稳定?
- 《Python源码剖析》这本书为什么断货了,大家不觉得这本书好吗?
- 为什么学Java时候要学JVM的各种细节, 但是学python没有教python虚拟机/解释器的原理?
- 《深入理解Java虚拟机》过时了吗?
python哪个版本比较稳定?
Python有几种不同版本的实现方式,目前,有四种产品完备的、强大和稳定的主流Python实现:
1.CPython是常规的老版本Python,也是我们通常所称的Python。它既是编译器也是解释器,有自己的一套全部用标准C语言编写的标准程序包和模块。该版本可以直接用于所有流行的当前平台。大多数的Python第三方程序包和库与此版本兼容。
2.PyPy是Python实现的一个更快实现,它使用JIT编译器来使代码运行速度比CPython实现的速度更快。
3.Jython是java平台的Python实现,它支持Java虚拟机(J***a Virtual Machine,JVM),适用于任何版本的J***a(版本最好是7以上)。
4.IronPython是流行的Microsoft .NET框架的Python实现,也称为通用语言运行时(Common Language Runtime,CLR)。
建议你使用默认的Python版本,即CPython实现,只有当你真的有兴趣与其它语言(如C#和J***a)进行接口并需要在代码库中使用它们时,才可以去尝试其它版本。
《Python源码剖析》这本书为什么断货了,大家不觉得这本书好吗?
这本书比较老的,08年的,好像此书能使我们对Python的内部实现有所了解,但在Python编码上帮助不大的。但是我看豆瓣上评分满高的。
至于断货了,这个与书的质量无关。很多好书,特别是某一领域的书籍,观众面小,而又出版在早期,出版商觉得经济效益不好,所以断货了,但不能说书不好。而且这部是巨作,有480页。写法上是研究性的,前沿性的,可能编程语言书还是教科书,或者项目实战书好卖。应该说是关于 builtin 类型的 C 实现和 python 虚拟机机制的讲解比较容易懂,后面的类机制和内存管理机制看得很吃力。源码配的讲解方式不错,不过错别字比较多。总之书的定位有点别出心裁。
《Python火到一塌糊涂,成了云时代的“互联风口的猪”》
“一叶知秋”,一本书的脱销带来了python生态系统现状信息!
“蝴蝶效应”的“马太效应”起动了!
基于Pythoh软件方案不打紧涉足各个领域......
就连最热门的云平台Openstack也不由自主地从python开发出来的!
“天时、地利、人和”造就了python热潮!比其那“互联风口的猪”都来得猛烈!
图:左右逢源的Python说不定哪天还会冲出地球工作去
python的特点:
为什么学J***a时候要学JVM的各种细节, 但是学python没有教python虚拟机/解释器的原理?
J***a是一种静态类型的编程语言,它的程序在编译时就已经确定了类型信息,因此J***a虚拟机(JVM)可以利用这些信息来优化代码的执行效率。 因此,学习JVM的工作原理可以帮助J***a程序员更好地理解程序的执行过程,从而更好地调试和优化程序。
而Python是一种动态类型的编程语言,它的程序在执行时才会确定变量的类型,这使得Python解释器更加灵活,但也导致了它的执行效率不如J***a高。 因此,学习Python解释器的工作原理对于Python程序员来说并不是那么重要,因为Python程序员可以通过其他方法(如使用第三方库或写C扩展)来优化程序的执行效率。
总之,学习JVM的工作原理对于J***a程序员来说是很有必要的,因为这有助于提高程序的执行效率,而学习Python解释器的工作原理对于Python程序员来说则不是那么必要。
《深入理解J***a虚拟机》过时了吗?
可以负责任的讲,目前没有过时,未来短期内也不会过时。《深入理解J***a虚拟机》是否过时,首先取决于 J***a 语言本身是否过时了。目前J***a在绝大多数领域占有不可忽视的地位。在语言排行榜中,也是长期居于前列。j***a 本身的可移植性,使得很多服务器以及web后端开发都青睐有加,而其自身语言的特性,以及丰富的库,更让他在众多语言中经久不衰。而作为J***a开发中至关重要的虚拟机,开发者能够多大程度上深入理解它的机制,也是区别优秀的J***a开发者和普通开发者的标杆之一。所以作为J***a的开发者,如果想在[_a***_]上有更深入的发展,虚拟机机制是必须要过的一道坎。而《深入理解J***a虚拟机》这本书是相对比较经典的介绍该方面知识的书籍,还是值得推荐的。
本不想来回答这个问题,但看到下面那个J***a高级架构狮,只是直接放出了j***a虚拟机的内存结构图,觉得还是有必要来说下这个问题的。
先谈是不是过时的问题。
现在我们在国内可以读到的《深入理解J***a虚拟机》应该是它的第2版吧,我没有去查过,有没有更新的版本,大致长这样
它所针对的,主要是JDK7的规范,那么,从JDK7到现在的JDK 12正式发布,应该说JDK已经在各方面,都发生了很大的变化。
考虑到目前在整个业界,甚至连JDK8的规范,其实还普及未久,那么,简单的就以JDK7和JDK8下,关于PermGen空间的事情,来做个例子。
在《深入理解J***a虚拟机》的2.4.3中,谈到了运行时常量池的溢出,其中给出了一个说明,即:
但估计你照此去理解JDK8及其以后的虚拟机,恐怕要抓瞎,因为,从JDK8开始,已经没有PermGen空间了,取而代之的是Metaspace。
当然,这不是什么大的问题,但也说明实际上,这么多年,JDK也在与时俱进的发展着,所以:
其实这个问题需要客观地看待,我认为只要j***a虚拟机不过时,《深入理解j***a虚拟机》这本书就不会过时。跑在JVM上的编程语言不止j***a一种,JPython,JRuby,Groovy等语言都跑在j***a虚拟机上,存在即合理,只要这些编程语言有人用,j***a虚拟机就不会过时。很多C和C++的程序员吐槽j***a虚拟机的GC机制导致跑在JVM上的编程语言写出来的程序性能差,执行慢的缺点。这点我不予否定,GC在垃圾回收时的确会有较长的停顿时间,但是事物总是具有两面性的,需要客观看待,C追求性能,那么就得牺牲可移植性。而j***a正是在极致性能和跨平台性两者的权衡下选择了后者,而恰恰j***a虚拟机正是j***a跨平台的核心所在,况且,JVM也是随着技术的发展不断演进的,从CMS,G1再到j***a11目前还在试验阶段的ZGC,j***a虚拟机的GC停顿时间也在变得越来越短,官方给出的ZGC的停顿时间不超过10ms,我们在做性能测试的时候ZGC的停顿时间远远到不了10ms,大多数情况下都在一两毫秒之内,况且10ms的停顿对大多数的程序的性能影响都是微乎其微的,相比于以前四五百毫秒的停顿时间,即使是10ms的停顿也算是几何级的突破了,相信未来的JVM性能还会不断地提升的,所以,在未来的很长一段内,j***a虚拟机不但不会过时的,反而会更加流行。再说《深入理解j***a虚拟机》这本书,自出版以来,一直被业界奉为经典之作,也是程序员了解JVM必看的著作,虽然这本书是基于J***aSE7的规范,但是这并不妨碍我们学习JVM.一般底层的核心内容变化的幅度不是很大的。虽然这本书讲到的CMS垃圾收集器目前已放弃维护,官方重点维护G1和ZGC,但是关于原理和思想的东西是永远都不会变的,之所以长期起来被奉为经典,就是因为有其借鉴的价值。所以《深入理解j***a虚拟机》在未来很长一段时间是不会过时的。
目前的情况远远没到过时的程度!
如果是从事J***a开发,我觉得早点深入理解J***a虚拟机一定是正确的选择,这种核心基础的功力如果修炼的好,一定会对工作甚至职业有很大的帮助!!
到此,以上就是小编对于学习python虚拟机书籍的问题就介绍到这了,希望介绍关于学习python虚拟机书籍的4点解答对大家有用。