3 ms·
FWIW my Pi4 running nerves/elixir boots to the full beam environment in less than ten seconds.
by whalesalad 5y ago
FWIW my Pi4 running nerves/elixir boots to the full beam environment in less than ten seconds.
- sneak 5y agoThis is a quad core machine that can do billions of cycles per second. That seems unnecessary and wasteful by at least two, possibly 3 orders of magnitude. So much of this is just tradition. I have server machines that take minutes after power on before they even get to the kernel. I know they aren't designed to be rebooted often but this burns tons of time for no reason whenever they need to be serviced for whatever reason. Testing bios changes or doing network reconfiguration takes 30-60 minutes instead of 5, it sucks.
- gtirloni 5y agoThat's because of the POST procedure allowing time to initialize and run the ROMs in all PCIe devices. Also, HBAs take time to do staggered initialization of disk, etc. There are usually some tweaks you can do in the BIOS to skip certain things but unless you're seeing >5min boot times, I wouldn't bother.
- sneak 5y agoI understand the excuses, but the "time to initialize" thing is also just outdated tradition. These things (even the HBA stuff) are modern chips that can do zillions of operations per second. It takes a long time because we have simply accepted the tradition of "initialization takes a long time". There are certain bottlenecks like loading boot images over relatively slow SPI, but the synchronization margins between components are like 10x bigger than they need to be simply out of poor engineering.
- withinboredom 5y agoAren’t most initializations done with the CPUs in real-time mode? In that case, they are probably only able to run in MHz and not ghz
- PragmaticPulp 5y ago> This is a quad core machine that can do billions of cycles per second. That seems unnecessary and wasteful by at least two, possibly 3 orders of magnitude. Booting a system goes beyond just the CPU. Most of the time isn't spent computing things. It's spent waiting for data transfers, initializing peripherals, and so on. It's not just "tradition" to make it slow.