2013-06-27 40 views
5

Tôi đang làm việc trên dự án Visual Studio MVC-4. Nó mất khoảng 2 phút để xây dựng các giải pháp, mà làm cho không có ý nghĩa. Nó là một giải pháp nhỏ với 5 dự án, với ít (ít hơn một vài trăm) tập tin trong mỗi dự án. Để so sánh, chúng tôi có một dự án có kích thước gấp 10-15 lần dự án này (biểu mẫu Web), được xây dựng trong vòng chưa đầy 3 giây trên máy tính của tôi.Ứng dụng MVC cực kỳ chậm để xây dựng

Tôi đã nghe nói rằng chúng tôi đã di chuyển từ MVC2 sang MVC4 và nhóm ghi nhớ giải pháp nhanh hơn nhiều trước khi di chuyển, nhưng họ không thể nhớ chính xác nó.

Nó không chỉ có trên máy tính của tôi, mà là phần còn lại của các máy tính trong nhóm. Tôi khá chắc chắn nó là trong tập tin giải pháp bằng cách nào đó.

Chúng tôi chỉ có 1 sự kiện xây dựng bài đăng và không có tác dụng để xóa sự kiện đó.

Bất kỳ ý tưởng nào về việc cần làm?

Những gì tôi đã cố gắng

Biểu tượng:

tôi đọc một bài ở đây trên SO, về việc thiết biểu tượng để chạy cục bộ thay vì máy chủ. Tôi đã làm điều đó:

enter image description here

Enable "chỉ mã của tôi" Đảm bảo chỉ mã của tôi là sửa lỗi:

enter image description here

Xóa thư mục tạm thời

Đã xóa tất cả các thư mục tạm thời khác nhau trên máy tính của tôi.

file Solution

Microsoft Visual Studio Solution File, Format Version 12.00 
# Visual Studio 2012 
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Data", "Data", "{C337490A-F7A8-4800-9BD3-668F5231AE2D}" 
EndProject 
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Web", "Web", "{58E3725E-75D2-4AB0-A693-D482152A28E5}" 
EndProject 
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Business", "Business", "{8999D8ED-77FD-42F4-A11A-F6F3B4224A41}" 
EndProject 
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{C1BC5D04-B71F-4E66-9C2F-352ED8A0AF84}" 
    ProjectSection(SolutionItems) = preProject 
     Saxo.Application.Publish.build = Saxo.Application.Publish.build 
    EndProjectSection 
EndProject 
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Database", "Database", "{8F63871C-600E-49E5-9858-D3023485CD06}" 
EndProject 
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Changescripts", "Changescripts", "{B3F72D6C-35EF-4D82-ACB9-5DCAE8F0BCA1}" 
    ProjectSection(SolutionItems) = preProject 
     30042013-DescriptionNotNull.sql = 30042013-DescriptionNotNull.sql 
     AlterContentTextsAddAllowHtml.txt = AlterContentTextsAddAllowHtml.txt 
     AlterInvoiceAccountsAddVismaSupplierId.sql = AlterInvoiceAccountsAddVismaSupplierId.sql 
     AlterProjectsAddCategorySelfPublisher.sql = AlterProjectsAddCategorySelfPublisher.sql 
    EndProjectSection 
EndProject 
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SOMENAME", "SOMENAME", "{903F385F-C309-4189-BE1C-1598BEF9FBE6}" 
EndProject 
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SOMENAME", "SOMENAME", "{797DCD60-C9C4-4AB4-98FE-2CBB02AA4A85}" 
EndProject 
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SOMENAME", "SOMENAME", "{BA8847A7-5EFB-4E1B-A689-4BBC4B6183D8}" 
EndProject 
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SOMENAME", "SOMENAME", "{EA172A15-6AE4-4358-8DB9-B75F6CC20458}" 
EndProject 
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{5E4C1C3C-AB57-49E6-8C7B-1E69CD3FBF67}" 
EndProject 
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SOMENAME", "SOMENAME", "{97B74D41-8B99-4782-9B64-60BA180ED667}" 
EndProject 
Global 
    GlobalSection(SolutionConfigurationPlatforms) = preSolution 
     Debug|Any CPU = Debug|Any CPU 
     Debug|Mixed Platforms = Debug|Mixed Platforms 
     Debug|x86 = Debug|x86 
     Release|Any CPU = Release|Any CPU 
     Release|Mixed Platforms = Release|Mixed Platforms 
     Release|x86 = Release|x86 
    EndGlobalSection 
    GlobalSection(ProjectConfigurationPlatforms) = postSolution 
     {903F385F-C309-4189-BE1C-1598BEF9FBE6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 
     {903F385F-C309-4189-BE1C-1598BEF9FBE6}.Debug|Any CPU.Build.0 = Debug|Any CPU 
     {903F385F-C309-4189-BE1C-1598BEF9FBE6}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU 
     {903F385F-C309-4189-BE1C-1598BEF9FBE6}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU 
     {903F385F-C309-4189-BE1C-1598BEF9FBE6}.Debug|x86.ActiveCfg = Debug|Any CPU 
     {903F385F-C309-4189-BE1C-1598BEF9FBE6}.Release|Any CPU.ActiveCfg = Release|Any CPU 
     {903F385F-C309-4189-BE1C-1598BEF9FBE6}.Release|Any CPU.Build.0 = Release|Any CPU 
     {903F385F-C309-4189-BE1C-1598BEF9FBE6}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU 
     {903F385F-C309-4189-BE1C-1598BEF9FBE6}.Release|Mixed Platforms.Build.0 = Release|Any CPU 
     {903F385F-C309-4189-BE1C-1598BEF9FBE6}.Release|x86.ActiveCfg = Release|Any CPU 
     {797DCD60-C9C4-4AB4-98FE-2CBB02AA4A85}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 
     {797DCD60-C9C4-4AB4-98FE-2CBB02AA4A85}.Debug|Any CPU.Build.0 = Debug|Any CPU 
     {797DCD60-C9C4-4AB4-98FE-2CBB02AA4A85}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU 
     {797DCD60-C9C4-4AB4-98FE-2CBB02AA4A85}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU 
     {797DCD60-C9C4-4AB4-98FE-2CBB02AA4A85}.Debug|x86.ActiveCfg = Debug|Any CPU 
     {797DCD60-C9C4-4AB4-98FE-2CBB02AA4A85}.Release|Any CPU.ActiveCfg = Release|Any CPU 
     {797DCD60-C9C4-4AB4-98FE-2CBB02AA4A85}.Release|Any CPU.Build.0 = Release|Any CPU 
     {797DCD60-C9C4-4AB4-98FE-2CBB02AA4A85}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU 
     {797DCD60-C9C4-4AB4-98FE-2CBB02AA4A85}.Release|Mixed Platforms.Build.0 = Release|Any CPU 
     {797DCD60-C9C4-4AB4-98FE-2CBB02AA4A85}.Release|x86.ActiveCfg = Release|Any CPU 
     {BA8847A7-5EFB-4E1B-A689-4BBC4B6183D8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 
     {BA8847A7-5EFB-4E1B-A689-4BBC4B6183D8}.Debug|Any CPU.Build.0 = Debug|Any CPU 
     {BA8847A7-5EFB-4E1B-A689-4BBC4B6183D8}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU 
     {BA8847A7-5EFB-4E1B-A689-4BBC4B6183D8}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU 
     {BA8847A7-5EFB-4E1B-A689-4BBC4B6183D8}.Debug|x86.ActiveCfg = Debug|Any CPU 
     {BA8847A7-5EFB-4E1B-A689-4BBC4B6183D8}.Release|Any CPU.ActiveCfg = Release|Any CPU 
     {BA8847A7-5EFB-4E1B-A689-4BBC4B6183D8}.Release|Any CPU.Build.0 = Release|Any CPU 
     {BA8847A7-5EFB-4E1B-A689-4BBC4B6183D8}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU 
     {BA8847A7-5EFB-4E1B-A689-4BBC4B6183D8}.Release|Mixed Platforms.Build.0 = Release|Any CPU 
     {BA8847A7-5EFB-4E1B-A689-4BBC4B6183D8}.Release|x86.ActiveCfg = Release|Any CPU 
     {EA172A15-6AE4-4358-8DB9-B75F6CC20458}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 
     {EA172A15-6AE4-4358-8DB9-B75F6CC20458}.Debug|Any CPU.Build.0 = Debug|Any CPU 
     {EA172A15-6AE4-4358-8DB9-B75F6CC20458}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU 
     {EA172A15-6AE4-4358-8DB9-B75F6CC20458}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU 
     {EA172A15-6AE4-4358-8DB9-B75F6CC20458}.Debug|x86.ActiveCfg = Debug|Any CPU 
     {EA172A15-6AE4-4358-8DB9-B75F6CC20458}.Release|Any CPU.ActiveCfg = Release|Any CPU 
     {EA172A15-6AE4-4358-8DB9-B75F6CC20458}.Release|Any CPU.Build.0 = Release|Any CPU 
     {EA172A15-6AE4-4358-8DB9-B75F6CC20458}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU 
     {EA172A15-6AE4-4358-8DB9-B75F6CC20458}.Release|Mixed Platforms.Build.0 = Release|Any CPU 
     {EA172A15-6AE4-4358-8DB9-B75F6CC20458}.Release|x86.ActiveCfg = Release|Any CPU 
     {97B74D41-8B99-4782-9B64-60BA180ED667}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 
     {97B74D41-8B99-4782-9B64-60BA180ED667}.Debug|Any CPU.Build.0 = Debug|Any CPU 
     {97B74D41-8B99-4782-9B64-60BA180ED667}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU 
     {97B74D41-8B99-4782-9B64-60BA180ED667}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU 
     {97B74D41-8B99-4782-9B64-60BA180ED667}.Debug|x86.ActiveCfg = Debug|Any CPU 
     {97B74D41-8B99-4782-9B64-60BA180ED667}.Release|Any CPU.ActiveCfg = Release|Any CPU 
     {97B74D41-8B99-4782-9B64-60BA180ED667}.Release|Any CPU.Build.0 = Release|Any CPU 
     {97B74D41-8B99-4782-9B64-60BA180ED667}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU 
     {97B74D41-8B99-4782-9B64-60BA180ED667}.Release|Mixed Platforms.Build.0 = Release|Any CPU 
     {97B74D41-8B99-4782-9B64-60BA180ED667}.Release|x86.ActiveCfg = Release|Any CPU 
    EndGlobalSection 
    GlobalSection(SolutionProperties) = preSolution 
     HideSolutionNode = FALSE 
    EndGlobalSection 
    GlobalSection(NestedProjects) = preSolution 
     {BA8847A7-5EFB-4E1B-A689-4BBC4B6183D8} = {C337490A-F7A8-4800-9BD3-668F5231AE2D} 
     {903F385F-C309-4189-BE1C-1598BEF9FBE6} = {58E3725E-75D2-4AB0-A693-D482152A28E5} 
     {797DCD60-C9C4-4AB4-98FE-2CBB02AA4A85} = {8999D8ED-77FD-42F4-A11A-F6F3B4224A41} 
     {EA172A15-6AE4-4358-8DB9-B75F6CC20458} = {8999D8ED-77FD-42F4-A11A-F6F3B4224A41} 
     {B3F72D6C-35EF-4D82-ACB9-5DCAE8F0BCA1} = {8F63871C-600E-49E5-9858-D3023485CD06} 
     {97B74D41-8B99-4782-9B64-60BA180ED667} = {5E4C1C3C-AB57-49E6-8C7B-1E69CD3FBF67} 
    EndGlobalSection 
EndGlobal 

Process dõi

tôi đã chạy màn hình quá trình, chỉ nhìn vào cnc.exe. Đây là kết quả của tôi:

Có vẻ như các bản ghi sau chạy lại, lặp đi lặp lại.

enter image description here

+0

Bạn có nhiều thư viện tĩnh (cho C#, netmodules) không? Đó là những gì làm chậm quá trình xây dựng trên hệ thống của tôi bởi rất nhiều – SinisterMJ

+0

Rất ít. Log4net, iTextsharp, GhostscriptSharp - xung quanh nó. Dự án khác của chúng tôi có 10 lần số lượng thư viện :-) –

+0

Nó thực sự phụ thuộc vào Thư viện. Tôi không biết những người và phạm vi của họ, nhưng tôi biết ví dụ rằng tôi có cho một C + + một thư viện bên ngoài duy nhất - fftw - làm tăng thời gian biên dịch từ 8 giây đến gần 2 phút. Vì vậy, tôi sẽ điều tra về điều đó. – SinisterMJ

Trả lời

7

Một lý do có thể khiến thời gian biên dịch của bạn quá dài là bạn đã đặt <MvcBuildViews> thành true, sẽ biên dịch số lần xem của bạn và cảnh báo bạn về mọi lỗi cú pháp trong chế độ xem của bạn. Bởi vì bạn có thể có một số lượng lớn lượt xem, quá trình này có thể kéo dài thời gian xây dựng của bạn đáng kể (phút so với giây). Here is a link to a site sẽ giải thích cách tắt/bật thuộc tính MvcBuildViews.Trong trường hợp trang web đi xuống, về cơ bản bạn thêm dòng sau vào tập tin giải pháp của bạn:

Để Enable

<MvcBuildViews>true</MvcBuildViews> 

Để Disable

<MvcBuildViews>false</MvcBuildViews> 

Tuy nhiên (phê phán khăng khăng đến) Tôi không đồng ý với anh ấy khi bạn nên sử dụng tính năng này. Ông nói rằng bạn nên có thuộc tính này được kích hoạt chỉ cho phát hành/sản xuất trong khi tôi nghĩ rằng bạn chỉ nên có nó được kích hoạt cho cấu hình gỡ lỗi. Hầu hết các nhà phát triển sẽ kiểm tra đầy đủ các ứng dụng web của họ trong Debug và sau đó chỉ sau đó chuyển sang Release và push. Tại sao một người không muốn có một thời gian kiểm tra biên dịch trong chế độ gỡ lỗi khi đó là những gì bạn đang làm ... gỡ lỗi và kiểm tra lỗi/lỗi?

+1

Chỉ muốn quay lại và nói lời cảm ơn. Đã có cùng một vấn đề chính xác với dự án của chúng tôi và đây là giải pháp. –

+0

Điều này thêm một tên lửa vào tàu vũ trụ xây dựng của tôi. –

8

Bật chế độ tiết kiệm chi tiết. Chuyển đến Công cụ -> Tùy chọn -> Dự án và Giải pháp -> Xây dựng và Chạy Đặt độ dài của MS Build thành Chẩn đoán. Bạn sẽ thấy những gì đang mất thời gian.

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