I had a brief look at the WSJT-X source code and realized that taking a serious look at it was way more work than I wanted to even consider doing, so I put that aside as there's no obvious simple thing for you to do.
However, my own experience (using a different build system) is that I needed to specify the actual CPU type as a compiler flag or else it defaulted to an older model. The Pi3 and Pi4 are different CPU models (a53 versus a72 if I recall correctly).
As for slow graphics on the Pi, that's down to the GPU rather than the CPU. The GPU is of course a very low end inexpensive model. The graphics performance won't correlate with the CPU performance.
I also wouldn't draw too many conclusions from boot time. The Pi is booting from a micro-SD card, which is going to have much slower I/O than an SSD, and that will likely be the bottleneck there. Boot speed may to some extent be dependent on the brand of micro-SD card you are using.
I don't know what the actual bottlenecks are in the application, but if it's in the math libraries then the answer may be faster math libraries. I noticed what I believe was FFTW (a Fast Fourier Transform library), so I assume there are a variety of third party libraries in there. I'm not going to speculate any further however, and again I didn't see anything in there which looks like a quick and simple fix.
However, give the CPU fan a try, and keep in touch with what other people are doing with it. I noticed several Youtube videos from people where apparently running WSJT-x on Raspberry Pis, so someone may come up with a solution for you eventually.
Good luck.
Thanks for taking the time to have a look at it!
I’m not actually using an SD card at present, both my Pi4s have USB3-connected SSDs, so that’s unlikely to get any better. The Pi400s should turn up tomorrow. They have no fans, but apparently the keyboard backing is designed as a heatsink.
The Pi400s have a better CPU stepping and are clocked at 1.8G vs 1.5G. I’ll put one of the SSDs on it, and start from scratch. That’s either going to yield results, or not. Can’t do much better than that in terms of system spec at present.
I’ve been playing with Pi virtualisation this evening on both the Pi itself and the M1. I think that’s probably a dead end, unless I can figure out if there’s any optimisation to be had with the Pi image on the M1, but the Pi itself isn’t likely to yield dividends, especially as I would have to use VNC to get a display out of it (or use ESXi’s monitor tool). With no VMs running, it was using 35ish% CPU. Not really a surprise, but it was worth investigating. It’s frustrating that both ESXi on the Pi and Fusion on the Mac are both in pre-production state, and don’t support importing each others’ VMs. In x86 world, you could do that all day long.
Away from virtualisation, it’s not that wsjtx doesn‘t work at all on the Pi, it absolutely does. In operation, there are 15-second blocks of either TX or RX, and the software receives and decodes as much as it can in those 15 second blocks. Obviously the faster it can process the signals, the more signals it can decode - ie the more stations you see. But at 15 seconds, it’s moving on to either the next RX block, or initiating a TX block. Receiving FT8 signals from all over the world, it has its work cut out for sure, and while I don’t understand the intricacies of the software, I am aware that’s it is
enormously complex.
Still, I had a pleasant hour playing with the radio using the native Mac app, and had two-way contacts in Slovenia, Israel, Switzerland, Poland, Austria, Germany, UK and Belgium. Even got Brazil through the sidelobes of my antenna.
I’ll give it another bash with the Pi400, and take it from there, but again, I appreciate you looking into it for me.