Feedback Register: Hiểu rõ về vai trò và chức năng trong LabVIEW

Bài kiểm tra hiệu năng của Cory không mang nhiều ý nghĩa do tốc độ quá chậm, dẫn đến kết quả không hữu ích. Phần lớn thời gian được sử dụng để cập nhật các chỉ báo và kiểm tra thời gian đã trôi qua. Bản thân các VI “thời gian trôi qua” có thể chứa một vài thanh ghi dịch chuyển.

Bài kiểm tra đã được sửa đổi bằng cách:

  • Loại bỏ tất cả các chỉ báo bên trong vòng lặp.
  • Sử dụng bộ đếm đơn giản để xác định thời gian trôi qua.
  • Tắt chế độ gỡ lỗi.

Kết quả cho thấy, sau khi loại bỏ các yếu tố dư thừa, mã chạy nhanh hơn khoảng 200 lần. Sự khác biệt chủ yếu đến từ việc lập lịch trình luồng và vòng lặp nào chia sẻ CPU với luồng giao diện người dùng. Trong bài kiểm tra của Cory, thanh ghi dịch chuyển/nút feedback chỉ đóng góp một phần rất nhỏ vào tổng tốc độ. Vấn đề khác là cả hai chạy song song, nên hiệu suất sẽ khác nhau tùy thuộc vào số lượng lõi.

Bài kiểm tra của Ceger tốt hơn, ngoại trừ việc sử dụng các chuỗi xếp chồng.

Về mặt chức năng, thanh ghi dịch chuyển (shift register) và nút feedback không hoàn toàn giống nhau. Ví dụ, nút feedback (và các dây nối vòng tròn) có thể nằm hoàn toàn bên trong một case của cấu trúc case, trong khi thanh ghi dịch chuyển phải được nối qua tất cả các case khác. Trong các phiên bản LabVIEW mới hơn, còn có nút feedback “được khởi tạo toàn cục”, không yêu cầu vòng lặp. Không có thanh ghi dịch chuyển tương đương cho tính năng này. Những đặc điểm này khiến nút feedback được sử dụng ngày càng nhiều, giúp đơn giản hóa mã.

Thanh ghi dịch chuyển và nút feedback, mặc dù có chức năng tương tự trong việc lưu trữ và truyền dữ liệu giữa các lần lặp, nhưng lại có những khác biệt quan trọng trong cách triển khai và ứng dụng. Sự lựa chọn giữa hai phương pháp này phụ thuộc vào ngữ cảnh cụ thể của chương trình và yêu cầu về logic xử lý.

Comments

No comments yet. Why don’t you start the discussion?

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *