You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mitogen/tests/bench/connection/ssh_roundtrip.py

47 lines
1.1 KiB
Python

"""
Measure latency of SSH RPC.
"""
import getpass
import mitogen.core
import mitogen.utils
import ansible_mitogen.affinity
mitogen.utils.setup_gil()
ansible_mitogen.affinity.policy.assign_worker()
def do_nothing():
pass
@mitogen.main()
def main(router):
import optparse
parser = optparse.OptionParser(description=__doc__)
parser.add_option(
'-p', '--python', metavar='CMD', default='python3',
help='Remote python path (default %default)')
parser.add_option(
'-u', '--user', metavar='S', default=getpass.getuser(),
help='Remote username (default %default)')
parser.add_option('--debug', action='store_true')
opts, args = parser.parse_args()
f = router.ssh(
hostname=args[0], python_path=opts.python, username=opts.user,
debug=opts.debug,
)
f.call(do_nothing)
t0 = mitogen.core.now()
end = mitogen.core.now() + 5.0
i = 0
while mitogen.core.now() < end:
f.call(do_nothing)
i += 1
t1 = mitogen.core.now()
iterations = i + 1
mean = (t1 - t0) / iterations
print('++ iterations %d, mean %.03f ms' % (iterations, 1e3 * mean))