Open vext01 opened 7 years ago
The matrix protocol makes an extreme number of HTTP requests, especially for large rooms. WeeChat was not designed to handle this as smooth as it could have been.
I have introducted a new setting
/set plugins.var.lua.matrix.presence_filter on
This setting will prevent synapse from sending presence events, and ephemeral events, like typing notification and read notices. This will limit the number of HTTP requests a lot. Please try and see if it helps.
The plan for the future is use a (web)socket transport instead of regular HTTP, which WeeChat supports better. But there is no official such transport yet, only proof of concept proxy.
Sadly the UI is still sluggish with this option set. Closing the 'Matrix HQ' buffer helps a lot, but I would like to be in that room ;)
Are you using nicklist? If so, try without it.
I'm not using nicklist.
When protocols require a lot of requests like Matrix it should really be done from a separate thread, though I'm not sure if Lua/WeeChat makes that easy to do.
(Though now I feel like trying to implement a plugin version of this script, hah.)
the script doesn't do any http calls on it's own, I request URLs using weechat's async API for it, so it's that API that is freezing the UI.
Ah, that's... disturbing. Might be worth bringing up on the weechat bugtracker.
Are you caching DNS lookups?
This script causes 100%Cpu usage on one core, which makes it unusable.
Can confirm that disabling nicklist seems to make it usable/better.
This is duplicate of #30
Hi,
I've bee frustrated with the performance of weechat recently, and I've pinpointed it to matrix.lua. This script makes the UI laggy.
Are there any low-hanging optimisations or workarounds I can try?
Thanks