有誰知道是否有可能使在二郎一個高分辨率計時器?
根據文檔記錄,所有定時器和超時以毫秒爲單位進行測量。
需要延遲幾微秒。例如,而不是
timer:apply_after(MilliSec, Module, Function, Arguments).
像
timer:apply_after(MicroSec, Module, Function, Arguments).
高分辨率定時器
Q
高分辨率定時器
1
A
回答
3
事實上,所有的計時器和超時基元以毫秒爲單位,包括:
receive
......after
原始的(這是什麼timer
模塊最終依賴於);erlang:send_after/3
和erlang:start_timer/3
依賴於相同的機制;driver_set_timer
功能在驅動程序中鏈接。
兩種方法可以考慮,實現了亞毫秒計時:
- 使用Erlang的原語等待的毫秒數截斷,然後用一個繁忙的循環調整。請注意,
erlang:now()
不是一個實時函數,因爲它保證是單調的(而且這非常昂貴)。您應該使用os:timestamp()
來代替; - 寫本地代碼,產生一個線程,當定時器觸發時將發送消息。這可以很容易地實施爲NIF。
0
- 在實踐中,如果你需要一個計時器,你應該使用eralng:send_after/3或二郎:START_TIMER/3,而不是定時器模塊。定時器模塊使用定時器進程來實現定時器,如果應用程序有太多的定時器,它將阻止定時器進程,這會減慢你的應用程序。
- erlang:send_after/3和erlang:start_timer/3有一個區別。
- 的erlang:START_TIMER/3將發送消息{超時,TimerRef,消息}到目的地後時間毫秒。 erlang:send_after/3將在時間毫秒後僅發送消息給Dest。
- 問題是,當你需要取消計時器,以及消息被髮送,如果您使用二郎:send_after/3,它可能會導致邏輯處理問題。
相關問題
- 1. Coldfire高分辨率定時器(MCF5328)
- 2. Qt高分辨率定時器
- 3. .NET高分辨率計時器
- 4. 測試一個高分辨率顯示器上低分辨率
- 5. 同時支持高分辨率和低分辨率圖像
- 6. iPhone 4高分辨率屏幕+高分辨率Google地圖自定義圖標?
- 7. 多分辨率/分辨率C++容器
- 8. C中的跨平臺高分辨率定時器?
- 9. 使用C++和Linux的高分辨率定時器?
- 10. 64位Linux上的高分辨率定時器支持
- 11. 用戶空間中的linux高分辨率定時器
- 12. 多線程環境中的Linux高分辨率定時器?
- 13. 適用於iPhone的高分辨率定時器?
- 14. 帶回調的ObjC/C/C++高分辨率定時器
- 15. Linux中的HTimer(高分辨率定時器)
- 16. 如何在linux中創建高分辨率定時器
- 17. 低分辨率Mandelbrot分形不...足夠高的分辨率?
- 18. 高分辨率圖像查看器
- 19. 實時/高分辨率股票API?
- 20. 分辨率太高時檢測手機
- 21. wx.Python中的高分辨率時序
- 22. Kivy全高分辨率的
- 23. 高分辨率iPhone背景
- 24. gravatar最高分辨率
- 25. 高分辨率支持 - Android
- 26. 獲取高分辨率pygame
- 27. 提高分辨率在MATLAB
- 28. Ghostscript和高分辨率?
- 29. 分辨率和寬高比
- 30. 高分辨率CSS精靈