Tôi đang làm việc trên một giải pháp ASP.NET MVC có kích thước trung bình với Visual Studio 2010 và Resharper. Dự án rất nhanh khi tôi bắt đầu phát triển nó 1 1/2 năm trước, nhưng theo thời gian nó đã trở nên chậm hơn - không chỉ biên dịch, mà còn là thời gian cần để khởi tạo lại trang web. Vì tôi đang thực hành TDD và tái cấu trúc khá thường xuyên, tôi thường xuyên cần phải biên dịch lại một lần chạy thử nghiệm của tôi, vì vậy tôi đang tìm cách để giảm thiểu điều này nếu có thể.Tăng tốc biên dịch và kiểm tra đơn vị trong Visual Studio 2010/Resharper/ASP.NET MVC
Vấn đề một cách chi tiết
Tôi phải mất khoảng 20-25 giây từ khi bắt đầu để biên dịch lại dự án để có thể xem kết quả trong một trình duyệt web.
Chạy thử nghiệm đơn vị đơn lẻ (chỉ là một thử nghiệm đơn lẻ, không phải toàn bộ bộ) với nhân viên thử nghiệm Resharper cũng rất chậm (khoảng 15-20 giây). Đối với một số lý do lạ có vẻ như Resharper mất phần lớn thời gian khởi tạo chạy thử nghiệm và chỉ dành một phần rất nhỏ thực sự chạy thử nghiệm.
Những gì tôi đã làm:
- thay thế ổ cứng của tôi với một SSD (tác động rất lớn)
- Moved biên soạn ASP.NET và Windows dir thư mục Temp để SSD giống như (phần cứng) Ổ đĩa RAM (tác động lớn, nhưng trước đó là SSD)
- Vô hiệu hóa biên dịch tự động của một dự án mà tôi hiếm khi sửa đổi (Tác động nhỏ vì dự án đó vẫn còn nhỏ).
- Làm sạch các tham chiếu không cần thiết đối với .NET và thư viện của bên thứ ba (tác động rất nhỏ, nếu có)
- Một số thủ thuật ảo được thảo luận trong this blog post. (tác động rất nhỏ, nếu có).
Tuy nhiên, tôi vẫn bị mắc kẹt với số liệu (chậm?) Ở trên và tôi cảm thấy điều này đang làm tổn hại đến năng suất của tôi. Bây giờ tôi tự hỏi phải làm gì tiếp theo.
hệ thống hiện tại của tôi thiết lập:
- Core 2 Quad Q6600 CPU
- 4GB DDR2 800 RAM
- 120 GB SSD
- Windows 7 x64
- Visual Studio 2010 Ultimate với Resharper 5.5
số kỹ thuật giải pháp của tôi:
- 22,000 Ngành, nghề NET 4 C# Mã
- 3 dự án: Một ASP.NET MVC, một dự án thử nghiệm, một thư viện mục đích chung nhỏ được bao gồm bởi hai khác và đó Tôi không biên dịch trừ khi có điều gì đó thay đổi.
- 35 tham chiếu đến các thư viện khác (.NET framework và các công cụ mã nguồn mở)
- ~ 200 lần xem
- 850 Unit Tests
Bây giờ câu hỏi của tôi:
- Would nâng cấp RAM của tôi đến 8GB có thể cho tôi một tăng hiệu suất đáng kể ?
- Những số liệu này có bình thường không? Hoặc có lẽ điều này có thể là một vấn đề với giải pháp của tôi?
- Bạn sẽ thử làm gì tiếp theo (ngoài mua máy tính hoàn toàn mới)?
Cảm ơn,
Adrian
Edit: Một điều đặc biệt kỳ lạ là khi tôi nhấn nút "xây dựng giải pháp", Visual Studio dành khoảng 8 giây hiển thị cho tôi một biểu tượng chờ đợi cho đến khi nó thực sự bắt đầu biên dịch và cửa sổ biên dịch đang được cập nhật. IDE không có hiệu quả trong giai đoạn này. Đó là một phần tốt của thời gian biên dịch thực tế. Tôi tự hỏi Visual Studio đang làm gì trong giai đoạn này?
Có bao nhiêu dự án? Trạng thái phụ thuộc nội bộ của các dự án như thế nào? Nếu bạn chạy lại cùng một thử nghiệm thì nó có mất thời gian không? – Jaime
Bạn có thể dỡ bỏ bất kỳ dự án nào không? Điều này không bao gồm chúng từ quá trình biên dịch ... –
Tôi đã thiết lập tương tự với 6Gb RAM nhưng không có SSD. VS2010 là chậm chạp để tải lên và biên dịch - Tôi thấy rằng việc vô hiệu hóa ReSharper có một hiệu ứng rất tích cực. Thật không may, tôi đã đến để dựa vào nạng đặc biệt này ... er ... plug-in và đã quyết định rằng cơn đau có lẽ là giá trị nó trong trường hợp của tôi. – nerraga