2010-08-19 26 views
5

Dường như tốc độ của trình liên kết C++ trong Visual Studio 2010 không cải thiện nhiều (khoảng 25% trong trường hợp của chúng tôi). Điều này có nghĩa là chúng tôi vẫn bị mắc kẹt với việc liên kết thời gian từ 30 giây đến hai phút. Chắc chắn có những người liên kết ở đó hoạt động tốt hơn? Có ai có kinh nghiệm với việc chuyển sang một trình liên kết khác hoặc thậm chí là một bộ công cụ hoàn chỉnh và thấy thời gian liên kết giảm xuống đáng kể không?Trình liên kết C++ nhanh nhất cho nền tảng Windows là gì?

Chúc mừng,

Sebastiaan

+2

Hai phút không có vẻ quá nhiều. Về mặt cộng, bạn có thể dành thời gian ghé thăm SO. – dalle

+0

Tôi đồng ý rằng hai phút không quá lớn của một vấn đề, nhưng nó lớn hơn một số lượng ma thuật của giây (mà tôi tin là khoảng mười giây), nơi bạn thực sự tự hỏi bạn có thể làm gì thay vì chờ đợi. Vì vậy, bạn mất tập trung với mỗi lần bạn liên kết. So sánh điều này với ví dụ TDD trong C#. Bởi vì thời gian liên kết là cẩu thả bạn ở lại trong dòng chảy. Nó sẽ là tuyệt vời nếu chúng ta có thể có những chu kỳ chặt chẽ với C + + là tốt. –

+2

Có lẽ bạn có thể thử sửa nhiều lỗi trong mỗi chu trình chỉnh sửa/biên dịch/gỡ lỗi? :-) – paxdiablo

Trả lời

8

Bạn cũng có thể tìm thấy trình liên kết nhanh hơn, trừ khi nhanh gấp mười lần và tôi liên kết ba mươi lần một giờ, tôi nghĩ mình thích sử dụng các công cụ mà Microsoft đã thử nghiệm hơn.

Tôi muốn có thời gian liên kết tương đối chậm hơn so với phần mềm có khả năng không ổn định.

Và giờ đây, trẻ em của bạn đã bị hư hỏng. Trong ngày của tôi, chúng tôi đã phải gửi thẻ 80 cột của chúng tôi đến trung tâm máy tính và nếu chúng tôi là may mắn, nhà điều hành sẽ nhận được thông báo vào thứ Năm tới và chúng tôi có thể bắt đầu gỡ lỗi từ đầu ra bản cứng :-)

+6

Tôi vui mừng những điều phát triển kể từ đó! ;) – ereOn

4

Có thể có, nhưng tôi tưởng tượng bạn muốn được nói chuyện cải tiến trong phạm vi của một vài điểm phần trăm. Bạn không thể tìm thấy bất cứ điều gì đó là magnitudes nhanh hơn (đó là, tôi giả sử, những gì bạn muốn).

Có nhiều cách để cải thiện thời gian liên kết của bạn. Bạn đã bật tùy chọn nào? Những thứ như "Enable Incremental Linking" và "Enable Liên kết cấp chức năng" có thể có hiệu ứng đáng kể khi liên kết hiệu suất (tốt, rõ ràng là lần đầu tiên bạn liên kết nó sẽ là liên kết "đầy đủ"), nhưng các liên kết tiếp theo có thể được thực hiện nhanh hơn nhiều các cài đặt này).

+0

Chúng tôi đã tắt tất cả các tùy chọn liên kết khó chịu đó, chúng tôi cố gắng liên kết dưới dạng 'bình thường' nhất có thể. :) Sự chậm trễ của trình liên kết Visual Studio là do tạo ra pdb. Nếu chúng ta bỏ/gỡ lỗi, liên kết là tốt đẹp và nhanh chóng. Tôi hy vọng rằng có một số liên kết ra khỏi đó mà thế hệ thông tin gỡ lỗi một cách thông minh hơn (song song). –

+2

@ Sebastiaan: Các tùy chọn liên kết đó không khó chịu theo bất kỳ tiêu chuẩn nào. – rwong

+0

Tắt tạo liên kết mã thời gian (LTCG) vì đây là tùy chọn chậm nhất. – rwong

5

Khi chúng tôi kiểm tra tốc độ liên kết, chúng tôi đã xác định tốc độ đĩa là yếu tố hạn chế nhất. Số lượng lưu lượng tệp rất lớn, đặc biệt là do thông tin gỡ lỗi (chỉ cần kiểm tra kích thước của pdb).

Đối với chúng tôi là giải pháp là:

  • cài đặt số tiền điên RAM, do đó rất nhiều lưu lượng tập tin có thể được lưu trữ (đi cho 4 GB, hoặc thậm chí nhiều hơn, nếu bạn đang ở trên 64b OS). Lưu ý: bạn có thể cần phải thay đổi một số thiết lập hệ thống để hệ thống có thể dành nhiều bộ nhớ hơn cho bộ nhớ cache
  • sử dụng rất nhanh ổ cứng (kết nối nhiều trong số họ là RAID có thể giúp nhiều hơn)

Chúng tôi có cũng thử nghiệm với SSD, nhưng SSD chúng tôi đã thử có hiệu suất ghi rất chậm, do đó hiệu ứng ròng là âm. Điều này có thể đã thay đổi trong khi đó, đặc biệt là với các ổ SSD tốt nhất. Bước đầu tiên tôi sẽ đề nghị khởi chạy Process Explorer (hoặc thậm chí Task Manager sẽ làm) và kiểm tra tải CPU và lưu lượng I/O trong giai đoạn liên kết, để bạn có thể xác minh bạn là CPU bị giới hạn, hoặc I/O bị hạn chế.

+1

Bạn đã thử đĩa RAM trên máy có RAM đầy đủ chưa? –

+0

Không, chúng tôi đã không. Tôi hy vọng bộ nhớ đệm thích hợp nên có gần như cùng một hiệu ứng (viết được thực hiện trong nền anyway), nhưng tôi có thể dễ dàng sai. Khi chúng tôi đã nâng cấp HW (RAM nhanh + RAM lớn), vấn đề không còn quan trọng đối với chúng tôi và chúng tôi không có động lực để thử nghiệm với bất kỳ cải tiến nào khác. – Suma

1

Xem các bản dựng "Unity". Điều này cải thiện đáng kể thời gian liên kết:

The benefits/disadvantages of unity builds?

+0

Cảm ơn lời khuyên, nhưng chúng tôi đã làm điều đó. Trước khi chúng tôi làm, thời gian liên kết là từ năm đến mười phút. –

2

Wow và tôi cảm thấy lo lắng khi thời gian liên kết của tôi là trên 10 giây.

Sử dụng đĩa SSD kiểu hiện đại. Tôi có 2 GB 60GB OCZ Vertex2 E Disks dưới dạng RAID 0 và IO không còn là vấn đề nữa.SSD hiện nay đủ tốt để sử dụng hàng ngày ngay cả khi viết nặng.

Và nhận được một vài gigabyte bộ nhớ. Không thể thấy bất kỳ lý do nào nữa để làm việc với ít hơn 8 GB RAM.

1

Bật liên kết gia tăng và liên kết sẽ không mất quá 1 giây.

Các vấn đề liên quan