2013-04-30 37 views
10

Tôi đã viết một ứng dụng đơn giản .net WPF (chỉ chứa 2 cửa sổ nhỏ), nhưng khởi chạy của nó quá chậm - khoảng 10-20 giây!C# WPF Khởi động ứng dụng rất chậm

Profiler nói:

  • Main->RunInternal (56%)
  • Main->RunInternal->ctor->LoadBaml (32%)

phần lớn nhất của thời gian tải ứng dụng - là cơ thể của Main->RunInternal chức năng, isn này' t chức năng của tôi và tôi không biết những gì họ làm. Thời gian thực hiện của chúng có thể được tối ưu hóa không?

Tải đánh dấu Baml phải mất 32% mọi thời gian, nhưng chương trình của tôi chỉ có 3 tệp XAML và chúng chứa ít hơn 100 dòng mã. Tại sao hành động này mất quá nhiều thời gian?

Trước khi hỏi tôi đã đọc và cố gắng những thủ thuật, nhưng họ không giúp tôi:

Vì vậy, làm thế nào tôi có thể tăng tốc độ thời gian bắt đầu ứng dụng của tôi?

Cảm ơn.

PS. Tôi đã thử nghiệm chương trình này trên hai máy tính tương tự và kết quả là như nhau.

+1

Tối ưu hóa hiệu suất không thực sự là điều bạn có thể làm một cách khách quan mà không có ngữ cảnh thực sự. Trừ khi bạn cung cấp một số mã, tôi e rằng không có nhiều người có thể giúp bạn. – Sisyphe

+1

Có lỗi liên kết nào không? Chúng có thể làm chậm ứng dụng của bạn một cách đáng kể. –

+0

Không có bất kỳ lỗi và cảnh báo ràng buộc nào ... –

Trả lời

3

Xem bài viết được đề cập trong các nhận xét ở trên.

Tôi cho rằng đó là 8, (Authenticode), nó phụ thuộc vào những gì bạn đang tham khảo assembly

+2

Tôi đã thử nghiệm như được đề xuất sau itme 8 trong bài viết được đề cập, nó làm giảm thời gian khởi động ứng dụng của tôi từ 16 -20 giây đến 3 giây. – Felix

0

Tôi có cùng một vấn đề. Google với RunInternal không cho tôi gì cả.

Sau đó tôi đã cố gắng sao lưu các mã trước đó của mình và xóa các tập hợp và tệp cho đến khi chỉ còn lại một cửa sổ.

Sau đó, nó hoạt động - thời gian khởi động được rút ngắn từ 10 giây xuống còn 1 giây!

thời gian này, các hồ sơ cho thấy chỉ System.Windows.Application.Run() thay vì RunInternal

Nó rất lạ mà cho máy tính này, ngay cả sau khi tái nhập khẩu (chậm) phiên bản nghe trộm, nó đã làm việc chính xác! trong khi máy tính xách tay của tôi, mà không đi qua các sửa chữa ở trên vẫn khởi động chương trình cho 10 + giây.

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