Mercurial > hg
view tests/killdaemons.py @ 16414:e8d37b78acfb
parsers: use base-16 trie for faster node->rev mapping
This greatly speeds up node->rev lookups, with results that are
often user-perceptible: for instance, "hg --time log" of the node
associated with rev 1000 on a linux-2.6 repo improves from 0.3
seconds to 0.03. I have not found any instances of slowdowns.
The new perfnodelookup command in contrib/perf.py demonstrates the
speedup more dramatically, since it performs no I/O. For a single
lookup, the new code is about 40x faster.
These changes also prepare the ground for the possibility of further
improving the performance of prefix-based node lookups.
author | Bryan O'Sullivan <bryano@fb.com> |
---|---|
date | Thu, 12 Apr 2012 14:05:59 -0700 |
parents | 13a1b2fb7ef2 |
children | eddfb9a550d0 |
line wrap: on
line source
#!/usr/bin/env python import os, time, errno, signal # Kill off any leftover daemon processes try: fp = open(os.environ['DAEMON_PIDS']) for line in fp: try: pid = int(line) except ValueError: continue try: os.kill(pid, 0) os.kill(pid, signal.SIGTERM) for i in range(10): time.sleep(0.05) os.kill(pid, 0) os.kill(pid, signal.SIGKILL) except OSError, err: if err.errno != errno.ESRCH: raise fp.close() except IOError: pass