Closed lukasMega closed 1 year ago
Hi there and welcome to Inkycal. Thanks for opening this issue. As this is your first issue in this repository, please read through the contributing guidelines
@lukasMega Thanks for opening your first issue on Inkycal π― . Glad to hear you like Inkycal π
Thanks for all the profiling! Indeed I did not know about these, but I had a feeling that there still is lot which can be improved. While generating the images, the load is dependent on several factors, including the selected modules and e.g. size of the calendar file.
Currently, the script doesn't "wait" while running non-stop but instead invokes the time.sleep() function of python, which still stresses the cpu. A better approach would be to use timed threads instead of sleep, but this is a bit complicated and I only recently learnt about it.
If you have suggestions in regards to reducing the cpu stress by e.g. changes in code, please do share them. Any help with reducing the cpu stress is most welcome.
I don't think that using sleep() function is wrong, also it don't uses CPU time.
I did small update: I disabled (commented) inky.test()
in inky_run.py (https://github.com/aceisace/Inkycal/blob/main/inky_run.py#L6):
~$ date +"%T.%N"; time sudo python3 /home/dietpi/inky_run.py ; date +"%T.%N";
10:27:24.773842503
inkycal_calendar loaded
inkycal_weather loaded
inkycal_feeds loaded
loaded inkycal
Inkycal version: v2.0.0
Selected E-paper display: epd_7_in_5_v2
Date: 25 Jan 23 | Time: 10:27
Generating images for all modules...successful
Initialising..Updating display......Done
Sending E-Paper to deep sleep...Done
No errors since 1 display updates
program started 2 minutes ago
real 1m59.310s
user 1m45.307s
sys 0m6.012s
10:29:24.113349503
and takes not 3 min 15 sec but 1 min 59 sec :)
I'm still using 3 URLs in calendar config:
"https://calendar.google.com/calendar/ical/β¦/basic.ics,https://calendar.google.com/calendar/ical/sk.slovak%23holiday%40group.v.calendar.google.com/public/basic.ics,https://calendar.google.com/calendar/ical/oβ¦/basic.ics"
I will focus later into:
inky.test()
only tries to generate all images once before the actual run. This is useful if you e.g. changed your config and Inkycal doesn't work anymore. So the test is actually not required. Depending on the display's size and supported colours, the time may increase or decrease too.
Looking forward to your enhancements when they are ready. When they are, please create a PR pointing to the development branch. Closing this issue π
π First of all, thank you for this project! Very nice and useful idea! :) π
Description
I'm using Raspberry Pi Zero W (1-core CPU) and inkycal python scripts takes ~3+ min (I see 100% CPU usage approx. ~3ΒΌ min)
Notes
π» My configuration / environment
Inkycal was installed: August 2022
HW: Raspberry Pi Zero W
Memory card: [I will update later]
OS: minimal with no GUI - DietPi (debian 11, kernel 5.15.β¦)
installed additional packages: only those required for inkycal + htop + avahi-daemon
RAM usage: ~23 β 80 MB (with running inky_run.py)
ePaper: Waveshare 7.5" (800x480) most probably rev. v2
βΉοΈ I know, it's old and slow hardware, maybe it's nothing to improve. I will try to put here some more useful information from my investigation.
π§Ύ output of some commands:
Inkycal related:
sudo cat /boot/settings.json:
file content:
```json { "model": "epd_7_in_5_v2", "update_interval": 10, "orientation": 0, "info_section": true, "info_section_height": 16, "calibration_hours": [ 0, 12, 18 ], "modules": [ { "position": 1, "name": "Calendar", "config": { "size": [ 480, 280 ], "week_starts_on": "Monday", "show_events": true, "ical_urls": "https://calendar.google.com/calendar/ical/β¦/basic.ics,https://calendar.google.com/calendar/ical/sk.slovak%23holiday%40group.v.calendar.google.com/public/basic.ics,https://calendar.google.com/calendar/ical/oβ¦/basic.ics", "ical_files": null, "date_format": "D MMM", "time_format": "HH:mm", "padding_x": 6, "padding_y": 6, "fontsize": 14, "language": "sk" } }, { "position": 2, "name": "Weather", "config": { "size": [ 480, 110 ], "api_key": "β― Inkycal single run (measured β± 3 min 15 s):
inkycal/main.py
and changedwhile True
toif True
and at the end of methodrun
I commented out last lines:Inkycal single run + logs (measured β± 3 min 16 s):
System related stuff:
uname -a:
Linux rpi0Paper 5.15.84+ #1613 Thu Jan 5 11:58:09 GMT 2023 armv6l GNU/Linux
system services:
```bash # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Running services: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ dietpi@rpi0Paper:~$ sudo service --status-all [ + ] avahi-daemon [ - ] console-setup.sh [ + ] cron [ + ] dbus [ + ] dropbear [ + ] fake-hwclock [ - ] hwclock.sh [ - ] keyboard-setup.sh [ + ] kmod [ + ] networking [ + ] procps [ + ] rngd [ - ] rsync [ - ] sudo [ + ] udev dietpi@rpi0Paper:~$ sudo dietpi-services status DietPi-Services βββββββββββββββββββββββββββββββββββββββββββββββββββββ Mode: status [ OK ] DietPi-Services | avahi-daemon active (running) since Sat 2023-01-21 17:38:54 CET; 1 day 18h ago [ OK ] DietPi-Services | cron active (running) since Sat 2023-01-21 17:38:54 CET; 1 day 18h ago [ OK ] DietPi-Services | dropbear active (running) since Sat 2023-01-21 17:38:47 CET; 1 day 18h ago [ INFO ] DietPi-Services | dietpi-vpn inactive (dead) [ INFO ] DietPi-Services | dietpi-cloudshell inactive (dead) [ OK ] DietPi-Services | dietpi-ramlog active (exited) since Sat 2023-01-21 17:38:47 CET; 1 day 18h ago [ OK ] DietPi-Services | dietpi-preboot active (exited) since Sat 2023-01-21 17:38:48 CET; 1 day 18h ago [ OK ] DietPi-Services | dietpi-postboot active (exited) since Sat 2023-01-21 17:38:53 CET; 1 day 18h ago [ INFO ] DietPi-Services | dietpi-wifi-monitor inactive (dead) ```disk usage and installed packages:
```bash # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ disk usage: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ dietpi@rpi0Paper:~$ df -h Filesystem Size Used Avail Use% Mounted on /dev/root 15G 5.7G 8.4G 41% / devtmpfs 207M 0 207M 0% /dev tmpfs 239M 0 239M 0% /dev/shm tmpfs 96M 1.7M 94M 2% /run tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 1.0G 0 1.0G 0% /tmp tmpfs 50M 8.0K 50M 1% /var/log /dev/mmcblk0p1 127M 53M 74M 42% /boot dietpi@rpi0Paper:~$ # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ number of installed packages: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ dietpi@rpi0Paper:~$ sudo dpkg-query -l | cat | wc --lines 307 dietpi@rpi0Paper:~$ dpkg --list | wc --lines 307 dietpi@rpi0Paper:~$ dpkg -l | grep -c '^ii' 302 ``` ### Installed packages: ```haskell dietpi@rpi0Paper:~$ sudo dpkg-query -l | cat Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Architecture Description +++-===========================-================================-============-=============================================================================== ii adduser 3.118 all add and remove users and groups ii apt 2.2.4 armhf commandline package manager ii avahi-daemon 0.8-5+deb11u1 armhf Avahi mDNS/DNS-SD daemon ii base-files 11.1+rpi1+deb11u6 armhf Debian base system miscellaneous files ii base-passwd 3.5.51 armhf Debian base system master password and group files ii bash 5.1-2+deb11u1 armhf GNU Bourne Again SHell ii bash-completion 1:2.11-2 all programmable completion for the bash shell ii bind9-host 1:9.16.33-1~deb11u1 armhf DNS Lookup Utility ii bind9-libs:armhf 1:9.16.33-1~deb11u1 armhf Shared Libraries used by BIND 9 ii bsdutils 1:2.36.1-8+deb11u1 armhf basic utilities from 4.4BSD-Lite ii bzip2 1.0.8-4 armhf high-quality block-sorting file compressor - utilities ii ca-certificates 20210119 all Common CA certificates ii console-setup 1.205+rpt1 all console font and keymap setup program ii console-setup-linux 1.205+rpt1 all Linux specific part of console-setup ii coreutils 8.32-4 armhf GNU core utilities ii crda 4.14+git20191112.9856751-1 armhf wireless Central Regulatory Domain Agent ii cron 3.0pl1-137 armhf process scheduling daemon ii curl 7.74.0-1.3+deb11u3 armhf command line tool for transferring data with URL syntax ii dash 0.5.11+git20200708+dd9ef66-5 armhf POSIX-compliant shell ii dbus 1.12.24-0+deb11u1 armhf simple interprocess messaging system (daemon and utilities) ii debconf 1.5.77 all Debian configuration management system ii debianutils 4.11.2 armhf Miscellaneous utilities specific to Debian ii device-tree-compiler 1.6.0-1 armhf Device Tree Compiler for Flat Device Trees ii diffutils 1:3.7-5 armhf File comparison utilities ii dirmngr 2.2.27-2+deb11u2 armhf GNU privacy guard - network certificate management service ii dmsetup 2:1.02.175-2.1 armhf Linux Kernel Device Mapper userspace library ii dosfstools 4.2-1 armhf utilities for making and checking MS-DOS FAT filesystems ii dpkg 1.20.12+rpi1 armhf Debian package management system ii dropbear 2020.81-3 all lightweight SSH2 server and client - startup scripts ii dropbear-bin 2020.81-3 armhf lightweight SSH2 server and client - command line tools ii e2fsprogs 1.46.2-2 armhf ext2/ext3/ext4 file system utilities ii ethtool 1:5.9-1 armhf display or change Ethernet device settings ii fake-hwclock 0.12 all Save/restore system clock on machines without working RTC hardware ii fdisk 2.36.1-8+deb11u1 armhf collection of partitioning utilities ii findutils 4.8.0-1 armhf utilities for finding files--find, xargs ii firmware-atheros 1:20221012-1~bpo11+1+rpt1 all Binary firmware for Qualcomm Atheros wireless cards ii firmware-brcm80211 1:20221012-1~bpo11+1+rpt1 all Binary firmware for Broadcom/Cypress 802.11 wireless cards ii firmware-iwlwifi 1:20221012-1~bpo11+1+rpt1 all Binary firmware for Intel Wireless cards ii firmware-linux-free 20200122-1 all Binary firmware for various drivers in the Linux kernel ii firmware-misc-nonfree 1:20221012-1~bpo11+1+rpt1 all Binary firmware for various drivers in the Linux kernel ii firmware-realtek 1:20221012-1~bpo11+1+rpt1 all Binary firmware for Realtek wired/wifi/BT adapters ii gcc-10-base:armhf 10.2.1-6+rpi1 armhf GCC, the GNU Compiler Collection (base package) ii git 1:2.30.2-1 armhf fast, scalable, distributed revision control system ii git-man 1:2.30.2-1 all fast, scalable, distributed revision control system (manual pages) ii gnupg 2.2.27-2+deb11u2 all GNU privacy guard - a free PGP replacement ii gnupg-l10n 2.2.27-2+deb11u2 all GNU privacy guard - localization files ii gnupg-utils 2.2.27-2+deb11u2 armhf GNU privacy guard - utility programs ii gpg 2.2.27-2+deb11u2 armhf GNU Privacy Guard -- minimalist public key operations ii gpg-agent 2.2.27-2+deb11u2 armhf GNU privacy guard - cryptographic agent ii gpg-wks-client 2.2.27-2+deb11u2 armhf GNU privacy guard - Web Key Service client ii gpg-wks-server 2.2.27-2+deb11u2 armhf GNU privacy guard - Web Key Service server ii gpgconf 2.2.27-2+deb11u2 armhf GNU privacy guard - core configuration utilities ii gpgsm 2.2.27-2+deb11u2 armhf GNU privacy guard - S/MIME version ii gpgv 2.2.27-2+deb11u2 armhf GNU privacy guard - signature verification tool ii grep 3.6-1 armhf GNU grep, egrep and fgrep ii gzip 1.10-4+deb11u1 armhf GNU compression utilities ii hdparm 9.60+ds-1 armhf tune hard disk parameters for high performance ii hostname 3.23 armhf utility to set/show the host name or domain name ii htop 3.0.5-7 armhf interactive processes viewer ii ifupdown 0.8.36 armhf high level tools to configure network interfaces ii init-system-helpers 1.60 all helper tools for all init systems ii iproute2 5.10.0-4 armhf networking and traffic control tools ii iputils-ping 3:20210202-1 armhf Tools to test the reachability of network hosts ii isc-dhcp-client 4.4.1-2.3+deb11u1 armhf DHCP client for automatically obtaining an IP address ii iw 5.9-3 armhf tool for configuring Linux wireless devices ii kbd 2.3.0-3 armhf Linux console font and keytable utilities ii keyboard-configuration 1.205+rpt1 all system-wide keyboard preferences ii kmod 28-1 armhf tools for managing Linux kernel modules ii libacl1:armhf 2.2.53-10 armhf access control list - shared library ii libapparmor1:armhf 2.13.6-10 armhf changehat AppArmor library ii libapt-pkg6.0:armhf 2.2.4 armhf package management runtime library ii libargon2-1:armhf 0~20171227-0.2 armhf memory-hard hashing function - runtime library ii libassuan0:armhf 2.5.3-7.1 armhf IPC library for the GnuPG components ii libatlas-base-dev:armhf 3.10.3-10+rpi1 armhf Automatically Tuned Linear Algebra Software, generic static ii libatlas3-base:armhf 3.10.3-10+rpi1 armhf Automatically Tuned Linear Algebra Software, generic shared ii libatomic1:armhf 10.2.1-6+rpi1 armhf support library providing __atomic built-in functions ii libattr1:armhf 1:2.4.48-6 armhf extended attribute handling - shared library ii libaudit-common 1:3.0-2 all Dynamic library for security auditing - common files ii libaudit1:armhf 1:3.0-2 armhf Dynamic library for security auditing ii libavahi-common-data:armhf 0.8-5+deb11u1 armhf Avahi common data files ii libavahi-common3:armhf 0.8-5+deb11u1 armhf Avahi common library ii libavahi-core7:armhf 0.8-5+deb11u1 armhf Avahi's embeddable mDNS/DNS-SD library ii libblkid1:armhf 2.36.1-8+deb11u1 armhf block device ID library ii libbpf0:armhf 1:0.3-2+rpi1 armhf eBPF helper library (shared library) ii libbrotli-dev:armhf 1.0.9-2+b1 armhf library implementing brotli encoder and decoder (development files) ii libbrotli1:armhf 1.0.9-2+b1 armhf library implementing brotli encoder and decoder (shared libraries) ii libbsd0:armhf 0.11.3-1 armhf utility functions from BSD systems - shared library ii libbz2-1.0:armhf 1.0.8-4 armhf high-quality block-sorting file compressor library - runtime ii libc-bin 2.31-13+rpt2+rpi1+deb11u5 armhf GNU C Library: Binaries ii libc-dev-bin 2.31-13+rpt2+rpi1+deb11u5 armhf GNU C Library: Development binaries ii libc-l10n 2.31-13+rpt2+rpi1+deb11u5 all GNU C Library: localization files ii libc6:armhf 2.31-13+rpt2+rpi1+deb11u5 armhf GNU C Library: Shared libraries ii libc6-dev:armhf 2.31-13+rpt2+rpi1+deb11u5 armhf GNU C Library: Development Libraries and Header Files ii libcap-ng0:armhf 0.7.9-2.2+b1 armhf An alternate POSIX capabilities library ii libcap2:armhf 1:2.44-1 armhf POSIX 1003.1e capabilities (library) ii libcap2-bin 1:2.44-1 armhf POSIX 1003.1e capabilities (utilities) ii libcom-err2:armhf 1.46.2-2 armhf common error description library ii libcrypt-dev:armhf 1:4.4.18-4 armhf libcrypt development files ii libcrypt1:armhf 1:4.4.18-4 armhf libcrypt shared library ii libcryptsetup12:armhf 2:2.3.7-1+deb11u1 armhf disk encryption support - shared library ii libcurl3-gnutls:armhf 7.74.0-1.3+deb11u3 armhf easy-to-use client-side URL transfer library (GnuTLS flavour) ii libcurl4:armhf 7.74.0-1.3+deb11u3 armhf easy-to-use client-side URL transfer library (OpenSSL flavour) ii libdaemon0:armhf 0.14-7.1 armhf lightweight C library for daemons - runtime library ii libdb5.3:armhf 5.3.28+dfsg1-0.8 armhf Berkeley v5.3 Database Libraries [runtime] ii libdbus-1-3:armhf 1.12.24-0+deb11u1 armhf simple interprocess messaging system (library) ii libdebconfclient0:armhf 0.260 armhf Debian Configuration Management System (C-implementation library) ii libdeflate0:armhf 1.7-1 armhf fast, whole-buffer DEFLATE-based compression and decompression ii libdevmapper1.02.1:armhf 2:1.02.175-2.1 armhf Linux Kernel Device Mapper userspace library ii libdns-export1110 1:9.11.19+dfsg-2.1 armhf Exported DNS Shared Library ii libelf1:armhf 0.183-1 armhf library to read and write ELF files ii liberror-perl 0.17029-1 all Perl module for error/exception handling in an OO-ish way ii libexpat1:armhf 2.2.10-2+deb11u5 armhf XML parsing C library - runtime library ii libext2fs2:armhf 1.46.2-2 armhf ext2/ext3/ext4 file system libraries ii libfdisk1:armhf 2.36.1-8+deb11u1 armhf fdisk partitioning library ii libfdt1:armhf 1.6.0-1 armhf Flat Device Trees manipulation library ii libffi7:armhf 3.3-6 armhf Foreign Function Interface library runtime ii libfreetype-dev:armhf 2.10.4+dfsg-1+deb11u1 armhf FreeType 2 font engine, development files ii libfreetype6:armhf 2.10.4+dfsg-1+deb11u1 armhf FreeType 2 font engine, shared library files ii libfreetype6-dev:armhf 2.10.4+dfsg-1+deb11u1 armhf FreeType 2 font engine, development files (transitional package) ii libfstrm0:armhf 0.6.0-1+b1 armhf Frame Streams (fstrm) library ii libgcc-s1:armhf 10.2.1-6+rpi1 armhf GCC support library ii libgcrypt20:armhf 1.8.7-6 armhf LGPL Crypto library - runtime library ii libgdbm-compat4:armhf 1.19-2 armhf GNU dbm database routines (legacy support runtime version) ii libgdbm6:armhf 1.19-2 armhf GNU dbm database routines (runtime version) ii libgfortran5:armhf 10.2.1-6+rpi1 armhf Runtime library for GNU Fortran applications ii libgmp10:armhf 2:6.2.1+dfsg-1+deb11u1 armhf Multiprecision arithmetic library ii libgnutls30:armhf 3.7.1-5+deb11u2 armhf GNU TLS library - main runtime library ii libgpg-error0:armhf 1.38-2 armhf GnuPG development runtime library ii libgssapi-krb5-2:armhf 1.18.3-6+deb11u3 armhf MIT Kerberos runtime libraries - krb5 GSS-API Mechanism ii libhogweed6:armhf 3.7.3-1 armhf low level cryptographic library (public-key cryptos) ii libicu67:armhf 67.1-7 armhf International Components for Unicode ii libidn2-0:armhf 2.3.0-5 armhf Internationalized domain names (IDNA2008/TR46) library ii libimagequant0:armhf 2.12.2-1.1 armhf palette quantization library ii libip4tc2:armhf 1.8.7-1 armhf netfilter libip4tc library ii libisc-export1105:armhf 1:9.11.19+dfsg-2.1 armhf Exported ISC Shared Library ii libiw30:armhf 30~pre9-13.1 armhf Wireless tools - library ii libjbig0:armhf 2.1-3.1+b2 armhf JBIGkit libraries ii libjpeg62-turbo:armhf 1:2.0.6-4 armhf libjpeg-turbo JPEG runtime library ii libjson-c5:armhf 0.15-2 armhf JSON manipulation library - shared library ii libk5crypto3:armhf 1.18.3-6+deb11u3 armhf MIT Kerberos runtime libraries - Crypto Library ii libkeyutils1:armhf 1.6.1-2 armhf Linux Key Management Utilities (library) ii libkmod2:armhf 28-1 armhf libkmod shared library ii libkrb5-3:armhf 1.18.3-6+deb11u3 armhf MIT Kerberos runtime libraries ii libkrb5support0:armhf 1.18.3-6+deb11u3 armhf MIT Kerberos runtime libraries - Support library ii libksba8:armhf 1.5.0-3+deb11u2 armhf X.509 and CMS support library ii liblcms2-2:armhf 2.12~rc1-2 armhf Little CMS 2 color management library ii libldap-2.4-2:armhf 2.4.57+dfsg-3+deb11u1 armhf OpenLDAP libraries ii liblmdb0:armhf 0.9.24-1 armhf Lightning Memory-Mapped Database shared library ii liblocale-gettext-perl 1.07-4+b1 armhf module using libc functions for internationalization in Perl ii liblz4-1:armhf 1.9.3-2 armhf Fast LZ compression algorithm library - runtime ii liblzma5:armhf 5.2.5-2.1~deb11u1 armhf XZ-format compression library ii libmaxminddb0:armhf 1.5.2-1 armhf IP geolocation database library ii libmd0:armhf 1.0.3-3 armhf message digest functions from BSD systems - shared library ii libmnl0:armhf 1.0.4-3 armhf minimalistic Netlink communication library ii libmount1:armhf 2.36.1-8+deb11u1 armhf device mounting library ii libmpdec3:armhf 2.5.1-1+rpi1 armhf library for decimal floating point arithmetic (runtime library) ii libncurses6:armhf 6.2+20201114-2 armhf shared libraries for terminal handling ii libncursesw6:armhf 6.2+20201114-2 armhf shared libraries for terminal handling (wide character support) ii libnettle8:armhf 3.7.3-1 armhf low level cryptographic library (symmetric and one-way cryptos) ii libnewt0.52:armhf 0.52.21-4+b2 armhf Not Erik's Windowing Toolkit - text mode windowing with slang ii libnghttp2-14:armhf 1.43.0-1 armhf library implementing HTTP/2 protocol (shared library) ii libnl-3-200:armhf 3.4.0-1 armhf library for dealing with netlink sockets ii libnl-genl-3-200:armhf 3.4.0-1 armhf library for dealing with netlink sockets - generic netlink ii libnl-route-3-200:armhf 3.4.0-1 armhf library for dealing with netlink sockets - route interface ii libnpth0:armhf 1.6-3 armhf replacement for GNU Pth using system threads ii libnsl-dev:armhf 1.3.0-2 armhf libnsl development files ii libnsl2:armhf 1.3.0-2 armhf Public client interface for NIS(YP) and NIS+ ii libopenjp2-7:armhf 2.4.0-3 armhf JPEG 2000 image compression/decompression library ii libp11-kit0:armhf 0.23.22-1 armhf library for loading and coordinating access to PKCS#11 modules - runtime ii libpam-modules:armhf 1.4.0-9+deb11u1+rpt2 armhf Pluggable Authentication Modules for PAM ii libpam-modules-bin 1.4.0-9+deb11u1+rpt2 armhf Pluggable Authentication Modules for PAM - helper binaries ii libpam-runtime 1.4.0-9+deb11u1+rpt2 all Runtime support for the PAM library ii libpam0g:armhf 1.4.0-9+deb11u1+rpt2 armhf Pluggable Authentication Modules library ii libparted2:armhf 3.4-1 armhf disk partition manipulator - shared library ii libpci3:armhf 1:3.7.0-5 armhf PCI utilities (shared library) ii libpcre2-8-0:armhf 10.36-2+deb11u1 armhf New Perl Compatible Regular Expression Library- 8 bit runtime files ii libpcre3:armhf 2:8.39-13 armhf Old Perl 5 Compatible Regular Expression Library - runtime files ii libpcsclite1:armhf 1.9.1-1 armhf Middleware to access a smart card using PC/SC (library) ii libperl5.32:armhf 5.32.1-4+deb11u2 armhf shared Perl library ii libpng-dev:armhf 1.6.37-3 armhf PNG library - development (version 1.6) ii libpng16-16:armhf 1.6.37-3 armhf PNG library - runtime (version 1.6) ii libpopt0:armhf 1.18-2 armhf lib for parsing cmdline parameters ii libprocps8:armhf 2:3.3.17-5 armhf library for accessing process information from /proc ii libprotobuf-c1:armhf 1.3.3-1+b2 armhf Protocol Buffers C shared library (protobuf-c) ii libpsl5:armhf 0.21.0-1.2 armhf Library for Public Suffix List (shared libraries) ii libpython3-stdlib:armhf 3.9.2-3 armhf interactive high-level object-oriented language (default python3 version) ii libpython3.9-minimal:armhf 3.9.2-1+rpi1 armhf Minimal subset of the Python language (version 3.9) ii libpython3.9-stdlib:armhf 3.9.2-1+rpi1 armhf Interactive high-level object-oriented language (standard library, version 3.9) ii libraspberrypi-bin 1:2+git20220324~090146+c4fd1b8-1 armhf Miscellaneous Raspberry Pi utilities ii libraspberrypi0:armhf 1:2+git20220324~090146+c4fd1b8-1 armhf Libraries for the Raspberry Pi's VideoCore IV ii libreadline8:armhf 8.1-1 armhf GNU readline and history libraries, run-time libraries ii librtmp1:armhf 2.4+20151223.gitfa8646d.1-2+b2 armhf toolkit for RTMP streams (shared library) ii libsasl2-2:armhf 2.1.27+dfsg-2.1+deb11u1 armhf Cyrus SASL - authentication abstraction library ii libsasl2-modules-db:armhf 2.1.27+dfsg-2.1+deb11u1 armhf Cyrus SASL - pluggable authentication modules (DB) ii libseccomp2:armhf 2.5.1-1+rpi1+deb11u1 armhf high level interface to Linux seccomp filter ii libselinux1:armhf 3.1-3 armhf SELinux runtime shared libraries ii libsemanage-common 3.1-1 all Common files for SELinux policy management libraries ii libsemanage1:armhf 3.1-1+b1 armhf SELinux policy management library ii libsepol1:armhf 3.1-1 armhf SELinux library for manipulating binary security policies ii libslang2:armhf 2.3.2-5 armhf S-Lang programming library - runtime version ii libsmartcols1:armhf 2.36.1-8+deb11u1 armhf smart column output alignment library ii libsqlite3-0:armhf 3.34.1-3 armhf SQLite 3 shared library ii libss2:armhf 1.46.2-2 armhf command-line interface parsing library ii libssh2-1:armhf 1.9.0-2 armhf SSH2 client-side library ii libssl1.1:armhf 1.1.1n-0+deb11u3+rpt1 armhf Secure Sockets Layer toolkit - shared libraries ii libstdc++6:armhf 10.2.1-6+rpi1 armhf GNU Standard C++ Library v3 ii libsystemd0:armhf 247.3-7+rpi1+deb11u1 armhf systemd utility library ii libtasn1-6:armhf 4.16.0-2+deb11u1 armhf Manage ASN.1 structures (runtime) ii libtext-charwidth-perl 0.04-10+b1 armhf get display widths of characters on the terminal ii libtext-iconv-perl 1.7-7+b1 armhf module to convert between character sets in Perl ii libtiff5:armhf 4.2.0-1+deb11u1 armhf Tag Image File Format (TIFF) library ii libtinfo6:armhf 6.2+20201114-2 armhf shared low-level terminfo library for terminal handling ii libtirpc-common 1.3.1-1+deb11u1 all transport-independent RPC library - common files ii libtirpc-dev:armhf 1.3.1-1+deb11u1 armhf transport-independent RPC library - development files ii libtirpc3:armhf 1.3.1-1+deb11u1 armhf transport-independent RPC library ii libtomcrypt1:armhf 1.18.2-5 armhf public domain open source cryptographic toolkit ii libtommath1:armhf 1.2.0-6 armhf multiple-precision integer library [runtime] ii libudev1:armhf 247.3-7+rpi1+deb11u1 armhf libudev shared library ii libunistring2:armhf 0.9.10-4 armhf Unicode string library for C ii libusb-1.0-0:armhf 2:1.0.24-3 armhf userspace USB programming library ii libuuid1:armhf 2.36.1-8+deb11u1 armhf Universally Unique ID library ii libuv1:armhf 1.40.0-2 armhf asynchronous event notification library - runtime library ii libwebp6:armhf 0.6.1-2.1 armhf Lossy compression of digital photographic images. ii libwebpdemux2:armhf 0.6.1-2.1 armhf Lossy compression of digital photographic images. ii libwebpmux3:armhf 0.6.1-2.1 armhf Lossy compression of digital photographic images. ii libxau6:armhf 1:1.0.9-1 armhf X11 authorisation library ii libxcb1:armhf 1.14-3 armhf X C Binding ii libxdmcp6:armhf 1:1.1.2-3 armhf X11 Display Manager Control Protocol library ii libxml2:armhf 2.9.10+dfsg-6.7+deb11u3 armhf GNOME XML library ii libxtables12:armhf 1.8.7-1 armhf netfilter xtables library ii libxxhash0:armhf 0.8.0-2+rpi1 armhf shared library for xxhash ii libyaml-0-2:armhf 0.2.2-1 armhf Fast YAML 1.1 parser and emitter library ii libzstd1:armhf 1.4.8+dfsg-2.1+rpi1 armhf fast lossless compression algorithm ii linux-libc-dev:armhf 1:1.20230106-1 armhf Linux support headers for userspace development ii locales 2.31-13+rpt2+rpi1+deb11u5 all GNU C Library: National Language (locale) data [support] ii login 1:4.8.1-1 armhf system login tools ii logsave 1.46.2-2 armhf save the output of a command in a log file ii lsb-base 11.1.0+rpi1 all Linux Standard Base init script functionality ii mailcap 3.69 all Debian's mailcap system, and support programs ii mawk 1.3.4.20200120-2 armhf Pattern scanning and text processing language ii media-types 4.0.0 all List of standard media types and their usual file extension ii mime-support 3.66 all transitional package ii mount 2.36.1-8+deb11u1 armhf tools for mounting and manipulating filesystems ii nano 5.4-2+deb11u2 armhf small, friendly text editor inspired by Pico ii ncurses-base 6.2+20201114-2 all basic terminal type definitions ii ncurses-bin 6.2+20201114-2 armhf terminal-related programs and man pages ii openssl 1.1.1n-0+deb11u3+rpt1 armhf Secure Sockets Layer toolkit - cryptographic utility ii p7zip 16.02+dfsg-8 armhf 7zr file archiver with high compression ratio ii parted 3.4-1 armhf disk partition manipulator ii passwd 1:4.8.1-1 armhf change and administer password and group data ii pci.ids 0.0~2021.02.08-1 all PCI ID Repository ii perl 5.32.1-4+deb11u2 armhf Larry Wall's Practical Extraction and Report Language ii perl-base 5.32.1-4+deb11u2 armhf minimal Perl system ii perl-modules-5.32 5.32.1-4+deb11u2 all Core Perl modules ii pinentry-curses 1.1.0-4 armhf curses-based PIN or pass-phrase entry dialog for GnuPG ii powertop 2.11-1 armhf diagnose issues with power consumption and management ii procps 2:3.3.17-5 armhf /proc file system utilities ii psmisc 23.4-2 armhf utilities that use the proc file system ii python-pip-whl 20.3.4-4+rpt1+deb11u1 all Python package installer (pip wheels) ii python3 3.9.2-3 armhf interactive high-level object-oriented language (default python3 version) ii python3-distutils 3.9.2-1 all distutils package for Python 3.x ii python3-lib2to3 3.9.2-1 all Interactive high-level object-oriented language (lib2to3) ii python3-minimal 3.9.2-3 armhf minimal subset of the Python language (default python3 version) ii python3-pil:armhf 8.1.2+dfsg-0.3+deb11u1 armhf Python Imaging Library (Python3) ii python3-pip 20.3.4-4+rpt1+deb11u1 all Python package installer ii python3-pkg-resources 52.0.0-4 all Package Discovery and Resource Access using pkg_resources ii python3-rpi.gpio 0.7.0-0.2+b1 armhf Module to control Raspberry Pi GPIO channels (Python 3) ii python3-setuptools 52.0.0-4 all Python3 Distutils Enhancements ii python3-wheel 0.34.2-1 all built-package format for Python ii python3.9 3.9.2-1+rpi1 armhf Interactive high-level object-oriented language (version 3.9) ii python3.9-minimal 3.9.2-1+rpi1 armhf Minimal subset of the Python language (version 3.9) ii raspberrypi-archive-keyring 2021.1.1+rpt1 all GnuPG archive keys of the Raspberry Pi OS archive ii raspberrypi-bootloader 1:1.20230106-1 armhf Raspberry Pi bootloader ii raspberrypi-kernel 1:1.20230106-1 armhf Raspberry Pi bootloader ii raspberrypi-sys-mods 2:20220915-dietpi2 all System tweaks for the Raspberry Pi, DietPi edition ii raspbian-archive-keyring 20120528.2 all GnuPG archive keys of the raspbian archive ii raspi-copies-and-fills 0.13 armhf ARM-accelerated versions of selected functions from string.h ii readline-common 8.1-1 all GNU readline and history libraries, common files ii rng-tools5 5-4 armhf Daemon to use a Hardware TRNG ii rpi.gpio-common:armhf 0.7.0-0.2+b1 armhf Module to control Raspberry Pi GPIO channels (common files) ii rsync 3.2.3-4+deb11u1 armhf fast, versatile, remote (and local) file-copying tool ii sed 4.7-1 armhf GNU stream editor for filtering/transforming text ii sensible-utils 0.0.14 all Utilities for sensible alternative selection ii speedtest-cli 2.1.3-2 all Command line interface for testing internet bandwidth using speedtest.net ii sudo 1.9.5p2-3+deb11u1 armhf Provide limited super user privileges to specific users ii systemd 247.3-7+rpi1+deb11u1 armhf system and service manager ii systemd-sysv 247.3-7+rpi1+deb11u1 armhf system and service manager - SysV links ii systemd-timesyncd 247.3-7+rpi1+deb11u1 armhf minimalistic service to synchronize local time with NTP servers ii sysvinit-utils 2.96-7+deb11u1 armhf System-V-like utilities ii tar 1.34+dfsg-1 armhf GNU version of the tar archiving utility ii tzdata 2021a-1+deb11u8 all time zone and daylight-saving time data ii udev 247.3-7+rpi1+deb11u1 armhf /dev/ and hotplug management daemon ii unzip 6.0-26+deb11u1 armhf De-archiver for .zip files ii usbutils 1:013-3 armhf Linux USB utilities ii util-linux 2.36.1-8+deb11u1 armhf miscellaneous system utilities ii wget 1.21-1+deb11u1 armhf retrieves files from the web ii whiptail 0.52.21-4+b2 armhf Displays user-friendly dialog boxes from shell scripts ii wireless-regdb 2022.04.08-2~deb11u1 all wireless regulatory database for Linux ii wireless-tools 30~pre9-13.1 armhf Tools for manipulating Linux Wireless Extensions ii wpasupplicant 2:2.9.0-21 armhf client support for WPA and WPA2 (IEEE 802.11i) ii xkb-data 2.29-2 all X Keyboard Extension (XKB) configuration data ii zlib1g:armhf 1:1.2.11.dfsg-2+deb11u2 armhf compression library - runtime ii zlib1g-dev:armhf 1:1.2.11.dfsg-2+deb11u2 armhf compression library - development ```htop (with running inkycal):
```bash # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ htop: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CPU[|||| 3.2%] Mem[||||||||||||||||||||||||||||||||||||||||||| 86.3M/477M] Avg[|||| 3.2%] Swp[ 0K/1.53G] Tasks: 18; 1 running Load average: 0.55 0.94 0.59 Uptime: 00:09:19 PIDβ³USER RES NI CPU% TIME+ Command 1 root 8496 0 0.0 0:07.07 /sbin/init 98 root 5944 0 0.0 0:00.90 ββ /lib/systemd/systemd-journald 122 root 3996 0 0.0 0:00.72 ββ /lib/systemd/systemd-udevd 180 messagebu 3484 0 0.0 0:00.14 ββ /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only 189 root 1284 0 0.0 0:00.02 ββ /usr/sbin/rngd -f 216 root 1452 0 0.0 0:00.00 ββ /usr/sbin/dropbear -p 22 -W 65536 494 root 2472 0 0.0 0:02.06 β ββ /usr/sbin/dropbear -p 22 -W 65536 600 dietpi 4480 0 0.0 0:00.76 β ββ -bash 797 root 4040 0 0.0 0:00.08 β ββ sudo htop 798 root 3776 0 3.2 0:00.88 β ββ htop 319 root 3992 0 0.0 0:00.04 ββ /sbin/wpa_supplicant -s -B -P /run/wpa_supplicant.wlan0.pid -i wlan0 -D nl80211,wext -c /etc/wpa_supplicant/wpa_supplicant.conf 325 root 5068 0 0.0 0:00.07 ββ /sbin/dhclient -4 -v -i -pf /run/dhclient.wlan0.pid -lf /var/lib/dhcp/dhclient.wlan0.leases -I -df /var/lib/dhcp/dhclient6.wlan0.leases wlan0 375 root 1924 0 0.0 0:00.02 ββ /sbin/agetty -o -p -- \u --noclear tty1 linux 400 avahi 3044 0 0.0 0:00.13 ββ avahi-daemon: registering [rpi0Paper.local] 401 avahi 1260 0 0.0 0:00.00 β ββ avahi-daemon: chroot helper 404 root 2388 0 0.0 0:00.03 ββ /usr/sbin/cron -f 420 root 4000 0 0.0 0:00.09 ββ sudo python3 /home/dietpi/inky_run.py 661 root 86300 0 0.0 4:39.17 ββ python3 /home/dietpi/inky_run.py F1Help F2Setup F3SearchF4FilterF5List F6SortByF7Nice -F8Nice +F9Kill F10Quit ```htop (without running inkycal):
```bash # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ htop (without inkycal) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ CPU[|||| 3.2%] Mem[|||||||||||||||||||||||||||||| 26.3M/477M] Avg[|||| 3.2%] Swp[ 0K/1.53G] Tasks: 15; 1 running Load average: 0.07 0.02 0.05 Uptime: 02:04:48 PID USER RES NI CPU% TIME+ β½Command 1 root 8468 0 0.0 0:07.28 /sbin/init 98 root 6168 0 0.0 0:01.36 ββ /lib/systemd/systemd-journald 122 root 3896 0 0.0 0:00.78 ββ /lib/systemd/systemd-udevd 319 root 4164 0 0.0 0:00.30 ββ /sbin/wpa_supplicant -s -B -P /run/wpa_supplicant.wlan0.pid -i wlan0 -D nl80211,wext -c /etc/wpa_supplicant/wpa_supplicant.conf 190 messagebu 3448 0 0.0 0:00.12 ββ /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only 325 root 4956 0 0.0 0:00.05 ββ /sbin/dhclient -4 -v -i -pf /run/dhclient.wlan0.pid -lf /var/lib/dhcp/dhclient.wlan0.leases -I -df /var/lib/dhcp/dhclient6.wlan0.leases wlan0 197 root 1312 0 0.0 0:00.03 ββ /usr/sbin/rngd -f 218 root 1408 0 0.0 0:00.03 ββ /usr/sbin/dropbear -p 22 -W 65536 893 root 2460 0 0.0 0:10.74 β ββ /usr/sbin/dropbear -p 22 -W 65536 906 dietpi 4532 0 0.0 0:02.40 β β ββ -bash 1675 root 4048 0 0.0 0:00.09 β β ββ sudo htop 1676 root 4672 0 2.6 0:01.47 β β ββ htop 796 root 2436 0 0.0 0:03.75 β ββ /usr/sbin/dropbear -p 22 -W 65536 797 dietpi 4572 0 0.0 0:02.54 β ββ -bash 374 root 1876 0 0.0 0:00.02 ββ /sbin/agetty -o -p -- \u --noclear tty1 linux F1Help F2Setup F3SearchF4FilterF5List F6SortByF7Nice -F8Nice +F9Kill F10Quit ```CPU Info (by DietPi):
```bash # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ DietPi CPU info: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ dietpi@rpi0Paper:~$ sudo cpu βββββββββββββββββββββββββββββββββββββββββββββββββββββ DietPi CPU Info Use dietpi-config to change CPU / performance options βββββββββββββββββββββββββββββββββββββββββββββββββββββ Architecture | armv6l Temperature | 32 Β°C / 89 Β°F : Cool runnings Governor | ondemand Throttle up | 85% CPU usage Current Freq Min Freq Max Freq CPU0 | 800 MHz 700 MHz 800 MHz [ INFO ] DietPi-CPU_info | CPU current frequency, may be affected by this script, due to the processing required to run it. ```Benchmarks:
/boot/config.txt
file content:
```sh #-------GPU memory splits------- gpu_mem_256=16 gpu_mem_512=16 gpu_mem_1024=16 #-------Overclock------- # there are changes related to lower power consumption temp_limit=65 initial_turbo=45 over_voltage=-3 over_voltage_sdram=-1 ### https://learn.pi-supply.com/make/how-to-save-power-on-your-raspberry-pi/ #arm_freq_min=300 # https://github.com/raspberrypi/firmware/issues/1431#issuecomment-668750798 arm_freq_min=600 arm_freq=800 core_freq_min=100 sdram_freq_min=150 ```Some profiling attempts
I tried to do some simple profiling using command:
sudo python3 -m cProfile -o inky-prof.profile /home/dietpi/inky_run.py
and then visualize it using:snakeviz inky-prof.profile
and here are other screenshots:
ical_parser.py
according to profiling output