这很奇怪
我正在使用 Python 中的 numpy 库读取一些(当然非常大:每个约 2GB)二进制文件。我正在使用:
thingy = np.fromfile(fileObject, np.int16, 1)
方法。这正好在一个嵌套循环的中间——我每个“通道”循环 4096 次,这个“通道”循环每个“接收器”循环 9 次,这个“接收器”循环 4 次(有 9 个通道每个接收器,其中有 4 个!)。这是针对每个“块”的,其中每个文件大约有 3600 个。
所以你可以看到,非常迭代,我知道这需要很长时间,但它比我预期的要长很多——平均每个“块”需要 8.5 秒。
我使用 time.clock() 等运行了一些基准测试,发现一切都以应有的速度运行,除了每个“块”大约 1 或 2 个样本(因此 4096*9*4 中的 1 或 2 个)似乎得到“卡住”几秒钟。现在这应该是从二进制返回一个简单的 int16 的情况,而不是应该花费几秒钟的东西......为什么它会粘住?
从基准测试中我发现它每次都停留在相同的位置(块 2,接收器 8,通道 3,样本 1085 就是其中之一,记录在案!),并且它会卡在那里大约相同的时间每次运行的时间。
有任何想法吗?!
谢谢,
邓肯