Enable cProfiling for full sync
This commit is contained in:
parent
4e1f975647
commit
5b85b2b71a
1 changed files with 12 additions and 0 deletions
|
@ -3,6 +3,10 @@ from __future__ import absolute_import, division, unicode_literals
|
||||||
from logging import getLogger
|
from logging import getLogger
|
||||||
import xbmcgui
|
import xbmcgui
|
||||||
|
|
||||||
|
from cProfile import Profile
|
||||||
|
from pstats import Stats
|
||||||
|
from StringIO import StringIO
|
||||||
|
|
||||||
from . import common
|
from . import common
|
||||||
from .. import backgroundthread, utils
|
from .. import backgroundthread, utils
|
||||||
|
|
||||||
|
@ -80,6 +84,8 @@ class ProcessMetadata(backgroundthread.KillableThread, common.libsync_mixin):
|
||||||
self.current = 1
|
self.current = 1
|
||||||
self.total = section.total
|
self.total = section.total
|
||||||
self.section_name = section.name
|
self.section_name = section.name
|
||||||
|
profile = Profile()
|
||||||
|
profile.enable()
|
||||||
with section.context(self.last_sync) as context:
|
with section.context(self.last_sync) as context:
|
||||||
while not self.isCanceled():
|
while not self.isCanceled():
|
||||||
# grabs item from queue. This will block!
|
# grabs item from queue. This will block!
|
||||||
|
@ -104,6 +110,12 @@ class ProcessMetadata(backgroundthread.KillableThread, common.libsync_mixin):
|
||||||
context.plexconn.commit()
|
context.plexconn.commit()
|
||||||
context.kodiconn.commit()
|
context.kodiconn.commit()
|
||||||
self.queue.task_done()
|
self.queue.task_done()
|
||||||
|
profile.disable()
|
||||||
|
string_io = StringIO()
|
||||||
|
stats = Stats(profile, stream=string_io).sort_stats('cumulative')
|
||||||
|
stats.print_stats()
|
||||||
|
LOG.info('cProfile result: ')
|
||||||
|
LOG.info(string_io.getvalue())
|
||||||
finally:
|
finally:
|
||||||
if self.dialog:
|
if self.dialog:
|
||||||
self.dialog.close()
|
self.dialog.close()
|
||||||
|
|
Loading…
Reference in a new issue