Well, this is of course not related to this newest version of Delphi, it's the right question for every Developer, but with every new version of Delphi, this topic is back on the table. If you're looking for my opinion on 10.4.2 - please just scroll down!
Declaimer: This is not related to Embarcaderos specifications of minimum requirements, this is "just" my point of view.
Let's start with a little example:
If you were a carpenter, would you buy a jigsaw from the hardware store for 49.95 or would you have a high-end circular saw table that can do everything you need?
If you have to cut down an entire forest, you wouldn't use a handsaw, but a chainsaw, would you?
Is it possible that your 3D printer cost more than the laptop on which you "work"?
I just read a question about the new IDE: "If I press a key and the LSP has to update, I can hear my Laptop-Fan is ramping up...
Laptop? Really? Are you kidding me...
There are some Laptops out there, you can probably use...But for this price, you better buy a third Monitor.
Ok, If my system is mining in the background and I'm watching a Video while loaded up 3 VM with different IDE's sometimes I hear the fans of my watercooler spin a little bit faster. Just joking, minding on the GPU is stupid.
Your Workstation is your main tool for work, yes I call it Workstation, Powerhouse, whatever... If you call it "My PC" and you are not able to run the latest AAA games on it. Buy a new one!
After 35 years of Development here is my list of NO-GOS (in unsorted order):
- Use a non-SSD Harddrive or an SSD attached via USB.
- Not installed the latest OS
- less RAM than 16MB
- Screen resolution less than 1920x1080
- Only one Monitor.
- Not using a VM
- Using a non-standard keyboard. (perhaps you can work on a Laptop keyboard I could not)
- Not using a Source-Code-Management System (svn, git, mercurial)
- Firemonkey App development without my FDK... ;-)
- I would never want to develop without a VM again. So: Use a VM. I like VMware, there are some issues with it but overall it runs perfectly. Using a VM set the bar for a good system a little bit higher! But having auto-snapshots every hour and be able to revert the installation back to a working copy if you have installed something stupid or your installation just broke down is worth it.
- Your CPU should have a core-count that is double as high as you would like to have in your windows system. I prefer 4 cores so with hyperthreading you have 8 logical cores in my windows. That's why my CPU has 8 cores with 16 logical cores. 4 for the VM and 4 for the Host. I'm an Intel-Fan-Boy, never tried AMD. My colleague has bought a board with the latest AMD CPU and he has so many problems...
- Use 3 Screens.
- Center screen for the IDE.
- Left screen for the undocked the Objectinstpector and structure view.
- Right Screen for the program group and the component palette.
- My Line for breaking up the source line is not at 80 anymore, it's on 160!
- While debugging, place your program on the right screen (program group not shown).
- Most of the time when doing boring stuff I put my OI docked at the left side of the IDE on the center screen because I switch my left screen to my Host for watching YouTube videos or other stuff...
- If you want the "same speed" inside a VM that you would expect from your main system, Harddisk and RAM performance is the key.
- I've installed 64GB of RAM so I can start 3 VM's with 16GB and still have 16GB left for the host system. Or any other combination.
- Perhaps you think: RAM-Speed is not so important. I did not test this and perhaps high-speed RAM has a not-so-big impact on your system. I prefer RAM modules that are recommended by the Mainboard Manufacture and often higher speeds come with a huge impact on the price. But this looks not so bad compared to the rest of the world.
- On the Drive-Side there is no room for low-cost at all! Maximum performance is the key to a smooth-running VM because the VM is often very disk intence.
- You get the best performance with an M.2 Drive. If you combine 2 or 4 of these high-speed M.2 to a RAID 0 stripe-set you are pretty close to the maximum speed your bus could handle.
- Never ever use your VM on a Harddrive or a single SSD connected to a SATA connector. I had SSD failures in a RAID 10 and this saved my installation.
- For Backup I have a RAID 10 of 4 SSD's and a RAID 5 with 3 M.2! Here is the trick: I use the hourly auto-backup of VMWare. That's fine. From time to time I shutdown my VM and copy it (1,6 TB) from a RAID 0 (4 x M.2) to to the RAID 5. This is the best performance I could get. After a few minutes, I can restart my VM and then copy the files for this RAID over USB C 3.1 Gen II to an M2. in a fan-cooled external housing. With this, I get the maximum performance USB could handle. I really would like to have a Thunderbolt connection (should double the speed), but the card I bought was not working and I have no spare slot on my Mainboard.
- I know some people prefer Air-Cooled systems. But I'm using a custom loop for so many years now and the only problem I had once was because my soft tubes are getting old and one fitting was leaking. My System runs quiet, always below 50° C (often below 45° C) and with adding a little bit of water from time to time I had no maintenance to do. (Yes, I just use water, not any colorful additive or even distilled water) That's why I have no little particles clocking up my block. With my last CPU/Mainboard update I installed a new reservoir (the old Plexiglass had got some cracks) and switched to a new pump (just in case). This was the only maintenance in 10 years.
- Install a really good graphics card. Perhaps not so important for VCL developers, but as FMX uses the GPU to render, you'll get the speed you've never seen before with VCL.
- For the App development, I'm using a Mac-Mini. Ok, I switched out the hard drive and installed an SSD. (I really should test a macOS-VM sometime).
- And similar to point 9 of my no-gos - use my FDK for your FMX, VCL, and App-Development on the mobile platforms.
Back to 10.4.2
Why on earth did they do this?
But while using this feature for some days - I love it - you can faster correct your mistakes or change a var name because you misspelled it. This allows you to develop faster, believe me.
Recently migrated old D2007 application to D 10.4.2 and compile time lowered to 1/3 of time. I am using Ryzen 4500U. For your information, current Ryzen are best in single thread and this absolutely important. Use NVMe SSD. For your information, in 10.4.2 I am able compile 2MLOC in about 11s (on mobile Ryzen, not desktop).
ReplyDeleteHi, i am using OWC's 4M2 external storage that is TB3 and supports 4 NVME disks. The price is reasonable too.
ReplyDeleteHi, very nice a article. I am using Mac hardware, with Windows Installed and OWC 4M2 external storage that is TB3 and supports 4xNVME SSDs.
ReplyDeleteUp until Windows 7 switching hardware required reinstalling all the software which is a pain in the lower back. So I avoided it if possible. With the arrival of Windows 10, I might think about updating my hardware more often, because I can simply stick the boot SSD into a new computer (was possible with Windows 8 too).
ReplyDeleteI agree with your analysis, but in my case I've got used to work on high-end laptops too.
ReplyDeleteBuuut, extended by 2 monitors, external pro-keyboard and pro-mouse, etc.
So I have a full "dektop like" experience while in the office, with the ability to be still mobile, if needed to visit customers.
That way I don't need to have them both, expensive desktop and expensive laptop, if I need to be mobile.
But you're absolutely right, don't use lame hardware, to little RAM, too little harddrive (I always was annoyed every day, when I reached its limit).
Hello Frank, thank you very much for this very informative article. So far I have not found real useful informations which hardware would suite best.
ReplyDeleteI have just invested in a new very powerful workstation (Intel i9, 64 GB Ram, M.2 SSD, RTX3070, ...), but I am still not sure how to configure my VM (VMWare Workstation Pro 16).
These are my settings:
16 GB Ram
2 Processors
10 Cores
Which are your preferred settings?