2009-12-04 20 views
5

Chúng tôi có một ứng dụng tạo ra khoảng 100 hoạt ảnh khi chạy và tất cả đều được thêm vào một bảng phân cảnh và sau đó phát. Vấn đề là hoạt hình cực kỳ chậm. Các đối tượng đang được hoạt hình là hình dạng và splines và một số lượng tốt của tính toán được thực hiện trong backend để tạo ra các splines tùy chỉnh. Máy tính đang chạy là một lõi tứ với một card đồ họa tốt.Làm cách nào để cải thiện hiệu suất hoạt ảnh WPF của chúng tôi (100 trong số đó)?

Bất kỳ đề xuất nào về cách chúng tôi có thể khắc phục vấn đề này? Chúng ta có cần phân chia các hoạt ảnh thành nhiều bảng phân cảnh hoặc hoạt ảnh trên các canvas khác nhau không?

Cảm ơn bạn

+0

phiên bản hệ điều hành nào? Có bao nhiêu phần tử giao diện người dùng đang hoạt ảnh? –

+0

Hoạt động của nó trong các cửa sổ 7. Trong mỗi hoạt ảnh chỉ có một đối tượng là hoạt ảnh nhưng có khoảng 100 hoạt ảnh trong bảng phân cảnh. – user180812

+0

Hoạt ảnh chỉ đơn thuần thay đổi vị trí của các đối tượng hay nó cũng liên quan đến việc thay đổi kích thước/hình dạng? Nếu lần đầu tiên sau đó nó sẽ có thể animate rằng nhiều đối tượng. Nếu sau đó bạn đưa cho trình kết xuất một lượng lớn tính toán và do đó làm chậm hiệu suất. –

Trả lời

2

Hơi khó để biết điều gì làm chậm hoạt ảnh mà không thấy hoạt ảnh và mã. Nhưng tôi sẽ cho bạn những điểm chung có thể giúp cải thiện chúng.

  1. Chuyển tính toán của bạn thành chuỗi khác nhau, nếu có tính toán rất nặng. Chủ đề điều phối là bận rộn làm quản lý giao diện người dùng của bạn vì vậy nếu bạn đặt tất cả mọi thứ vào một chủ đề mà chắc chắn sẽ làm chậm mọi thứ.
  2. Tái sử dụng splines, hình dạng của bạn vv, điều này chắc chắn sẽ giúp bạn bởi vì bạn cũng sẽ miễn phí ứng dụng của bạn từ thói quen thu gom rác tốn kém. Infact trước khi bắt đầu hoạt hình, hiển thị một số hình ảnh động khác nhau như đồng hồ vv để tạo ra tất cả các đối tượng cần thiết trong đầu.
  3. Khám phá các tùy chọn bộ nhớ cache bitmap và cố gắng triển khai chúng.
Các vấn đề liên quan