python使用jit沒(méi)加速 既然Python是用C實(shí)現(xiàn)的,那為什么Python不能直接生成exe呢?
既然Python是用C實(shí)現(xiàn)的,那為什么Python不能直接生成exe呢?C語(yǔ)言實(shí)際上是一種“舊”和“底層”語(yǔ)言。其執(zhí)行效率僅次于匯編語(yǔ)言。它之所以古老是因?yàn)镃語(yǔ)言出現(xiàn)得很早。盡管FORTRAN和COB
既然Python是用C實(shí)現(xiàn)的,那為什么Python不能直接生成exe呢?
C語(yǔ)言實(shí)際上是一種“舊”和“底層”語(yǔ)言。其執(zhí)行效率僅次于匯編語(yǔ)言。
它之所以古老是因?yàn)镃語(yǔ)言出現(xiàn)得很早。
盡管FORTRAN和COBOL比C語(yǔ)言出現(xiàn)得早,但現(xiàn)代主流操作系統(tǒng)(windows、Mac OS、Linux、IOS、Android、Unix)都是從C語(yǔ)言中誕生的。
最根本的原因是C語(yǔ)言被設(shè)計(jì)用來(lái)同時(shí)編寫(xiě)匯編語(yǔ)言。從理論上講,它可以用外匯來(lái)表示。匯編語(yǔ)言是最有效的語(yǔ)言。
所以Python是用C語(yǔ)言編寫(xiě)的也就不足為奇了。它與能否生成exe無(wú)關(guān)。
Exe文件是Windows平臺(tái)的專用格式。最簡(jiǎn)單的exe是com可執(zhí)行文件。EXE文件實(shí)際上由引導(dǎo)加載程序和解釋器組成。
由Python語(yǔ)言生成的代碼只能通過(guò)引導(dǎo)加載程序和解釋器作為EXE文件執(zhí)行。
因此Python生成EXE文件并不困難。只是它是否愿意提供的問(wèn)題。
Python對(duì)普通人有什么實(shí)際用處?
JAVA,PHP Python區(qū)別?
Java、PHP和Python有什么區(qū)別?現(xiàn)在有越來(lái)越多的編程語(yǔ)言,但要在許多編程語(yǔ)言中脫穎而出并不是一件簡(jiǎn)單的事情。目前,世界上所有編程語(yǔ)言的排名如下圖所示。
從上圖中我們可以看出,由于移動(dòng)終端系統(tǒng)Android的普及,Java仍然是最流行的語(yǔ)言,Android的底層語(yǔ)言是Java。Java不僅可以開(kāi)發(fā)軟件應(yīng)用程序,還可以開(kāi)發(fā)web應(yīng)用程序。Java基本上是分布式計(jì)算和大數(shù)據(jù)領(lǐng)域的佼佼者。例如,Hadoop是基于Java開(kāi)發(fā)的大數(shù)據(jù)處理軟件。
在上圖中,PHP略落后于Java和python。PHP主要用于開(kāi)發(fā)web應(yīng)用程序。雖然php7中增加了開(kāi)發(fā)軟件應(yīng)用程序的功能,但與Java相比還不算什么。然而,在web開(kāi)發(fā)中,它的優(yōu)勢(shì)得到了充分的體現(xiàn)。世界上幾乎70%的網(wǎng)站都是通過(guò)PHP開(kāi)發(fā)的,甚至Facebook也采用了PHP技術(shù)。
在上圖中,增長(zhǎng)最快的語(yǔ)言是python,這可能是由于近年來(lái)人工智能的快速發(fā)展。據(jù)說(shuō)高中將有Python課程。Python語(yǔ)言起步快,應(yīng)用廣泛,可用于web數(shù)據(jù)分析、科學(xué)計(jì)算、統(tǒng)計(jì)分析、自動(dòng)操作等?,F(xiàn)在人工智能系統(tǒng)還將提供Python接口,這使得編寫(xiě)人工智能應(yīng)用程序更加方便。
Python到底有多慢?
首先,我們用10個(gè)坐標(biāo)點(diǎn)來(lái)模擬城市的位置。由于我們平時(shí)對(duì)Python的使用比較多,也比較熟悉,所以我們首先選擇Python作為編程語(yǔ)言來(lái)實(shí)現(xiàn)蟻群算法,但是我們?cè)诘谝粫r(shí)間就等著睡著了。猜猜看有多長(zhǎng)時(shí)間,超過(guò)六分鐘,這是效率的可怕之處。你不能讓老師等6分鐘在最后的回答中選擇最佳路徑??峙乱獣和A?。用C語(yǔ)言對(duì)蟻群算法進(jìn)行了優(yōu)化,優(yōu)化結(jié)果不到1min。沒(méi)有比較就沒(méi)有壞處。在這之后,我深刻地認(rèn)識(shí)到Python執(zhí)行效率的可怕方面。
有些人可能想知道為什么C和Java比python更高效。事實(shí)上,它與語(yǔ)言的底層代碼有關(guān)。C語(yǔ)言是匯編語(yǔ)言的二次開(kāi)發(fā),Java大多是C和C的二次開(kāi)發(fā),但是我們的Python可以分為兩種情況,一種是Cpython,另一種是jpython,分別是C和Java的二次開(kāi)發(fā),所以效率比這兩種語(yǔ)言要低。我看到消息說(shuō),為了解決python的效率問(wèn)題,政府計(jì)劃重新開(kāi)發(fā)底層python代碼。最近,我沒(méi)有看到任何相關(guān)的新聞。畢竟,這個(gè)工作量是非常巨大的。
Python比java牛在哪里?
使用編程語(yǔ)言,不自夸。不同領(lǐng)域的人有自己的編程語(yǔ)言。目前,Python適用于快速原型開(kāi)發(fā)、操作和維護(hù)腳本和工具、數(shù)據(jù)處理和科學(xué)計(jì)算、機(jī)器學(xué)習(xí)和人工智能。
PHP為什么這幾年在走下坡路?
感謝您的邀請(qǐng)。作為一名18年的PHP老兵,我的回答有一定的參考價(jià)值。我來(lái)自一所職業(yè)學(xué)校,我的母語(yǔ)是C語(yǔ)言。一開(kāi)始,我完全喜歡上了PHP,因?yàn)槲蚁氤蔀橐粋€(gè)網(wǎng)站,這恰好是PHP創(chuàng)始人的想法。這位偉大的上帝為用C語(yǔ)言建立網(wǎng)站提供了一個(gè)新的解決方案。
但我不知道18年來(lái)PHP是在增長(zhǎng)還是在下降。前天,我遇到了李開(kāi)復(fù)的學(xué)生丁繼昌。”“PHP是世界上最好的語(yǔ)言”是丁繼昌2016年第一次聽(tīng)到他這么說(shuō)。他更多地使用java。
坦白說(shuō),我不喜歡PHP,但當(dāng)時(shí)沒(méi)有更好的選擇。從2005年到2007年,php4mysql3作為一個(gè)年?duì)I業(yè)額巨大的全球交易網(wǎng)站推出。當(dāng)時(shí),MySQL還不支持事務(wù)。PHP4糟糕的課堂設(shè)計(jì)是一次痛苦的經(jīng)歷。然而,憑借其優(yōu)秀的基礎(chǔ),能夠第一次脫穎而出是非常幸運(yùn)的。
基本上,我的職業(yè)生涯已經(jīng)定型,專攻電子商務(wù)商務(wù)系統(tǒng)。PHP5之后,類的設(shè)計(jì)更加舒適一些,性能也得到了極大的優(yōu)化。因此,我們敢于在PHP系統(tǒng)中大規(guī)模地使用類設(shè)計(jì)。因?yàn)镻HP解決復(fù)雜業(yè)務(wù)系統(tǒng)的案例很少,所以我們必須閱讀Java源代碼并從中學(xué)習(xí)。
只有在擁有了名稱空間,甚至php7之后,我認(rèn)為PHP才最終成為一種專業(yè)語(yǔ)言。
我對(duì)PHP的價(jià)值認(rèn)可主要是因?yàn)樗男詢r(jià)比。在中小型電子商務(wù)項(xiàng)目中,它仍然是最佳選擇。
就我目前的編程能力而言,簡(jiǎn)單來(lái)說(shuō),任何復(fù)雜的業(yè)務(wù)系統(tǒng),基于任何語(yǔ)言,沒(méi)有任何框架,都可以在系統(tǒng)中做得很好。
希望能激勵(lì)你。