ทำไมงูหลามจึงวิ่งค่อนข้างช้า


13

ฉันได้ทำการเปรียบเทียบ Pi กับโค้ดจำลองบางตัวเทียบกับแล็ปท็อปสองตัวที่ฉันมี รหัสของฉันมีแนวโน้มที่จะจุดลอยอย่างเข้มข้นเพื่อให้ฉันได้รับการใช้ Raspbian (ซึ่งจะเปิดออกจะมากได้เร็วขึ้น) เนื่องจากการสนับสนุนยากลอย ฉันมีรหัสง่าย ๆ เหมือนกันในหลาย ๆ ภาษา เห็นได้ชัดว่ารหัสหลามจะช้ากว่ารหัส C สิ่งที่ใช้แพลตฟอร์มฉัน แต่ใน Pi มันดูเหมือนจะเป็นค่อนข้างมากขึ้นช้าโดยปัจจัยรอบ 3. ทุกคนไม่ทราบว่าทำไมล่ามหลามมีแนวโน้มที่จะค่อนข้างช้าใน Pi และ นี่เป็นสิ่งที่น่าจะได้รับการแก้ไขหรือไม่

นี่คือการทดสอบ:

import random,math

def gibbs(N=50000,thin=1000):
    x=0
    y=0
    print "Iter  x  y"
    for i in range(N):
        for j in range(thin):
            x=random.gammavariate(3,1.0/(y*y+4))
            y=random.gauss(1.0/(x+1),1.0/math.sqrt(2*x+2))
        print i,x,y

gibbs()

จากบล็อกนี้โพสต์เกี่ยวกับการทดสอบ


2
การโปรโมตตนเองนั้นใช้ได้ (ภายในเหตุผล) แต่ลิงก์บล็อกทั้งหมดของคุณที่เพิ่มในคำถามคือรหัสดังนั้นฉันจึงย้ายมาที่นี่แทน
Jivings

2
อืม, มันยังมีรายละเอียดและการกำหนดเวลาและพื้นหลังที่เป็นประโยชน์อื่น ๆ ซึ่งยืนยันว่าไพ ธ อนนั้นช้ากว่าสัมพันธ์กับ C บน Pi มากกว่าบนเครื่อง Linux ที่ใช้ Intel ซึ่งเป็นประเด็นคำถาม ...
Darren Wilkinson

2
ฉันอ่านโพสต์ทั้งหมดฉันไม่คิดว่าข้อมูลนี้มีส่วนเกี่ยวข้องกับคำถามอย่างไม่น่าเชื่อ และขอให้ทุกคนอ่านหน้าข้อมูลก่อนที่พวกเขาจะสามารถตอบคำถามของคุณได้คุณจะไม่ได้รับคำตอบมากมาย โปรแกรมเมอร์มีความหมายขี้เกียจ เราต้องการข้อมูลทั้งหมดในการย่อยง่าย :)
Jivings

8
นั่นเป็นการตัดสินใจที่เรียกได้ว่าฉันสบายดีเพราะฉันเป็นคนง่ายๆ ... แต่ฉันกังวลเล็กน้อยว่าการแก้ไขอย่างกระตือรือร้นของคำถามเกือบทุกเรื่องที่โพสต์บนไซต์นี้มีแนวโน้มที่จะขัดขวางผู้คน จากการเข้าร่วม ฉันรู้ว่ามันทำด้วยความตั้งใจดีที่สุด แต่คุณรู้ว่าสิ่งที่พวกเขาพูดเกี่ยวกับถนนสู่นรก ... ฉันคิดว่ามันเป็นสิ่งที่พวกคุณทุกคนที่ใช้คำถามมากควรจะใช้เวลาคิดและพูดคุยกัน มันจะเป็นความอัปยศจริงหากเว็บไซต์นี้ไม่ได้ถอดเพราะการกระทำของบุคคลที่มีเจตนาดี แต่เข้าใจผิด
Darren Wilkinson

1
คำถามที่งี่เง่า ... คุณใช้ไพ ธ อนรุ่นเดียวกันทั้งสองข้างของสมการหรือไม่? ฉันคาดหวังกับฮาร์ดแวร์เดียวกัน python3 จะรันโค้ดเดียวกันเร็วกว่า python2 เพราะ range ใน python3 เป็นตัววนซ้ำและบน python2 จะสร้างรายการที่มีประสิทธิภาพน้อยกว่า (ใช้ xrange บน python2) ... ดูตัวอย่างstackoverflow com / คำถาม / 94935 / …
Foon

คำตอบ:


7

ฉันเดาว่าล่าม Python นั้นไม่เหมาะสำหรับ ARM Python อาจได้รับการปรับให้เหมาะกับแพลตฟอร์มอื่น ๆ จากประสบการณ์ของฉันนี่เป็นเรื่องจริงสำหรับซอฟต์แวร์อย่าง OpenSSH ดังนั้นฉันคิดว่ามันคล้ายกับ Python


2

Python อาจได้รับผลกระทบจากการไม่มี cpu cache ฉันไม่แน่ใจว่าคุณสามารถวัดได้อย่างง่ายดาย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.