$ time python /tmp/my.py 0
real 0m0.011s
user 0m0.008s
sys 0m0.000s
$ time python /tmp/my.py 0 cloudinit
real 0m0.013s
user 0m0.008s
sys 0m0.004s
$ time python /tmp/my.py 1 cloudinit
real 0m0.316s
user 0m0.300s
sys 0m0.016s
$ time python /tmp/my.py 10 cloudinit
real 0m0.322s
user 0m0.308s
sys 0m0.012s
$ time python3 /tmp/my.py 0 cloudinit
real 0m0.029s
user 0m0.028s
sys 0m0.000s
$ time python3 /tmp/my.py 1 cloudinit
real 0m0.268s
user 0m0.256s
sys 0m0.008s
$ time python3 /tmp/my.py 10 cloudinit
real 0m0.264s
user 0m0.256s
sys 0m0.008s
$ cat /tmp/my.py
#!/usr/bin/python
def iter_entry_points(namespace, loader=None, name=None):
for e in pkg_resources.iter_entry_points(namespace, name=name):
if loader is None:
thing = e.load()
else:
thing = loader(e)
if thing is not None:
yield (e.name, thing)
if __name__ == '__main__':
import sys
numloops = int(sys.argv[1])
args = sys.argv[2:]
if numloops == 0:
sys.exit(0)
import pkg_resources
for i in range(0, numloops):
for entry in iter_entry_points(*args):
print("entry: %s" % entry)