Hello Guest, if you are reading this it means you have not registered yet. Please take a second, Click here to register, and in a few simple steps you will be able to enjoy our community and use our OpenViX support section.
Results 1 to 3 of 3

Thread: Skin performance/responsiveness profiling. Python and C++ rendering core questions.

  1. #1

    Title
    Junior Member
    Join Date
    Oct 2017
    Posts
    9
    Thanks
    1
    Thanked 2 Times in 1 Post

    Skin performance/responsiveness profiling. Python and C++ rendering core questions.

    Hi,

    Not sure if this is the best sub-forum for these skin development questions.

    I've spent some time experimenting with skin mods (XML and Python changes), so I've got some idea of the basic E2 code layout. I'm now trying to find out what areas in Enigma2 contribute to sluggish behaviour redrawing the interface.

    Can anyone clarify:
    - does E2 parse all XML files from the active skin at startup or only when called (eg when user presses the info button)

    - does the XML get translated into any intermediate format/code to improve performance?

    - are skin icons loaded into memory each and every time a menu is called or cached in RAM?

    - for the .py/.pyo files, if a user brings up, say, the InfoBar, does the Python interpreter import the modules at the top of the relevent file(s) each and every time the window is displayed?

    - is there a way through the Python API to write directly to the frame buffer

    - can anyone point me to details on E2's core rendering system or is it a case of having to read through the C source?

    The main EPG is especially slow on budget hardware like my Octagon SF228. Moving the EPG cursor down one program takes several hundred ms to refresh, where it should only be redrawing a small area of the screen. By contrst the main menu on the default theme loads almost instantly but with the MatrixHD skin, it's quite noticably slower.

  2. #2
    birdman's Avatar
    Title
    Moderator
    Join Date
    Sep 2014
    Location
    Hitchin, UK
    Posts
    7,769
    Thanks
    235
    Thanked 1,656 Times in 1,305 Posts
    Quote Originally Posted by scanline View Post
    - for the .py/.pyo files, if a user brings up, say, the InfoBar, does the Python interpreter import the modules at the top of the relevent file(s) each and every time the window is displayed?
    Once a source file has been loaded it's loaded. That's why you need to restart the GUI if you put an updated source file in place while debugging/testing.
    MiracleBox Prem Twin HD - 2@DVB-T2 + Xtrend et8000 - 5(incl. 2 different USBs)@DVB-T2[terrestrial - UK Freeview HD, Sandy Heath] - LAN/USB-stick/HDD

  3. #3

    Title
    Junior Member
    Join Date
    Oct 2017
    Posts
    9
    Thanks
    1
    Thanked 2 Times in 1 Post
    Quote Originally Posted by birdman View Post
    Once a source file has been loaded it's loaded. That's why you need to restart the GUI if you put an updated source file in place while debugging/testing.
    Yep, and the same seems to hold true for the XML files which also require a reboot. But assets like images are loaded each time you switch to a menu. Eg, if you go to the main menu, then save over the background image and go to a submenu, any changes to the image will be visible. So E2 is potentially loading a 1920x1080 PNG on every menu change - quite an overhead for low-powered hardware.

    The latency through the menus is significantly improved when the BG image is removed.

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
This website uses cookies
We use cookies to store session information to facilitate remembering your login information, to allow you to save website preferences, to personalise content and ads, to provide social media features and to analyse our traffic. We also share information about your use of our site with our social media, advertising and analytics partners.