CPU หรือ RAM สำคัญกว่าอะไรสำหรับการรวบรวมซอฟต์แวร์ขนาดใหญ่เช่น bootstrapping gcc


11

ฉันกำลังมองหาซื้อคอมพิวเตอร์เครื่องใหม่ในไม่ช้าและฉันต้องการเครื่องจักรเพื่อประสิทธิภาพที่ดีที่สุดสำหรับการรวบรวมเวลาที่รวดเร็ว

ดังนั้นฉันควรสนใจซื้อ CPU แบบ quad-core ที่มี GHz สูงสุดที่ฉันสามารถจ่ายได้หรือควรลงทุนใน RAM ความเร็วสูงแทน

คำแนะนำของคุณสำหรับประเภทของ RAM ที่ฉันควรจะไปคืออะไร?

ประสิทธิภาพของกราฟิกนั้นไม่สำคัญเท่ากับการรวบรวมซอฟต์แวร์และการจำลองทางคณิตศาสตร์

คำตอบ:


8

ฉันจะไม่พูด แต่ได้รับอย่างรวดเร็วฮาร์ดไดรฟ์ SSD แน่นอนว่าคุณต้องมี CPU และ RAM ที่เหมาะสมเช่นกัน แต่ใช่ ...


2
ดีฉันไม่ได้รับ SSD แทนผมได้ 32GB of RAM และทุกอย่างที่รวบรวมในแรมบน tmpfs .... ได้เร็วขึ้นกว่า SSD =)
Dima

1
นั่นเป็นความคิดเดียวกัน: p
Svish

2
ฉันไม่เห็นด้วย. ฉันได้ไดรฟ์ SSD สำหรับแล็ปท็อปของฉันและความเร็วในการรวบรวมแตกต่างกันเล็กน้อย ในอีกทางหนึ่งการรับคอมพิวเตอร์เครื่องใหม่ที่มีความเร็ว CPU เกือบสามเท่าและมีเพียง 4GB vs 6GB บนเครื่อง SSD ทำให้การรวบรวมเร็วขึ้นเกือบ 3 เท่า anandtech.com/show/2829/25พบว่าไม่มีการปรับปรุงความเร็วคอมไพเลอร์ที่เห็นได้ชัดเจนด้วย SSD ในขณะที่blog.hypercomplex.co.uk/index.php/2010/06/…พบว่ามีการปรับปรุง 23% ดูเหมือนว่าฉันมีเหตุผลว่าถ้าคุณมีหน่วยความจำเพียงพอการรวบรวมเกี่ยวข้องกับการใช้ดิสก์น้อยมาก
Chris Dragon

1
ความคิดอีกอย่างหนึ่งก็คือมีความเป็นไปได้ที่คอมไพเลอร์บางรายใช้ไฟล์ชั่วคราวจำนวนมากเพื่อรวบรวมมากกว่าหน่วยความจำซึ่งในกรณีนี้ SSD หรือ ramdisk จะช่วยได้มากที่สุด อย่างไรก็ตามฉันไม่คาดหวังว่าคอมไพเลอร์สมัยใหม่จะได้รับการออกแบบวิธีการนี้ในขณะที่หน่วยความจำมีราคาถูกและมีขนาดใหญ่และระบบจะจัดการเพจจิ้งไปยังดิสก์เมื่อหน่วยความจำเหลือน้อย การใช้ XCode 3.2.6 (อิงจาก gcc 3 หรือ 4) SSD มีประโยชน์เพียงเล็กน้อย
Chris Dragon

SSD สร้างความแตกต่างอย่างมากในโครงการ / โซลูชันขนาดใหญ่ที่ใช้การคัดลอก / ย้ายไฟล์อย่างหนัก ฉันไม่ได้ใช้สไตล์ tmpfs ของ RAM เป็นการส่วนตัว แต่ฉันเคยได้ยินเรื่องดีๆมาบ้าง สำหรับโครงการขนาดเล็กอาจเป็นเรื่องปกติ สำหรับคนที่ยิ่งใหญ่ มันอาจจะไม่เพียงพอ
kayleeFrye_onDeck

4

อาจเป็นไปได้ว่า RAM จะให้ผลที่ใหญ่กว่าสำหรับเจ้าชู้ การคอมไพล์โดยเฉพาะอย่างยิ่งแอพพลิเคชั่นที่มีขนาดใหญ่นั้นเป็น I / O ที่เข้มข้นมากและการมี RAM มากขึ้นทำให้คุณสามารถประหยัดเวลาในการเพจและจากดิสก์ได้มากขึ้น ซีพียูส่วนใหญ่ในปัจจุบันโดยเฉพาะอย่างยิ่งถ้าคุณใช้ quad-core ราคาถูกจะให้พลัง CPU มากมายสำหรับการคอมไพล์ของคุณ แต่การมี RAM จะช่วยให้ข้อมูลย้อนกลับไปมาได้

ในความคิดที่ 2 มันขึ้นอยู่กับแบบจำลองคณิตศาสตร์และกระบวนการสร้างของคุณ พวกมันขนานกันไหม ถ้าไม่เพิ่มคอร์มากขึ้นจะไม่ทำอะไรเลยเพื่อเร่งความเร็วแม้ว่าชิป Intel (Core i7) ใหม่จะค่อนข้างเร็วต่อหนึ่งคอร์


1
การคอมไพล์ต้องทำอย่างไรกับดิสก์
Arash

2

ฉันว่ารับโหลดและโหลดแรมและใช้ ramdisks สำหรับจัดเก็บชั่วคราว สิ่งนี้จะเพิ่มความเร็วในการรวบรวมอย่างมาก ซีพียูแบบมัลติคอร์ที่รวดเร็วก็ใช้ได้เช่นกัน แต่ฉันคิดว่าคุณจะได้รับประโยชน์จาก ram มากมาย ลองดูที่นี้บทความความคิดบางอย่าง นี่คือบางส่วนข้อมูลเพิ่มเติมและบางมากขึ้นที่นี่ ฉันคิดว่าการใช้ RAM จะเร็วกว่าการใช้ SSD แต่ฉันคิดผิด


2

สำหรับการคำนวณโปรเซสเซอร์ของคุณมีความสำคัญที่สุด

การรวบรวมจะเน้นทั้งโปรเซสเซอร์และ RAM ของคุณ

ฉันคิดว่าโซลูชันที่คุ้มค่าที่สุดของคุณคือการได้รับซีพียูที่ดีที่สุดที่คุณสามารถซื้อได้และควรเป็น Quad core ด้วย RAM ที่มีราคาถูกตามที่เป็นอยู่ (ตอนนี้ DDR3 ราคาถูกเป็น DDR2) คุณสามารถเสียบ RAM ได้มากเท่าที่คุณต้องการสำหรับเหรียญเล็ก ๆ (16 GB ของ DDR3 ในราคา $ 180 สำหรับผู้เล่นใหม่ ... ฉันรู้ว่า overkill แค่พยายามแสดงให้เห็นว่าราคาถูกแค่ไหน) ดังนั้นฉันจะลงทุนให้มากที่สุดเท่าที่จะทำได้ในซีพียูที่มีคุณภาพมากที่สุด


การใช้จ่ายเงินมากขึ้นเพื่อรับ CPU ที่เร็วขึ้นเป็นคำแนะนำที่ดี แต่ไม่ต้องใช้เงินมากขึ้นเพื่อให้ได้แกนมากขึ้น GCC ทำการรวบรวมทั้งหมดในเธรดเดียวดังนั้นจึงไม่เคยใช้มากกว่าหนึ่งคอร์
Isaac Rabinovitch

1
@Isaac ใช่ แต่ระบบการสร้างสามารถวางไข่งาน gcc หลาย ๆ งานพร้อมกันเช่นmakeด้วย-jตัวเลือก นอกจากนี้ฉันเชื่อว่า llvm สามารถหรือจะสามารถรวบรวมไฟล์เดียวโดยใช้หลายกระทู้
Ponkadoodle

@ Wallacoloo ตกลงบางครั้งคุณสามารถรับความเร็วพิเศษเล็กน้อยเมื่อคุณมีไฟล์ที่ขนานกันในกราฟพึ่งพา แต่ถึงกระนั้นฉันเชื่อว่าแกนพิเศษเป็นปัจจัยรองที่น่าสนใจเมื่อเร่งการสร้าง ยากที่จะบอกเนื่องจากคอร์เสริมเป็นคุณสมบัติมาตรฐานในซีพียูรุ่นใหม่ที่สามารถเร่งความเร็วได้เร็วขึ้นโดยการตอกบัตรได้เร็วขึ้น หากคุณต้องการแสดงให้เห็นว่าฉันผิดลองทำคอมไพล์ครั้งใหญ่ด้วยและไม่มี -j
Isaac Rabinovitch

2
@IsaacRabinovitch จริงบนฐานรหัสขนาดใหญ่มันเป็นเรื่องสำคัญมาก ในการรวบรวม codebase ของเราจะลดลงเกือบเป็นเส้นตรงด้วยdistcc( make -j8(ภายในเครื่อง) ถึง make -j30(กระจายผ่านเครือข่าย))
Alex

0

กราฟิกที่ดีก็สามารถช่วยได้เพราะการ์ดกราฟิกที่มี cpu อยู่นั้นสามารถลดโหลดของ cpu หลักได้ พลังของซีพียูน่าจะมีความสำคัญมากกว่า RAM แต่ทั้งคู่จะดีกว่าถ้าคุณจะดีกว่า


จุดดี - เฉพาะเมื่อกระบวนการสามารถใช้แกน CUDA ซึ่งส่วนใหญ่ทำไม่ได้
NoBugs

0

เนื่องจากข้อ จำกัด ทางกายภาพแกนตัวเองจะไม่ได้เร็วขึ้นทุกเวลาเร็ว ๆ นี้ดังนั้นถ้าคุณวางแผนที่จะลงทุนในซิลิกอนที่กำหนดเองใน cpu ที่เร็วขึ้นจะไม่แก้ปัญหาของคุณเว้นแต่ว่าการขนานจะทำให้เกิดความแตกต่าง ฉันรู้เพราะฉันมักจะรวบรวมระบบทั้งหมดของฉันและหลายครั้งที่ฉันไปดูเพื่อดูสถิติทรัพยากร ยิ่งไปกว่านั้นแม้ว่านักพัฒนาซอฟต์แวร์ต้องการเพิ่มความขนานมันบางครั้งก็เป็น chaleging ที่จะทำให้มันเป็นวิธีที่ดี การลงทุนกับซีพียูนั้นเป็นการดีที่จะเพิ่มประสิทธิภาพการให้บริการหรือถ้าคุณกำลังทำการคำนวณในขั้นแรกขึ้นอยู่กับข้อมูล แม้ว่ามันจะมีผลต่อพฤติกรรมการดำเนินการในภายหลัง; หากการรวบรวมของคุณเป็นไปตามรูปแบบเหล่านี้บางอย่างอาจเป็นการยากที่จะพูดคุย แต่เป็นกรณีพิเศษสำหรับกระบวนการสร้าง นั่นคือเหตุผลที่ตัวอย่างเช่นในการคำนวณแบบกราฟิกแกนเพิ่มเติมยังคงสร้างความแตกต่างบางอย่าง นอกเหนือจากนั้นทำสิ่งที่คุณสามารถทำได้เพื่อเพิ่ม I / O ให้มากที่สุดเท่าที่จะทำได้มันสามารถเกี่ยวข้องกับดิสก์แรมส์และมาเธอร์บอร์ด

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