【发布时间】:2014-10-10 10:46:58
【问题描述】:
我最近才发现我的 Minitest 测试用例可以并行运行。我所要做的就是
require "minitest/hell"
所以我做到了。不幸的是,我的测试和以前完全一样。一切都会过去,它需要的时间与通常一样多。我在运行我的测试套件时检查了htop,并且只使用了一个内核。
我在随机测试中设置断点以检查测试是否实际设置为并行运行:
(byebug) Minitest::Test.test_order :并行
那么发生了什么?
我的第一个假设是 Minitest 在决定生成多少进程时会计算 CPU 内核的数量。我有多个物理处理器(在虚拟机中),但每个处理器只有 1 个内核。我已将我的 VPS 更改为拥有两个物理处理器,每个处理器有 4 个内核,但我的测试仍未并行运行。
$ lscpu 架构:x86_64 CPU 操作模式:32 位、64 位 字节顺序:小尾数 CPU:8 在线 CPU(s) 列表:0-7 每个内核的线程数:1 每个插槽的核心数:4 插座:2 NUMA 节点:1 供应商 ID:GenuineIntel CPU系列:6 型号:62 步进:4 CPU 频率:2600.000 BogoMIPS:5200.00 管理程序供应商:VMware 虚拟化类型:全 L1d 缓存:32K L1i 缓存:32K 二级缓存:256K 三级缓存:20480K NUMA node0 CPU(s): 0-7
【问题讨论】:
标签: ruby parallel-processing minitest