Tối ưu hóa ứng dụng

Mỗi phép tính đều cần một thời gian tính toán nhất định. Điều này có thể gây ra vấn đề khi thực hiện các dự án rất lớn hoặc các hoạt động lớn hơn. Thời gian chu kỳ tổng thể có thể được hiển thị bằng cách chuyển đổi hệ thống giám sát ở góc trên bên phải.

Hãy lưu ý hàng đợi của thiết bị lưu trữ dữ liệu. Hàng đợi chỉ được sử dụng khi dữ liệu không còn được đọc và ghi đồng thời. Điều này đặc biệt rõ ràng trong các dự án lớn hoặc phần cứng sai. Hàng đợi không nên vượt quá 1% trong hoạt động bình thường.

Cách thức hoạt động của ứng dụng

Để hiểu được việc kiểm tra hiệu suất, trước hết phải giải thích cách hoạt động của ứng dụng. Ngoài các cơ sở về thời gian chu kỳ, còn có các phương pháp mở rộng chỉ được thực hiện như vậy với SPS của Antcas:

  • Nếu không phát hiện ra bất kỳ thay đổi nào trong một phần tử, thì toàn bộ phần tử đó sẽ được lưu trữ và không được tính toán nữa.
  • Khi thay đổi các giá trị toàn cầu, một chu kỳ kép sẽ được thực hiện. SPS sau đó chỉ chờ một miligiây.
  • Để tính toán các giá trị quan trọng về thời gian, các Timeout được đặt.
  • Việc giao tiếp ra (gửi hoặc lưu trữ giá trị) diễn ra bất đồng bộ và không phải sau khi hoàn thành việc tính toán.
  • Mỗi biến đều là remanent và sẽ được lưu trước khi lưu trữ hoặc tối đa hai giây sau đó.

Phân tích một dự án

Để tìm hiểu những phần tử nào của ứng dụng tiêu thụ rất nhiều hiệu suất tính toán, có thể sử dụng kiểm tra hiệu suất.

Mẹo để tối ưu hóa

  • Đừng dùng đầu ra ET của bộ đếm thời gian TON, TOF, TP. Thay vào đó có thể sử dụng UPTIME.
  • Đầu vào SET của VISUSET và VISUDTSET không nên được giữ hoạt động đồng thời trên nhiều khối chức năng.
  • Nếu có thể, thực hiện các phép tính lớn hơn hoặc phức tạp hơn trong một phần tử riêng biệt.
  • Thực hiện các phép toán toán học bằng cách sử dụng CALCULATE.
  • Sử dụng Logger với khoảng thời gian lớn nhất có thể. Mười phút cho nhiệt độ là hoàn toàn đủ. Khoảng thời gian cũng có thể được đặt động.
  • Sử dụng các khoảng thời gian lớn hơn PT trong các khối chức năng CTRL_PID, SHUTTER, DIMMER v.v.
  • Khi thay đổi các đầu vào thời gian động, hãy chú ý đến việc chúng không thay đổi liên tục. Điều này có thể xảy ra ví dụ như với các chuỗi RGB bằng khối chức năng FADE.
  • Hãy đơn giản hóa các nhiệm vụ phức tạp hơn. Đặc biệt là tìm kiếm trong chuỗi ký tự rất tốn thời gian tính toán. Thay vì sử dụng FIND và SUBSTR, hãy sử dụng khối chức năng EXPLODE hoặc PREG_SPLIT. Các giá trị sẽ được lưu trữ tạm thời tương ứng.
  • Xử lý các truy vấn HTTP có thể sử dụng rất nhiều bộ nhớ.
  • Giảm số lượng tin nhắn nhận được. Ví dụ, khi điều chỉnh một giá trị có thể bị trì hoãn phản hồi tùy thuộc vào hệ thống bus.
  • Tăng thời gian chu kỳ của SPS.