有谁知道是否有可能使在二郎一个高分辨率计时器?
根据文档记录,所有定时器和超时以毫秒为单位进行测量。
需要延迟几微秒。例如,而不是
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精灵