日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python haskell 使用对比_性能-为什么这个Haskell程序比等效的Python程序慢得多?

發布時間:2025/3/20 python 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python haskell 使用对比_性能-为什么这个Haskell程序比等效的Python程序慢得多? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作為編程挑戰的一部分,我需要從stdin讀取以空格分隔的整數序列(在一行上),并將這些整數的總和輸出到stdout。 所討論的序列可以包含多達10,000,000個整數。

我有兩種解決方案:一種是用Haskell(test.txt)編寫的,另一種是等效的用Python 2(foo.py)編寫的解決方案。 不幸的是,(已編譯的)Haskell程序始終比Python程序慢,并且我不知為何要解釋這兩個程序之間的性能差異。 請參閱下面的基準部分。 如果有的話,我本來希望Haskell占上風...

我究竟做錯了什么? 我該如何解決這一差異? 有加速我的Haskell代碼的簡便方法嗎?

(有關信息,我使用的是2010年中的Macbook Pro,配備8Gb RAM,GHC 7.8.4和Python 2.7.9。)

test.txt

main = print . sum =<< getIntList

getIntList :: IO [Int]

getIntList = fmap (map read . words) getLine

(與test.txt編譯)

test.txt

ns = map(int, raw_input().split())

print sum(ns)

基準測試

在下面,test.txt由一行由1000萬個以空格分隔的整數組成。

# Haskell

$ time ./foo < test.txt

1679257

real 0m36.704s

user 0m35.932s

sys 0m0.632s

# Python

$ time python foo.py < test.txt

1679257

real 0m7.916s

user 0m7.756s

sys 0m0.151s

總結

以上是生活随笔為你收集整理的python haskell 使用对比_性能-为什么这个Haskell程序比等效的Python程序慢得多?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。