mirror of
https://github.com/Mikaela/Limnoria.git
synced 2024-11-23 11:09:23 +01:00
Added profiling information as well as the threads command.
This commit is contained in:
parent
72f36efc18
commit
1290d2e3eb
@ -58,7 +58,7 @@ conf.registerChannelValue(conf.supybot.plugins.Status.cpu, 'children',
|
|||||||
registry.Boolean(True, """Determines whether the cpu command will list the
|
registry.Boolean(True, """Determines whether the cpu command will list the
|
||||||
time taken by children as well as the bot's process."""))
|
time taken by children as well as the bot's process."""))
|
||||||
conf.registerChannelValue(conf.supybot.plugins.Status.cpu, 'threads',
|
conf.registerChannelValue(conf.supybot.plugins.Status.cpu, 'threads',
|
||||||
registry.Boolean(True, """Determines whether the cpu command will provide
|
registry.Boolean(False, """Determines whether the cpu command will provide
|
||||||
the number of threads spawned and active."""))
|
the number of threads spawned and active."""))
|
||||||
conf.registerChannelValue(conf.supybot.plugins.Status.cpu, 'memory',
|
conf.registerChannelValue(conf.supybot.plugins.Status.cpu, 'memory',
|
||||||
registry.Boolean(True, """Determines whether the cpu command will report
|
registry.Boolean(True, """Determines whether the cpu command will report
|
||||||
@ -98,7 +98,23 @@ class Status(callbacks.Privmsg):
|
|||||||
networks.sort()
|
networks.sort()
|
||||||
networks = ['%s as %s' % (net, utils.commaAndify(nicks))
|
networks = ['%s as %s' % (net, utils.commaAndify(nicks))
|
||||||
for (net, nicks) in networks]
|
for (net, nicks) in networks]
|
||||||
irc.reply('I am connected to %s.' % utils.commaAndify(networks))
|
L = ['I am connected to %s.' % utils.commaAndify(networks)]
|
||||||
|
if world.profiling:
|
||||||
|
L.append('I am current in code profiling mode.')
|
||||||
|
irc.reply(' '.join(L))
|
||||||
|
|
||||||
|
def threads(self, irc, msg, args):
|
||||||
|
"""takes no arguments
|
||||||
|
|
||||||
|
Returns the current threads that are active.
|
||||||
|
"""
|
||||||
|
threads = [t.getName() for t in threading.enumerate()]
|
||||||
|
threads.sort()
|
||||||
|
s = 'I have spawned %s; %s %s still currently active: %s.' % \
|
||||||
|
(utils.nItems('thread', world.threadsSpawned),
|
||||||
|
utils.nItems('thread', len(threads)), utils.be(len(threads)),
|
||||||
|
utils.commaAndify(threads))
|
||||||
|
irc.reply(s)
|
||||||
|
|
||||||
def net(self, irc, msg, args):
|
def net(self, irc, msg, args):
|
||||||
"""takes no arguments
|
"""takes no arguments
|
||||||
@ -156,7 +172,7 @@ class Status(callbacks.Privmsg):
|
|||||||
finally:
|
finally:
|
||||||
r.close()
|
r.close()
|
||||||
elif sys.platform.startswith('netbsd'):
|
elif sys.platform.startswith('netbsd'):
|
||||||
mem = '%s kB' % os.stat('/proc/%s/mem')[7]
|
mem = '%s kB' % os.stat('/proc/%s/mem' % pid)[7]
|
||||||
response += ' I\'m taking up %s kB of memory.' % mem
|
response += ' I\'m taking up %s kB of memory.' % mem
|
||||||
except Exception:
|
except Exception:
|
||||||
self.log.exception('Uncaught exception in cpu.memory:')
|
self.log.exception('Uncaught exception in cpu.memory:')
|
||||||
|
@ -325,6 +325,7 @@ if __name__ == '__main__':
|
|||||||
if options.profile:
|
if options.profile:
|
||||||
import hotshot
|
import hotshot
|
||||||
profiler = hotshot.Profile('%s-%i.prof' % (nick, time.time()))
|
profiler = hotshot.Profile('%s-%i.prof' % (nick, time.time()))
|
||||||
|
world.profiling = True
|
||||||
profiler.run('main()')
|
profiler.run('main()')
|
||||||
else:
|
else:
|
||||||
main()
|
main()
|
||||||
|
@ -173,8 +173,10 @@ atexit.register(startDying)
|
|||||||
##################################################
|
##################################################
|
||||||
##################################################
|
##################################################
|
||||||
##################################################
|
##################################################
|
||||||
testing = False
|
|
||||||
dying = False
|
dying = False
|
||||||
|
testing = False
|
||||||
|
starting = False
|
||||||
|
profiling = False
|
||||||
documenting = False
|
documenting = False
|
||||||
|
|
||||||
|
|
||||||
|
@ -71,6 +71,9 @@ class StatusTestCase(PluginTestCase, PluginDocumentation):
|
|||||||
self.assertNotError('upkeep')
|
self.assertNotError('upkeep')
|
||||||
self.assertNotError('logfile')
|
self.assertNotError('logfile')
|
||||||
|
|
||||||
|
def testThreads(self):
|
||||||
|
self.assertNotError('threads')
|
||||||
|
|
||||||
|
|
||||||
# vim:set shiftwidth=4 tabstop=8 expandtab textwidth=78:
|
# vim:set shiftwidth=4 tabstop=8 expandtab textwidth=78:
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user