※ 引述《Lordaeron (Terry)》之銘言:
: Python處理大數據的劣勢:
: 1. python線程有gil,通俗說就是多線程的時候只能在一個核上跑,
: 浪費了多核服務器。在一種常見的場景下是要命的:並發單元之
: 間有巨大的數據共享或者共用(例如大dict),多進程會導致內存吃緊
: ,多線程則解決不了數據共享的問題,單獨的寫一個進程之間負責維護
: 讀寫這個數據不僅效率不高而且麻煩
: 2. python執行效率不高,在處理大數據的時候,效率不高,這是真的,
: pypy(一個jit的python解釋器,可以理解成腳本語言加速執行的東西)能
: 夠提高很大的速度(可以快10倍),但是pypy不支持很多python經典的包,
: 例如numpy
: 3. 絕大部分的大公司,用java處理大數據不管是環境也好,積累也好,
: 都會好很多
這是我公司的解決方法, 用 Cython:
gil 可以用 Cython 克服, 注意喔 Cython 跟 C Python 不一樣. Cython 是讓你直接可以在 Python 裡面調用 C 的東西.