Tôi có một ứng dụng winforms khá lớn và phức tạp. Trong một nỗ lực để giảm thời gian khởi động, tôi đã tạo trước các hội đồng tuần tự hóa bằng cách sử dụng tệp lô sau.Tại sao thời gian khởi động .NET của tôi tăng lên với các hội đồng tuần tự được tạo trước?
; delete any existing serialization assemblies
del *XmlSerializers.dll
; gen new serialization assemblies
for %%a in (*.dll) do sgen /assembly:%%a
; delete .deleted files (generated for assemblies which do not allow serialization)
del *.dll.deleted*
Tuy nhiên, thật ngạc nhiên, thời gian khởi động thực sự tăng từ 4,6 giây lên 6,1 giây - nhảy 1,5 giây. Điều này đúng cho dù đó là một khởi đầu lạnh hay ấm áp.
Vì vậy, câu hỏi:
- Tại sao ứng dụng của tôi bắt đầu chậm hơn với cụm serialization tại chỗ?
- Có cách nào để xem qua Perfmon hoặc một số công cụ khác khi ứng dụng đang tạo ra các hội đồng tuần tự hóa không?
- Tôi có tạo ra các bộ tuần tự hóa chính xác không?
trừ khi ai đó biết cách bật tô sáng cú pháp tệp hàng loạt, chúng tôi sẽ chỉ phải để nó là 'lang-none' . – Adam
Có bao nhiêu serializers bạn đang tạo .... nếu một số lớn .... có thể bạn có thể kết hợp chúng với ILMerge? Bạn đang chạy trên Windows 64bit? Bạn có thêm tài liệu tham khảo cho các DLL tuần tự hóa được đặt trước trong dự án của bạn không? –
Bạn có thể sử dụng tùy chọn/Loại để chỉ tạo mã tuần tự cho Loại sẽ được đăng ký .... thay vì tất cả các loại công khai trong tệp DLL của bạn. –