自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

對(duì)于Python 腳本優(yōu)點(diǎn)介紹

開發(fā) 后端
Python 腳本不提供顯式的內(nèi)存分配回收API,完全自動(dòng)的內(nèi)存管理;Python memory manager實(shí)現(xiàn)了對(duì)程序運(yùn)行時(shí)堆的管理,包括內(nèi)存的分配,垃圾回收機(jī)制等;

下文介紹Python 腳本的文章,類似的,各種語(yǔ)言之間都互有差異,語(yǔ)言只是工具,要根據(jù)任務(wù)的不同選擇不同的工具,做專家系統(tǒng)就用Prolog,要跟操作系統(tǒng)底層交互就用C,跨平臺(tái)就用Java或Python。

一般來(lái)說(shuō)腳本語(yǔ)言的學(xué)習(xí)相比系統(tǒng)編程語(yǔ)言而言要更容易些,因?yàn)橄到y(tǒng)語(yǔ)言(如C/C++/Java)功能更加強(qiáng)大,語(yǔ)言復(fù)雜性高,學(xué)習(xí)周期長(zhǎng);從某種意義上說(shuō),腳本語(yǔ)言一句指令可以做更多事。

更加人性化,體現(xiàn)了機(jī)器為人服務(wù)的宗旨。因?yàn)橐粋€(gè)程序如果人做的少了,機(jī)器就相應(yīng)做的多了,正好符合自動(dòng)化的思想,發(fā)明機(jī)器就是為了要減輕人的勞動(dòng)。腳本語(yǔ)言從這個(gè)角度來(lái)說(shuō)是值得大力推崇的。

但是沒(méi)有什么是***的,讓機(jī)器做的太多的代價(jià)很有可能就是不如讓機(jī)器做的少運(yùn)行效率高。比如Python運(yùn)行時(shí)要做動(dòng)態(tài)的類型檢查,要耗費(fèi)機(jī)器運(yùn)行時(shí)間,在C等靜態(tài)編譯的語(yǔ)言中這個(gè)工作是留給人做了,還有一些類似的因素,因此C的效率比Python 腳本高很多。

垃圾回收(garbage collection,一下簡(jiǎn)稱GC)在當(dāng)前的版本中使用的是引用計(jì)數(shù)垃圾收集和可選的循環(huán)結(jié)構(gòu)垃圾空間掃描技術(shù),一旦對(duì)象變得‘不可達(dá)’的時(shí)候就會(huì)被回收,但是不保證能夠回收包含循環(huán)引用計(jì)數(shù)的內(nèi)存垃圾。引用計(jì)數(shù)的算法比較直觀:在每個(gè)存儲(chǔ)片中記錄了指向其的指針數(shù)目;在對(duì)存儲(chǔ)片進(jìn)行某些操作時(shí),對(duì)引用計(jì)數(shù)進(jìn)行更新。

分配一個(gè)存儲(chǔ)片時(shí)引用計(jì)數(shù)初始化為1,只要存儲(chǔ)片的引用被復(fù)制,引用計(jì)數(shù)加1,存儲(chǔ)片的引用被刪除時(shí),引用計(jì)數(shù)減1,如果引用計(jì)數(shù)減為0,則存儲(chǔ)片會(huì)由于不可達(dá)而被回收。

很明顯引用計(jì)數(shù)算法不能回收循環(huán)的數(shù)據(jù)結(jié)構(gòu);設(shè)想一個(gè)簡(jiǎn)單的場(chǎng)景:對(duì)象a一個(gè)成員指向?qū)ο骲,同時(shí)b也有一個(gè)成員指向a。而且代碼中只有引用a的部分,b對(duì)象只是輔助a對(duì)象而生成的,如果后來(lái)a對(duì)象被刪除了,那么a和b作為一個(gè)整體都變成內(nèi)存垃圾了。

理論上應(yīng)該都被內(nèi)存管理器刪除,但是由于引用計(jì)數(shù)算法每次只考察一個(gè)結(jié)點(diǎn),因此對(duì)于循環(huán)的數(shù)據(jù)結(jié)構(gòu)無(wú)法回收。所以在編程時(shí)應(yīng)盡量避免循環(huán)引用的情況出現(xiàn)。 Python語(yǔ)言的執(zhí)行效率跟C/C++/Java比起來(lái)要稍遜一籌,但是代碼長(zhǎng)度大大縮短,并且Python跨平臺(tái)、類庫(kù)豐富、語(yǔ)法簡(jiǎn)單、開發(fā)速度快。

因此常用Python代替C/Java構(gòu)建大程序,涉及到系統(tǒng)效率的地方可以考慮用C/C++實(shí)現(xiàn)。而且Python也可以做glue language(膠水語(yǔ)言),因?yàn)?FONT size=+0>Python跟C和Java的溝通能力非常的好。

.NET平臺(tái)上實(shí)現(xiàn)的Python;確切的說(shuō)Python for .NET是一種編譯器和運(yùn)行時(shí);它將 Python 腳本編譯成外部虛擬機(jī)的格式,并使得.NET類庫(kù)在Python語(yǔ)言中可用。IronPython .NET 平臺(tái)上的Python;相對(duì)于傳統(tǒng)的Python,IronPython支持可選的靜態(tài)編譯功能,靜態(tài)編譯過(guò)的IronPython程序就形成了常規(guī)的。

. NET可執(zhí)行文件(.EXE文件)。甚至還可以將IronPython程序靜態(tài)編譯為.NET動(dòng)態(tài)鏈接庫(kù)(.dll文件)并且供C#和VB.NET等. NET語(yǔ)言調(diào)用。Python自身的優(yōu)秀特性決定了其在實(shí)際應(yīng)用中的廣泛性??焖僭烷_發(fā);網(wǎng)絡(luò)服務(wù)器腳本;科學(xué)計(jì)算;文檔處理;數(shù)據(jù)庫(kù)編程;

嵌入開發(fā);GUI開發(fā);游戲開發(fā);移動(dòng)開發(fā)......Python 腳本擁有強(qiáng)大Python社區(qū)的支持,豐富的類庫(kù),以及C/C++/Java等語(yǔ)言提供可擴(kuò)展模塊。 摩爾定律斷言了處理器、內(nèi)存或者I/O設(shè)備等將不再大幅度影響程序的執(zhí)行效率,對(duì)于相當(dāng)一部分的應(yīng)用程序而言,實(shí)現(xiàn)同樣的功能。

用系統(tǒng)語(yǔ)言和腳本語(yǔ)言相比,生成代碼的運(yùn)行效率可能都會(huì)在可容忍的范圍內(nèi),但是腳本語(yǔ)言代碼量可能會(huì)低很多(Python和Java大約是1:6)。開發(fā)周期更短,而且現(xiàn)在很多常用的功能都已經(jīng)用系統(tǒng)語(yǔ)言實(shí)現(xiàn)了,可以作為功能模塊,配合腳本語(yǔ)言的glue功能,即可完成系統(tǒng)實(shí)現(xiàn)。

【編輯推薦】

  1. 如何使Python嵌入C++應(yīng)用程序?
  2. 深入探討Ruby與Python語(yǔ)法比較
  3. Python學(xué)習(xí)資料介紹分享
  4. Python學(xué)習(xí)經(jīng)驗(yàn)談:版本、IDE選擇及編碼解決方案
  5. 淺析Python的GIL和線程安全
責(zé)任編輯:chenqingxiang 來(lái)源: 人民郵電出版社
相關(guān)推薦

2010-03-17 17:06:10

python腳本語(yǔ)言

2010-09-17 10:00:38

SIP優(yōu)點(diǎn)

2010-02-01 18:23:54

Python

2010-02-23 15:04:45

Python 集成開發(fā)

2009-12-15 17:05:59

.NET 2003

2010-02-05 16:21:02

Android導(dǎo)航

2010-03-16 17:16:51

無(wú)線UWB技術(shù)

2010-02-23 10:32:20

Python 腳本

2010-04-19 16:42:14

OraclePL

2010-03-03 17:29:30

Android程序

2010-02-04 14:16:45

Android平臺(tái)

2010-09-10 15:18:28

SOAP協(xié)議

2010-01-19 17:54:47

C++程序

2010-01-14 13:39:45

Visual C++優(yōu)

2010-03-24 09:46:16

Python 2.6

2009-12-10 14:30:50

VS.NET 2003

2009-12-18 16:51:41

ASP.NET概述

2010-02-01 16:32:49

Python腳本

2009-12-22 15:08:46

ADO控件

2009-03-19 09:53:11

pureXMLXML關(guān)系數(shù)據(jù)庫(kù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)