我有一个使用工作队列和线程的端口扫描应用程序。
它使用简单的 TCP 连接并花费大量时间等待数据包返回(最多半秒)。因此线程不需要完全执行(即前半部分发送一个数据包,上下文切换,做一些事情,回到有网络数据等待它的线程)。
我怀疑我可以通过修改默认值 100 来提高性能sys.setcheckinterval
(在切换到另一个线程之前最多可以执行 100 个字节码)。
但是在不知道线程或函数中实际执行了多少字节码的情况下,我盲目地猜测值,测试和依赖测试显示出可测量的差异(这很困难,因为正在执行的代码量很少;一个简单的socket 连接,因此网络抖动可能会影响任何测量,而不是更改 sys.setcheckinterval)。
因此,我想找出某些代码执行中有多少字节码(即一个函数或线程执行的总数),以便我可以更明智地猜测将 sys.setcheckinterval 设置为什么。