CPU hoặc RAM quan trọng hơn để biên dịch phần mềm lớn, ví dụ như bootstrapping gcc là gì?


11

Tôi đang tìm mua một máy tính mới sớm và tôi muốn một chiếc máy có hiệu năng tốt nhất để có thời gian biên dịch nhanh.

Vì vậy, tôi nên quan tâm để có được CPU lõi tứ với tốc độ GHz cao nhất tôi có thể đủ khả năng, hay thay vào đó tôi nên đầu tư vào RAM tốc độ cao hơn?

Bạn nên dùng loại RAM nào?

Hiệu suất đồ họa không thành vấn đề, biên dịch vô số phần mềm và chạy mô phỏng toán học.

Câu trả lời:


8

Tôi cũng không nói. Thay vì có một ổ cứng SSD nhanh . Tất nhiên bạn cũng cần một CPU thích hợp và dung lượng RAM, nhưng vâng ...


2
Chà, tôi đã không nhận được SSD, thay vào đó tôi có 32GB RAM và biên dịch mọi thứ trong RAM trên tmpfs .... thậm chí còn nhanh hơn SSD =)
Dima

1
Chà, đó cũng là một ý tưởng tương tự: p
Svish

2
Tôi không đồng ý. Tôi có một ổ SSD cho máy tính xách tay của mình và nó có chút khác biệt về tốc độ biên dịch. Mặt khác, việc có được một máy tính mới với tốc độ CPU gần gấp ba và chỉ 4GB so với 6GB trên máy SSD khiến việc biên dịch nhanh gấp gần 3 lần. anandtech.com/show/2829/25 không tìm thấy sự cải thiện tốc độ trình biên dịch đáng chú ý nào với ổ SSD trong khi blog.hypercomplex.co.uk/index.php/2010/06/ trộm tìm thấy sự cải thiện 23%. Nó có vẻ hợp lý với tôi rằng nếu bạn có đủ bộ nhớ, việc biên dịch liên quan đến việc sử dụng đĩa rất ít.
Chris Dragon

1
Một suy nghĩ khác là có thể một số trình biên dịch sử dụng nhiều tệp tạm thời để biên dịch thay vì bộ nhớ, trong trường hợp đó, SSD hoặc ramdisk sẽ giúp ích nhiều nhất. Tuy nhiên, tôi không mong đợi các trình biên dịch hiện đại sẽ được thiết kế theo cách đó vì bây giờ bộ nhớ rẻ và lớn và hệ thống xử lý phân trang nó vào đĩa khi sắp hết. Sử dụng XCode 3.2.6 (dựa trên gcc 3 hoặc 4), SSD có rất ít lợi ích.
Chris Dragon

SSD tạo ra sự khác biệt đáng kể trên các dự án / giải pháp lớn sử dụng nhiều chức năng sao chép / di chuyển tệp. Cá nhân tôi chưa sử dụng kiểu RAM tmpfs, nhưng tôi đã nghe thấy những điều hay về nó. Đối với các dự án nhỏ hơn, nó có thể tốt. Đối với những người lớn? Nó có thể không đủ.
kayleeFrye_onDeck

4

Có lẽ RAM sẽ cung cấp cho bạn một tiếng nổ lớn hơn cho buck. Việc biên dịch, đặc biệt là các ứng dụng lớn, rất chuyên sâu I / O và có nhiều RAM hơn đồng nghĩa với việc bạn có thể tiết kiệm nhiều thời gian phân trang hơn và từ đĩa. Hầu hết các CPU ngày nay, đặc biệt là nếu bạn đi với lõi tứ giá rẻ, sẽ cung cấp nhiều năng lượng CPU cho quá trình biên dịch của bạn, nhưng có RAM sẽ giúp dữ liệu quay đi quay lại.

Trên suy nghĩ thứ 2, nó phụ thuộc vào mô phỏng toán học của bạn và xây dựng các quy trình. Chúng có song song không? Nếu không, việc thêm nhiều lõi sẽ không thực sự làm gì để tăng tốc, mặc dù các chip Intel mới (Core i7) khá nhanh trên cơ sở mỗi lõi.


1
biên dịch phải làm gì với đĩa?
Arash

2

Tôi muốn nói tải và tải RAM và sử dụng ramdisks để lưu trữ tạm thời. Điều này sẽ tăng đáng kể tốc độ biên dịch. Một CPU đa lõi nhanh cũng sẽ ổn, nhưng tôi nghĩ rằng bạn sẽ được hưởng lợi nhiều hơn từ nhiều ram. Hãy xem này bài viết cho một số ý tưởng. Dưới đây là một số thông tin và một số chi tiết ở đây . Tôi nghĩ rằng sử dụng RAM sẽ nhanh hơn sử dụng SSD, nhưng tôi có thể sai.


2

Đối với tính toán của bạn, bộ xử lý của bạn là rất quan trọng.

Việc biên dịch sẽ nhấn mạnh cả bộ xử lý và RAM của bạn.

Tôi nghĩ giải pháp hiệu quả nhất về chi phí của bạn sẽ là có được CPU tốt nhất bạn có thể đủ khả năng, và tốt nhất là lõi Quad. Với RAM rẻ như hiện tại (DDR3 bây giờ rẻ như DDR2), bạn có thể dễ dàng cắm vào RAM nhiều như bạn cần cho ít xu (16 GB DDR3 với giá 180 đô la trên newegg ... Tôi nhận ra rằng đó là quá mức cần thiết, chỉ cố gắng để chứng minh nó rẻ như thế nào). Vì vậy, tôi sẽ đầu tư càng nhiều càng tốt vào một CPU chất lượng nhất có thể.


Chi nhiều tiền hơn để có được CPU nhanh hơn là lời khuyên tốt. Nhưng không chi nhiều tiền hơn để có được nhiều lõi hơn. GCC thực hiện tất cả việc biên dịch của nó trong một luồng duy nhất, vì vậy nó không bao giờ sử dụng nhiều hơn một lõi.
Isaac Rabinovitch

1
@Isaac Có, nhưng hệ thống xây dựng thường có thể sinh ra nhiều công việc gcc cùng một lúc, ví dụ makevới -jtùy chọn. Ngoài ra, tôi tin rằng llvm có thể hoặc sẽ có thể biên dịch một tệp bằng cách sử dụng nhiều luồng.
Ponkadoodle

@Wallacoloo OK, đôi khi bạn có thể tăng thêm một chút tốc độ khi bạn có các tệp song song trong biểu đồ phụ thuộc. Tuy nhiên, tôi tin rằng các lõi bổ sung là một yếu tố khá nhỏ khi tăng tốc độ xây dựng. Khó có thể nói, kể từ lõi thêm là một tính năng tiêu chuẩn trong các CPU mới hơn mà làm điều tốc độ lên chỉ bằng cách clocking nhanh hơn. Nếu bạn muốn chứng minh rằng tôi sai, hãy thử thực hiện một biên dịch lớn có và không có -j.
Isaac Rabinovitch

2
@IsaacRabinovitch Trên thực tế trên cơ sở mã lớn, nó rất quan trọng . Trên thời gian biên dịch cơ sở mã của chúng tôi được giảm gần như tuyến tính với distcc( make -j8(cục bộ) tối đa make -j30(phân phối qua mạng))
Alex

0

Đồ họa tốt có thể giúp ích vì một card đồ họa có cpu trên đó có thể giảm tải cho cpu chính. Sức mạnh CPU có lẽ quan trọng hơn RAM, nhưng cả hai càng tốt thì bạn càng có lợi.


Điểm tốt - chỉ khi quá trình có thể sử dụng lõi CUDA, mà hầu hết không.
NoBugs

0

do những hạn chế về thể chất, bản thân các lõi sẽ không nhanh hơn bất cứ lúc nào sớm, vì vậy trừ khi bạn có kế hoạch chuyển sang đầu tư silicon tùy chỉnh vào cpu nhanh hơn sẽ không giải quyết được vấn đề của bạn trừ khi việc song song hóa thực sự sẽ tạo ra sự khác biệt nhưng cả hai phần mềm hầu như không vượt quá 4 lõi , Tôi biết điều đó bởi vì tôi rất thường xuyên biên dịch toàn bộ hệ thống của mình và nhiều lần tôi đi tìm để xem số liệu thống kê tài nguyên. Hơn nữa, ngay cả khi các nhà phát triển muốn tăng sự song song hóa, đôi khi nó vẫn được điều chỉnh để thực hiện theo cách tốt. Đầu tư vào cpu là tốt để tăng hiệu suất dịch vụ hoặc nếu bạn đang thực hiện tính toán trước tiên dựa trên dữ liệu; ngay cả khi nó sẽ ảnh hưởng đến hành vi thực hiện sau này; nếu các phần tổng hợp của bạn tuân theo một số trong các mẫu này thì có thể khó thảo luận hơn nhưng đó là một số trường hợp đặc biệt cho quá trình xây dựng; đó là lý do tại sao, trên máy tính đồ họa, nhiều lõi hơn vẫn tạo ra một số khác biệt. Khác sau đó làm những gì bạn có thể để tăng I / O nhiều nhất có thể, nó có thể liên quan đến đĩa, ram và bo mạch chủ

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.