Here is an example of the typical output of "ps auxf" showing significant
amounts of RAM used by QtWebEngineProcess spawned by kmail.
etbe 3182 0.0 2.5 3420708 404524 ? Ssl Aug20 4:35 \_ /usr/bin/kmail -qwindowtitle KMail
etbe 3445 0.0 0.2 442456 37528 ? S Aug20 0:00 | \_ /usr/lib/qt6/libexec/QtWebEngineProcess --type=zygote --no-zygote-sandbox --dis
able-in-process-stack-traces --application-name=kmail2 --webengine-schemes=cid:slLC;qrc:sV --lang=en-AU
etbe 3446 0.0 0.2 442472 40296 ? S Aug20 0:00 | \_ /usr/lib/qt6/libexec/QtWebEngineProcess --type=zygote --disable-in-process-stac
k-traces --application-name=kmail2 --webengine-schemes=cid:slLC;qrc:sV --lang=en-AU
etbe 3472 0.0 4.3 1460343556 701924 ? Sl Aug20 1:01 | \_ /usr/lib/qt6/libexec/QtWebEngineProcess --type=renderer --webengine-schemes=cid:slLC;qrc:sV --disable-in-process-stack-traces --disable-speech-api --touch-events=auto --disable-databases --disable-blink-features=EyeDropperAPI,WebOTP --lang=en-AU --num-raster-threads=2 --enable-main-frame-before-activation --renderer-client-id=3 --time-ticks-at-unix-epoch=-1787210191851719 --launch-time-ticks=1612234846 --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,13746217149882121545,858726675711996526,262144 --enable-features=NetworkServiceInProcess2,TracingServiceInProcess --disable-features=BackgroundFetch,EyeDropper,InstalledApp,StandardCompliantNonSpecialSchemeURLParsing,WebOTP,WebPayments,WebUSB --variations-seed-version
etbe 54681 0.0 0.4 1460054776 68340 ? Sl Aug23 0:00 | \_ /usr/lib/qt6/libexec/QtWebEngineProcess --type=renderer --webengine-schemes=cid:slLC;qrc:sV --disable-in-process-stack-traces --disable-speech-api --touch-events=auto --disable-databases --disable-blink-features=EyeDropperAPI,WebOTP --lang=en-AU --num-raster-threads=2 --enable-main-frame-before-activation --renderer-client-id=7 --time-ticks-at-unix-epoch=-1787210191851719 --launch-time-ticks=70570036732 --shared-files=v8_context_snapshot_data:100 --field-trial-handle=3,i,13746217149882121545,858726675711996526,262144 --enable-features=NetworkServiceInProcess2,TracingServiceInProcess --disable-features=BackgroundFetch,EyeDropper,InstalledApp,StandardCompliantNonSpecialSchemeURLParsing,WebOTP,WebPayments,WebUSB --variations-seed-version
Here are examples of free -m run before and after restarting kmail. It seems that
most of my swap space is used by the QtWebEngineProcess children of kmail.
# free -m
total used free shared buff/cache available
Mem: 15758 8038 987 2410 9493 7719
Swap: 3999 3918 81
# free -m
total used free shared buff/cache available
Mem: 15758 7097 1489 2303 9826 8661
Swap: 3999 1717 2282
Running kmail for 12 days isn't really a lot for a desktop or laptop system.
I think that if we can't make QtWebEngineProcess use less RAM then we should
have kmail periodically restart it. Having kmail restart it is probably a lot
easier than fixing bugs in it.