STM kullanan bir programda hata ayıklamaya çalışıyorum. Bir işlemin sıklıkla iptal edilip edilmediğini nasıl keşfedilir?
Yani bu sık iptal bir işlemin nedeniyle olay olup olmadığını öğrenmek çalışıyorum: Burada gördüğünüz gibi ThreadScope okumaları çok yüksek CPU faaliyetini işaret ediyor.atomically $ do
someWork
...
`orElse` do
unsafeIOToSTM $ traceEventIO "transaction aborted!"
retry
Ama bu doğru olup olmadığını emin değilim ya bu ise en iyi yaklaşım bir STM senaryosunda ayıklama için: Ben ilk düşündüğüm şey testine böyle bir şey kullanıyordu. Herhangi bir fikir?
olurdu: Böyle bir şey sağlayacağını yerine
atomically
kullanmalıyımtrackSTM
vedumpSTMStats :: IO()
sağlar benim de yaklaşımım oldu. – chiBu yaklaşımdan hangi sonuçlara ulaştınız? –
Hiç iz yok. Bu yaklaşım doğruysa, hiçbir işlem iptal edilmez. – luisgabriel