有什么方法可以确定Erlang进程计划的特定核心吗?
假设您生成了一堆进程,只需打印出进程运行的核心,然后退出。有办法做到这一点吗?
我花了一些时间阅读文档和谷歌搜索,但什么也找不到。
谢谢。
编辑:"core"=CPU核心编号(如果不是编号,则为标识CPU核心的另一个标识符)。
在大多数情况下,erlang:system_info(schedule_id)被映射到逻辑核心。但这些信息是非常短暂的,因为进程可能会在任何其他调度程序上暂停和恢复。
您真正需要此类信息的用例是什么?
没有。如果你产生2000个进程,并且它们很快终止,那么你很可能会在重新平衡发生之前完成任务。在这种情况下,您将只有一个核心一直在运行。
但是,您可以查看调度程序利用率调用,请参阅erlang:statistics(scheduler_wall_time)
。它会告诉你每个调度器实际做了多少工作。