有没有办法在测试运行之间将perl测试数据保存在内存中?

时间:2015-01-26 12:20:55

标签: perl testing

当我通过证明运行我的测试用例时,在第一次测试运行之前加载我的测试数据大约需要20-25秒。有没有办法让一个单独的,持久的进程将测试数据加载到内存中,并证明每次运行测试时都会立即检索副本?

我知道我可以有一个单独的进程返回JSON / XML,但是它必须被解析。我想知道是否可以有另一个进程返回对数据结构的引用。

1 个答案:

答案 0 :(得分:1)

如果你正在谈论单独的程序调用 - 不,那就没办法了。记忆在过程中拥有,并且在过程之后被破坏。

做你正在尝试的唯一方法是:

  • 让父进程加载'数据。
  • fork子进程

这意味着“已加载”#39;数据将保留在内存中 - fork使用每个孩子的写时复制(因此,如果它没有改变,你根本就不会使用更多的内存)。 但每个孩子都可以访问相同的“记忆空间”。

或者,您可以使用Storable - 和:

  • 使用/tmpstore将您的数据结构写入磁盘(或retrieve)。
  • 使用freezethaw将数据作为标量传递。