亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
打印 上一主題 下一主題

強調(diào)實用主義——采訪Python專家HyryStudio [復(fù)制鏈接]

論壇徽章:
0
21 [報告]
發(fā)表于 2012-05-31 01:13 |只看該作者
最后一句說的太好了。 其實應(yīng)該把文旦等這些都認真的做,相信發(fā)展的會更好。

論壇徽章:
0
22 [報告]
發(fā)表于 2012-05-31 08:48 |只看該作者
回復(fù) 17# HyryStudio

我曾經(jīng)工作共有個需求,是將一個服務(wù)器接收的數(shù)據(jù)包轉(zhuǎn)發(fā)到另外一臺服務(wù)器,1秒鐘有幾個百個并發(fā)請求,就會發(fā)現(xiàn)Python有很大的瓶頸,速度好慢,我已經(jīng)使用了multiprocess、stackless等方式,包括用堆棧,進行異步處理,把數(shù)據(jù)都放到了內(nèi)存中(用的字典),但還是因為性能問題放棄了這種方式。

除此之外,能多談?wù)凜ython的實現(xiàn)嗎?
   

論壇徽章:
1
天蝎座
日期:2013-12-06 18:23:58
23 [報告]
發(fā)表于 2012-05-31 13:04 |只看該作者
回復(fù) 11# 追憶的風(fēng)箏


    python 的優(yōu)勢在于輕便和靈活,速度確實不如matlab,這一點上python還是稍遜一籌的。 優(yōu)化竟可能還是提高程序本身的實現(xiàn)技巧吧。能不重復(fù)計算的就不要重復(fù)計算,能多機并行的,就不要在一個機器上死磕

論壇徽章:
0
24 [報告]
發(fā)表于 2012-05-31 13:52 |只看該作者
回復(fù) 23# crazyhadoop

并行計算是一個思路,將數(shù)據(jù)流分布到不同的服務(wù)器上,將結(jié)果進行匯總。但數(shù)據(jù)處理方式很多,但有些時候瓶頸不在這。Python實現(xiàn)分布式計算,可以分享下經(jīng)驗嗎?
   

論壇徽章:
1
天蝎座
日期:2013-12-06 18:23:58
25 [報告]
發(fā)表于 2012-05-31 14:10 |只看該作者
回復(fù) 24# 追憶的風(fēng)箏


    如果有大量的運算數(shù)據(jù)要做,我會把這些數(shù)據(jù)按照使用的順序劃分一下,比如在文本分類計算的時候,首先處理原始數(shù)據(jù),每200M分出一個文件,然后訓(xùn)練程序就開始去讀取這些文件。慢慢的就會有 10個左右的進程在同時處理這些文件。然后再匯總結(jié)果,基本就是這樣吧。那么多核不要浪費。

論壇徽章:
0
26 [報告]
發(fā)表于 2012-05-31 16:55 |只看該作者
在工作中有些情況是,在并發(fā)請求大的時候,就算用Python把請求的數(shù)據(jù)往內(nèi)存里放,都放不進去。先不說數(shù)據(jù)處理用多長時間,至少不能丟數(shù)據(jù)啊,實在是郁悶。

論壇徽章:
0
27 [報告]
發(fā)表于 2012-05-31 18:39 |只看該作者
追憶的風(fēng)箏 發(fā)表于 2012-05-31 08:48
回復(fù) 17# HyryStudio

我曾經(jīng)工作共有個需求,是將一個服務(wù)器接收的數(shù)據(jù)包轉(zhuǎn)發(fā)到另外一臺服務(wù)器,1秒鐘有 ...


網(wǎng)絡(luò)并發(fā)的話,瓶頸應(yīng)該不在CPU處理之上,而是在網(wǎng)絡(luò)處理吧。我對這個不熟悉,不過就我多年在Python社區(qū)潛水的經(jīng)驗,似乎gevent之類的異步處理庫應(yīng)該能實現(xiàn)高并發(fā)吧。如果瓶頸在CPU對數(shù)據(jù)包的處理的話,那就可以用Cython之類的加速了。

Cython將Python程序翻譯成調(diào)用Python API的C語言程序,然后進行編譯。如果是針對純Python程序的話,翻譯成C語言可以節(jié)省Python虛擬機中的那個解釋用的大循環(huán),運行速度能夠提高30%左右。

如果使用Cython的靜態(tài)語言關(guān)鍵字對程序中一些變量進行類型定義的話,Cython就可以將程序翻譯成更加優(yōu)化的C語言程序,從而大幅度提高運行速度。例如下面的程序:

a = []
a.append(1)

如果Cython不知道a是列表,它就會調(diào)用Python API首先向?qū)ο骯請求append方法對象,然后再通過Python的函數(shù)調(diào)用運行append方法。

但是如果:

list a = []
a.append(1)

那么Cython知道a是一個列表,于是它直接調(diào)用Python API中往列表中添加對象的函數(shù),可以節(jié)省不少運行時間。

論壇徽章:
0
28 [報告]
發(fā)表于 2012-05-31 18:41 |只看該作者
本帖最后由 HyryStudio 于 2012-05-31 18:43 編輯

回復(fù) 23# crazyhadoop


其實MATLAB也只是針對一些矢量運算調(diào)用底層Fortran庫時速度很快,這部分和Python調(diào)用的庫是差不多的,所以MATLAB在這方面和NumPy,SciPy是一個級別的。

至于程序內(nèi)部的循環(huán)判斷等語句的執(zhí)行速度,據(jù)說最近的MATLAB有JIT,可以大幅度提高程序的運算速度,不過我很久沒有用過MATLAB了,不太清楚。

最近有一個新的語言Juila,它提供了一個簡單的運算速度比較:

http://julialang.org/

從那個比較的表格可以看出:
  1. def fib(n):
  2.    if n<2:
  3.        return n
  4.    return fib(n-1)+fib(n-2)

  5. 運行速度比較
  6. Python 31.47
  7. matlab 1336.37
  8. Javascript(V8) 1.55
復(fù)制代碼
fib這樣的遞歸調(diào)用函數(shù)Python比MATLAB快40倍,很有可能MATLAB不能對大量的函數(shù)調(diào)用進行JIT優(yōu)化,因此非JIT優(yōu)化的MATLAB代碼可能比Python慢。而Javascript的V8引擎能進行JIT,因此又比Python快20倍。
  1. def pisum():
  2.    sum = 0.0
  3.    for j in xrange(1, 500):
  4.        sum = 0.0
  5.        for k in xrange(1, 10000):
  6.            sum += 1.0/(k*k)
  7.    return sum

  8. 運行速度比較
  9. Python  18.03
  10. matlab  1.08
  11. Javascript(V8) 0.75
復(fù)制代碼
對于pi_sum這樣的簡單的循環(huán)判斷程序,MATLAB可能做了JIT,因此比Python快18倍,而MATLAB的JIT略遜于Javascript(V。

但是我用Cython將pisum重新寫了一下:
  1. def pisum2():
  2.    cdef double sum
  3.    cdef int j, k
  4.    sum = 0.0
  5.    for j in range(1, 500):
  6.        sum = 0.0
  7.        for k in range(1, 10000):
  8.            sum += 1.0/(k*k)
  9.    return sum
復(fù)制代碼
它的運算速度提高了30倍。

論壇徽章:
0
29 [報告]
發(fā)表于 2012-05-31 18:56 |只看該作者
回復(fù) 18# pitonas

我個人覺得將來的發(fā)展也不太好預(yù)測,不過我個人覺得

1. 首先是將眾多的擴展庫移植到Python3

2. 提速,Guido在下面的視頻中提到,如果有將來辦法讓Python做一些靜態(tài)的分析,例如添加一些靜態(tài)的聲明,也許可以提高程序的運行速度。

http://pyvideo.org/video/956/keynote-guido-van-rossum

論壇徽章:
0
30 [報告]
發(fā)表于 2012-06-01 08:26 |只看該作者
回復(fù) 27# HyryStudio

感謝回答!
   
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP