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