Elixir语言中 System 相关用法介绍如下。
  模块提供直接与 VM 或主机系统交互的函数。System 
时间
  模块还提供与时间一起工作的函数,返回系统保存的不同时间,支持不同的时间单位。System 
依赖系统时间的复杂性之一是它们可能会被调整。例如,当您进入和离开夏令时时,系统时钟会进行调整,通常会增加或删除一小时。我们称这种变化为"time warps"。为了了解此类更改可能是如何有害的,请想象以下代码:
## DO NOT DO THIS
prev = System.os_time()
# ... execute some code ...
next = System.os_time()
diff = next - prev
如果在代码执行过程中系统时钟发生变化,一些在 1 秒内执行的代码可能会被报告为占用 1 小时以上!为了解决这些问题,VM 通过  提供了一个单调的时间,它不会减少也不会跳跃:System.monotonic_time/0 
## DO THIS
prev = System.monotonic_time()
# ... execute some code ...
next = System.monotonic_time()
diff = next - prev
一般来说,VM 提供三种时间测量:
- 
- 操作系统 (OS) 报告的时间。该时间可以无限制地向前或向后调整;os_time/0 - 
-system_time/0的 VM 视图。在时间扭曲的情况下,系统时间和操作系统时间可能不匹配,尽管 VM 致力于对齐它们。这个时间不是单调的(即它可能会减少),因为它的行为被配置为 by the VM time warp mode ;os_time/0 - 
- Erlang VM 提供的单调递增时间。monotonic_time/0 
此模块中的时间函数在 :native 单元中工作(除非另有说明),这取决于操作系统。大多数情况下,所有计算都在 :native 单位中完成,以避免精度损失,最后调用   以转换为特定时间单位,如 convert_time_unit/3 :millisecond 或 :microsecond 。有关详细信息,请参阅  类型。time_unit/0 
有关不同时间 VM 支持的更完整概要,请参阅 Erlang 文档中的 chapter on time and time correction。
相关用法
- Elixir System.stop用法及代码示例
 - Elixir System.fetch_env!用法及代码示例
 - Elixir System.fetch_env用法及代码示例
 - Elixir System.get_env用法及代码示例
 - Elixir System.cmd用法及代码示例
 - Elixir System.halt用法及代码示例
 - Elixir System.build_info用法及代码示例
 - Elixir System.shell用法及代码示例
 - Elixir System.pid用法及代码示例
 - Elixir System.restart用法及代码示例
 - Elixir StringIO.flush用法及代码示例
 - Elixir Stream用法及代码示例
 - Elixir String.contains?用法及代码示例
 - Elixir String.reverse用法及代码示例
 - Elixir Stream.drop_while用法及代码示例
 - Elixir String.to_integer用法及代码示例
 - Elixir Stream.map_every用法及代码示例
 - Elixir Stream.iterate用法及代码示例
 - Elixir String.pad_trailing用法及代码示例
 - Elixir Stream.dedup_by用法及代码示例
 - Elixir Stream.interval用法及代码示例
 - Elixir String.split_at用法及代码示例
 - Elixir String.valid?用法及代码示例
 - Elixir String.replace_prefix用法及代码示例
 - Elixir String.printable?用法及代码示例
 
注:本文由纯净天空筛选整理自elixir-lang.org大神的英文原创作品 System。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。
