我正在尝试使用Python。瞄准是连续读取一个大小为(100字节)的文件,打包并通过套接字发送。这些文件是从目录中读取的。在
问题:当我连续运行程序时,执行时间在增加。最初,执行时间不到一秒,后来达到8~10秒。我不知道为什么延迟。如果任何人都可以对这个问题有所了解,这样会更有帮助。在
这里我附上了我的代码。。。在
def handlefile(filename):
for sat in range(len(Numfiles)):
filename =
fsize = os.path.getsize(filename)
if fsize != 100:
continue
rfile = open(filename,'rb')
text = rfile.read()
msg = struct.unpack("<100b",text)
for i in range(len(msg)):
packMessage = packMessage + struct.pack("<b",msg[i])
print "time:",datetime.datetime.now() - startTime
文件是二进制文件。在
初始时间:671ms
连续执行10次以上,时间增长缓慢。 最后几个值, 671毫秒 . . . . 9.879毫秒 88.686毫秒 135.954毫秒
我使用的是python-2.5.4版本。在
如果有人遇到过类似的问题。请给我一些输入。在
谢谢 达斯
你检查过你的进程打开的文件句柄数了吗?您可能需要使用with-statement确保它们在不再需要时关闭:
当
with
-块离开时,文件将自动关闭。在据我所见,
packMessage
正在单调增长:如果重复多次,它可能会变大,消耗大量内存,并且在某个时候应用程序可能会变得更慢。运行程序时,请尝试查看}(在
top
或{top
中,按M按内存分配排序,f添加常驻内存字段)。在从性能的角度来看,每次打开和读取同一个文件并不是最好的解决方案。考虑在进入循环之前只读一次。在
相关问题 更多 >
编程相关推荐