是否有任何方法可以识别Erlang进程的特定核心?
假设您生成了一堆进程来简单地打印出进程正在运行的核心,然后退出。有什么办法吗?
我花了一些时间阅读文档和谷歌搜索,但找不到任何东西。
感谢。
编辑:“核心”= CPU核心编号(如果不是编号,则标识CPU核心的另一个标识符)。
答案 0 :(得分:3)
在大多数情况下,erlang:system_info(scheduler_id)会被绑定到逻辑核心。但是这些信息非常短暂,因为该过程可能会暂停并在任何其他调度程序上恢复。
您确实需要这种信息的用例是什么?
答案 1 :(得分:2)
不,没有。如果您生成2000个进程并且它们很快终止,那么您可能会在重新平衡发生之前完成工作。在这种情况下,您将只有一个核心一直运行。
您可以查看调度程序利用率调用,但请参阅erlang:statistics(scheduler_wall_time)
。它会告诉你每个调度程序的实际工作量。