2020-10-09, 21:21
I have a video addon where i am looking at some performance tuning for displaying list items. I have seen the caching / offscreen thread but I have a specific question about performance with adding context menu additions to list items.
Here's the specific code I am using:
if playcount == 0:
li.addContextMenuItems([ (addon.getLocalizedString(30347), 'Container.Refresh'), \
(addon.getLocalizedString(30346), 'Action(ParentDir)'), (addon.getLocalizedString(30372), \
'RunScript(plugin.video.mezzmo, {},{}, {}, {}, {}, {}, {}, {})'.format(pctitle, itemurl, \
season_text, episode_text, playcount, pcseries, pcdbfile, contenturl)) ])
elif playcount > 0:
li.addContextMenuItems([ (addon.getLocalizedString(30347), 'Container.Refresh'), \
(addon.getLocalizedString(30346), 'Action(ParentDir)'), (addon.getLocalizedString(30373), \
'RunScript(plugin.video.mezzmo, {},{}, {}, {}, {}, {}, {}, {})'.format(pctitle,itemurl, \
season_text, episode_text, playcount, pcseries, pcdbfile, contenturl)) ])
This is called each time a list item is added / displayed. My question is the overhead of addon.getLocalizedString function being called each time vs. calling them once before the list item population loop ?
For example:
contextitem1 = addon.getLocalizedString(30346)
contextitem2 = addon.getLocalizedString(30347)
contextitem3 = addon.getLocalizedString(30372)
contextitem4 = addon.getLocalizedString(30373)
add list item loop:
if playcount == 0:
li.addContextMenuItems([ (contextitem2, 'Container.Refresh'), \
(contextitem1, 'Action(ParentDir)'), (contextitem3, \
'RunScript(plugin.video.mezzmo, {},{}, {}, {}, {}, {}, {}, {})'.format(pctitle, itemurl, \
season_text, episode_text, playcount, pcseries, pcdbfile, contenturl)) ])
elif playcount > 0:
li.addContextMenuItems([ (contextitem2, 'Container.Refresh'), \
contextitem1, 'Action(ParentDir)'), (contextitem4, \
'RunScript(plugin.video.mezzmo, {},{}, {}, {}, {}, {}, {}, {})'.format(pctitle,itemurl, \
season_text, episode_text, playcount, pcseries, pcdbfile, contenturl)) ])
Is one vs. the other recommended and is there a lot of overhead with the addon.getLocalizedString(30346) types of calls for each list item ?
Thanks,
Jeff
Here's the specific code I am using:
if playcount == 0:
li.addContextMenuItems([ (addon.getLocalizedString(30347), 'Container.Refresh'), \
(addon.getLocalizedString(30346), 'Action(ParentDir)'), (addon.getLocalizedString(30372), \
'RunScript(plugin.video.mezzmo, {},{}, {}, {}, {}, {}, {}, {})'.format(pctitle, itemurl, \
season_text, episode_text, playcount, pcseries, pcdbfile, contenturl)) ])
elif playcount > 0:
li.addContextMenuItems([ (addon.getLocalizedString(30347), 'Container.Refresh'), \
(addon.getLocalizedString(30346), 'Action(ParentDir)'), (addon.getLocalizedString(30373), \
'RunScript(plugin.video.mezzmo, {},{}, {}, {}, {}, {}, {}, {})'.format(pctitle,itemurl, \
season_text, episode_text, playcount, pcseries, pcdbfile, contenturl)) ])
This is called each time a list item is added / displayed. My question is the overhead of addon.getLocalizedString function being called each time vs. calling them once before the list item population loop ?
For example:
contextitem1 = addon.getLocalizedString(30346)
contextitem2 = addon.getLocalizedString(30347)
contextitem3 = addon.getLocalizedString(30372)
contextitem4 = addon.getLocalizedString(30373)
add list item loop:
if playcount == 0:
li.addContextMenuItems([ (contextitem2, 'Container.Refresh'), \
(contextitem1, 'Action(ParentDir)'), (contextitem3, \
'RunScript(plugin.video.mezzmo, {},{}, {}, {}, {}, {}, {}, {})'.format(pctitle, itemurl, \
season_text, episode_text, playcount, pcseries, pcdbfile, contenturl)) ])
elif playcount > 0:
li.addContextMenuItems([ (contextitem2, 'Container.Refresh'), \
contextitem1, 'Action(ParentDir)'), (contextitem4, \
'RunScript(plugin.video.mezzmo, {},{}, {}, {}, {}, {}, {}, {})'.format(pctitle,itemurl, \
season_text, episode_text, playcount, pcseries, pcdbfile, contenturl)) ])
Is one vs. the other recommended and is there a lot of overhead with the addon.getLocalizedString(30346) types of calls for each list item ?
Thanks,
Jeff