2
這是一個PLC程序,所以這些值可以在不知情的情況下改變。有人可能會想到一個哈希算法,它將檢查自上一個循環以來是否有5到10個整數發生了變化。我需要這個儘可能快。最快的方法來檢查是否有10個整數已從上一個週期更改
這是一個PLC程序,所以這些值可以在不知情的情況下改變。有人可能會想到一個哈希算法,它將檢查自上一個循環以來是否有5到10個整數發生了變化。我需要這個儘可能快。最快的方法來檢查是否有10個整數已從上一個週期更改
爲什麼不只是檢查他們對上一組值的副本?
簡單檢查所有10的努力是線性的,小的和恆定的。哈希函數不太可能會更快(您無法避免讀取值,這幾乎是做比較所需的所有工作),甚至是具有相同哈希代碼的哈希函數不會告訴您值並沒有改變,所以你仍然有時要比較所有10。
如果偶爾得到答案錯誤的話,您可以對散列碼XOR所有十個值(假定爲適度大小的二進制整數),然後檢查它。這將避免讀取舊/新值,將讀取次數減半。鑑於PLC正在做的所有其他工作,我懷疑這種節省是否是納米級以外的其他工作。
這就是我想要它快速運行毫秒。由於設計常數。這要感謝 – mrebus
@mrebus:現代計算機的單個內核在一毫秒內有數百萬個週期。如果整數在L1緩存中,則這個時間會少於0.0001毫秒。 – Charles
@Charles我需要它來編寫一個PLC程序。 PLC程序需要10-100毫秒運行(是的,這很糟糕,但我沒有寫它)。我需要一些快速的東西,比主循環運行更頻繁。因爲我需要更快的時間在一小段代碼上。 – mrebus