Python 重复使用connect()时如何提高效率?
我希望对Apache授权使用快速暴力测试,而不使用urllib或套接字库编码。但是,connect()是一项非常慢的任务(400/m) 重复使用connect()函数时,如何提高效率 (没有多进程方法;仅在代码级别)Python 重复使用connect()时如何提高效率?,python,performance,sockets,connect,brute-force,Python,Performance,Sockets,Connect,Brute Force,我希望对Apache授权使用快速暴力测试,而不使用urllib或套接字库编码。但是,connect()是一项非常慢的任务(400/m) 重复使用connect()函数时,如何提高效率 (没有多进程方法;仅在代码级别) 您可以使用线程池。查看multiprocessing.pool.ThreadPool包。您可以创建一个大小为N的池,然后在for循环中使用imap_unordered()来连接、发送和接收每个线程 您也可以将multiprocessing.pool.pool用于进程池(相对于线程)
您可以使用线程池。查看multiprocessing.pool.ThreadPool包。您可以创建一个大小为N的池,然后在for循环中使用imap_unordered()来连接、发送和接收每个线程 您也可以将multiprocessing.pool.pool用于进程池(相对于线程),但听起来这是I/O绑定的,所以线程池会更好,IMHO 例如:
from multiprocessing.pool import ThreadPool as Pool
import random
import time
def do_something(x):
delay = random.randint(1,3)
time.sleep(delay)
return x,delay
for i, result in pool.imap_unordered(do_something, range(10)):
print i, result
HTTP中的行终止符是\r\n,而不是\n。
from multiprocessing.pool import ThreadPool as Pool
import random
import time
def do_something(x):
delay = random.randint(1,3)
time.sleep(delay)
return x,delay
for i, result in pool.imap_unordered(do_something, range(10)):
print i, result