我有一个程序,在这个程序中,我在Scapy二级套接字上发送一个数据包列表。在
def burstPackets(packetList, socket, rateHz, executeTimes):
rate = Decimal(1)/Decimal(rateHz)
for i in range(0, executeTimes):
for packet in packetList:
socket.send(packet)
time.sleep(rate)
def executeRecordingTest():
DFI_PACKET_SIZE = 1250
DFI_PACKET_RATE_HZ = 3000
DFI_SECONDS_OF_PACKETS_TO_GENERATE = 30
DFI_THREAD_EXECUTION_CYCLES = 1
packetList3328 = generatePacketList(3328, DFI_PACKET_SIZE, DFI_PACKET_RATE_HZ, DFI_SECONDS_OF_PACKETS_TO_GENERATE)
myIfaces=ifaces.data.keys()
ODN_INTERFACE = myIfaces[1]
socket3328 = conf.L2socket(iface=ODN_INTERFACE)
burstPackets(packetList3328, socket3328, DFI_PACKET_RATE_HZ, DFI_THREAD_EXECUTION_CYCLES)
我可以通过打开多个命令行窗口并在每个窗口中运行相同的python脚本来运行此代码的多个实例。Python脚本的每个单独实例能够生成~30Mbps的数据包,3个窗口生成~90Mbps。但是,我希望使用线程在单个脚本中生成大量的数据包。我使用下面的代码尝试使用两个独立的线程生成包,每个线程的速度应该是~30Mbps。然而,似乎每个运行的线程都会降低性能,每个线程只生成约15Mbps的数据。在这种情况下,多个实例如何不会像运行多个线程那样导致性能损失?在
^{pr2}$
目前没有回答
相关问题 更多 >
编程相关推荐