Vì vậy, tôi đang xây dựng một ứng dụng WPF và đã triển khai thử nghiệm ngày hôm nay và thấy rằng nó hoạt động kém. Tôi đã rất ngạc nhiên, vì chúng tôi thực sự không làm nhiều việc theo cách hiệu ứng hình ảnh hoặc hoạt ảnh.WPF: Cải thiện hiệu suất để chạy trên các máy tính cũ hơn
Tôi đã triển khai trên hai máy: nhanh nhất và chậm nhất cần chạy ứng dụng (máy tính chậm nhất có Intel Celeron 1.80GHz với RAM 2GB). Ứng dụng chạy khá tốt trên máy nhanh hơn, nhưng bị thay đổi trên máy chậm hơn. Và khi tôi nói "choppy", tôi có nghĩa là con trỏ nhảy ngay cả khi chỉ truyền nó qua bất kỳ cửa sổ đang mở nào của ứng dụng đã tập trung.
Tôi đã mở cửa sổ Trình quản lý tác vụ và có thể thấy rằng mức sử dụng CPU tăng lên bất cứ khi nào ứng dụng tập trung và con trỏ di chuyển qua nó. Nếu tôi đã tập trung vào một cái khác (ví dụ: Excel), mức sử dụng CPU sẽ giảm xuống sau một giây. Điều này xảy ra trên cả hai máy, nhưng sự xáo trộn chỉ đáng chú ý trên máy chậm hơn. Tôi đã rất hạn chế thời gian để tinker trên các máy triển khai, do đó, đã không làm rất nhiều thử nghiệm chi tiết.
Ứng dụng chạy tốt trên máy phát triển của tôi, nhưng tôi cũng thấy CPU tăng lên đến 10% ở đó, chỉ cần chạy con trỏ qua cửa sổ.
Tôi đã tải xuống công cụ hiệu suất WPF từ MS và đã được tinkering với nó (trên máy dev của tôi). Các tài liệu nói điều này về "Frame Rate" số liệu trong công cụ đục:
Đối với các ứng dụng mà không cần hình ảnh động, giá trị này nên gần 0.
các ứng dụng không làm bất kỳ hình ảnh động nặng, nhưng tốc độ khung hình vẫn gần 50 khi con trỏ ở trên bất kỳ cửa sổ nào. Các màn hình tôi đã thử nghiệm có tiêu đề cột trong một lưới "đánh dấu" và các nút thay đổi màu sắc và giao diện khi cuộn qua. Ngay cả việc di chuyển chuột trên các vùng trống của cửa sổ cũng làm cho tốc độ khung hình và mức sử dụng CPU giống nhau (dường như không liên quan đến các hoạt ảnh nhỏ này).
(Ngoài ra, tôi không thể tìm ra cách nhận bất kỳ thứ gì ngoài hai công cụ mặc định - Perforator và Visual Profiler - được cài đặt vào công cụ hiệu suất WPF. Đó có thể là câu hỏi riêng).
Tôi cũng có công cụ lược tả của Redgate, nhưng tôi không chắc liệu công cụ có thể làm sáng tỏ hiệu suất hiển thị hay không.
Vì vậy, tôi nhận ra đây không phải là điều dễ dàng để khắc phục sự cố mà không có chi tiết cụ thể hoặc mã mẫu (mà tôi không thể đăng). Câu hỏi của tôi là:
- một số điều tổng quát để tìm cho (hoặc tránh) trong mã để cải thiện hiệu suất là gì?
- Tôi có thể thực hiện các bước nào bằng cách sử dụng công cụ hiệu suất WPF để thu hẹp sự cố ?
- Thông số kỹ thuật của PC được liệt kê ở trên (Intel Celeron 1.80GHz với RAM 2GB) có quá chậm để chạy ngay cả ứng dụng WPF vani không?