2008-09-10 51 views
6

Tôi đang chạy Visual Studio 2008 với khung công cụ kiểm tra MS cực kỳ ác mộng. Rắc rối là nó gửi CPU của tôi đến 100% (cũng 25% trên một quad-core).Tại sao Visual Studio không thể chạy trên nhiều lõi? CPU ở 25%

Câu hỏi của tôi là tại sao Visual Studio không thể chạy trên nhiều lõi? Chắc chắn M $ phải có một xử lý đủ trên luồng để có được điều này để làm việc.

Trả lời

10

Tôi có VS2008 chạy trên tất cả 4 CPU. Chỉ cần đặt cờ biến/dự án môi trường này.

/MP

(Nó có thể được thiết lập trong C/C++ Cài đặt, nâng cao Trong thiết lập dự án.)

Edit: Lá cờ MP cũng có thể chấp nhận một con số, ví dụ/MP2 có nghĩa là nó sẽ chỉ chạy trên 2 lõi. Để nó như là chỉ/MP có nghĩa là nó sẽ chạy trên số tiền tối đa của lõi.

Chỉnh sửa2: Cờ MP có thể chỉ dành cho trình biên dịch.

+1

Điều đó phù hợp với mọi thứ? Điều duy nhất tôi biết rằng nó hoạt động cho là xây dựng, ít nhất đó là những gì nó hoạt động cho theo MS. –

+2

Điều này sẽ chỉ hoạt động đối với các Dự án C/C++. Nó không có tùy chọn cho C#. –

+1

Hơn nữa, nó sẽ chỉ tạo ra sự khác biệt nếu giải pháp của bạn có nhiều dự án hoặc, có thể, xây dựng cấu hình. –

2

Chúng tôi cũng đã thêm nhiều hỗ trợ cốt lõi để thực hiện xây dựng đa luồng trên dòng lệnh cho những người bạn có nhiều dự án và thời gian xây dựng lâu dài. Việc kích hoạt hỗ trợ đa lõi chỉ đòi hỏi một vài thuộc tính mới và MSBuild quản lý tất cả công việc để lên lịch các dự án hiệu quả và hiệu quả. Nhóm MSBuild đã thử nghiệm khả năng này để mở rộng quy mô bằng cách xây dựng một số dự án trên một máy tính 64-CPU.

đó là từ somasegar blog

Vì vậy, họ loại bắt đầu làm việc đó, cũng ít nhất là trong xây dựng.

0

Các/MP cờ chỉ dành cho xây dựng, chúng tôi ít nhất nó là theo này msdn

Bây giờ tôi rất thích là sai lầm về nó, nhưng im khá chắc chắn của nó chỉ dành riêng cho xây dựng. Mà tất nhiên vẫn còn rất hữu ích.

0

Tôi chắc chắn nó rất khó. Rất lớn hiện có GUI-nặng không có luồng mã cơ sở để đa luồng. Âm thanh như một chiếc 10 với tôi.

Nhưng dường như sử dụng nhiều lõi với tôi. Các Intellesense có vẻ ren. Hệ thống xây dựng có xây dựng đa dự án và xây dựng nhiều tập tin C++.

Bạn gặp sự cố với các công cụ này âm thanh sâu hơn một chút thì chúng sử dụng CPU của bạn tốt đến mức nào.

6

Bạn có thể yêu cầu VS biên dịch nhiều dự án song song cũng như biên dịch song song (!?) Trong một dự án.

Công cụ> Tùy chọn> Dự án và Giải pháp> số lượng tối đa các dự án song song được xây dựng.

Điều này cũng sẽ tạo C++ và C# song song!

3

Bây giờ Visual Studio 2010 đã được phát hành cho một chút, hãy xem xét việc nâng cấp lên tận dụng các parallelTestCount thuộc tính trong tập tin .testsettings MSTest, như mô tả ở How to: Run Unit Tests Faster Using a Computer with Multiple CPUs or Cores.

Có một vài hạn chế, chẳng hạn như:

  1. kiểm tra đơn vị Chỉ đơn giản được hỗ trợ (ví dụ: không bao gồm mã kiểm tra giao diện người dùng và kiểm tra ASP.NET-lưu trữ)
  2. thử nghiệm phải được thread-safe (tất cả kiểm tra được chạy trong quá trình tương tự)
  3. Bạn không thể thu thập mã số bảo hiểm (trong số dữ liệu khác & chẩn đoán) cùng một lúc

Ví dụ, sử dụng nghĩa tự động dò tìm (mặc định là):

<?xml version="1.0" encoding="UTF-8"?> 
<TestSettings 
    name="Release" 
    id="{GUID}" 
    xmlns="http://microsoft.com/schemas/VisualStudio/TeamTest/2010"> 
    <Description> 
    These are default test settings for a local test run. 
    </Description> 
    <Execution parallelTestCount="0"> 
    (...) 
    </Execution> 
</TestSettings> 

Một vài blog đã lưu ý rằng bạn có thể phải đóng và mở lại dự án của bạn cho Visual Studio để nhận thấy bạn đã thêm/thay đổi thuộc tính đó. Ngoài ra, nếu bạn chỉnh sửa tệp cài đặt thử bằng GUI, có thể bạn sẽ phải thêm lại thuộc tính parallelTestCount.

4

Trong trường hợp bất kỳ ai gặp phải câu hỏi cũ này, VS2012 đã giới thiệu bản dựng song song dưới dạng standard feature. Trích dẫn từ bài viết:

Visual Studio 2010 bao gồm tùy chọn cho "số dự án tối đa được xây dựng". Mặc dù không có dấu hiệu của bất kỳ hạn chế, tùy chọn IDE này chỉ làm việc cho các dự án C++. May mắn thay, hạn chế này không còn áp dụng cho Visual Studio 11. Thay vào đó, hiện tại có hỗ trợ đầy đủ để xây dựng song song bằng các ngôn ngữ khác. Để xem điều này, hãy chạy một bản sao của Process Explorer cùng một lúc với một giải pháp với nhiều dự án đang được xây dựng. Bạn sẽ thấy nhiều phiên bản MSBuild được tạo - nhiều như được chỉ định trong "số tối đa các bản dựng dự án song song".

0

Đối với Visual Studio 2010 Chuyển đến Công cụ> Tùy chọn> Dự án & Giải pháp> Xây dựng và chạy.

Sau đó, bạn sẽ thấy một mục nhập để nhập số cho 'số lượng tối đa các bản dựng dự án song song'; Máy tính của tôi có một CPU i7-3770, Core Quad với HyperThreading, vì vậy nó được thiết lập để 8.

Để biết thông tin về các phiên bản khác nhau của Visual Studio đi đây và chọn phiên bản của bạn: https://msdn.microsoft.com/en-us/library/cyhcc7zc(v=vs.100).aspx

ví dụ cho Visual Studio 2010 thuộc tính này chỉ ảnh hưởng đến bản dựng C++:

Chỉ định số lượng tối đa các dự án Visual C++ có thể xây dựng cùng một lúc. Để tối ưu hóa quá trình xây dựng, số lượng tối đa các dự án xây dựng song song được tự động đặt thành số CPU của máy tính của bạn. Tối đa là 32.

Nhưng đối với Visual Studio nó cho C++ và C#:

số lượng tối đa của dự án song song xây dựng Chỉ định số lượng tối đa của Visual C++ và Visual dự án C# mà có thể xây dựng cùng một lúc. Để tối ưu hóa quá trình xây dựng, số lượng tối đa các dự án xây dựng song song được tự động đặt thành số CPU của máy tính của bạn. Tối đa là 32.

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