@blametroi It gets interesting to analyze performance increases.
As a general "rule of thumb" - going from spinning HDD to SSD (if the SSD is a SATA NVME NAND) - one can often see a 10x speed improvement (the computer company HP in their promotions say their engineers get a 17x improvement).
As I see it, your operating system (together with QB64 folder) is on a SSD (I guess it is SATA NVME NAND).
If one has a PCIe NVME SSD (which uses a much much faster "BUS" than SATA which is by design to maintain total compatibility to old spinning hard drives AND why bother having a SATAv123 -just go for something totally different i.e. PCIe (now version 5 very expensive is out even much faster) - one could expect speed improvements over a SSD (NVME NAND).
Now for the catch...
Suppose you were just wanting to copy a 4 GigaByte file (I choose such a large (sort-of) file purely for timing accuracy concerns. Using the high precision timer routine mentioned a while back on this forum - where timing resolution (note I DID NOT SAY accuracy) approaches microseconds - the following are timings on my computer all done on the same day etc
' 4gb file -> T:\ (unit = seconds, rounded up to milliseconds)
'
'1 PCI256g 10.730 11.035 10.300 10.071 9.494 9.642 9.726
'2 RamDrive 11.974 9.323 9.468 9.391
'3 SATAhd 74.408 74.467 9.671 10.348
'4 sdhc 51.884
'5 usbNTFS 135.160 9.900
'6 usbEXFAT 42.833 53.888
'7 SATAred 13.640 9.554
'8 PCI2tb ~ 1.75
'9 eHDD 125.407
'10 PCI2tb-usb3 11.643
'11 PCI2tb-usb2 124.882
where T:\ was a special RAMdrive (configured from my 32GByte RAM)
You will notice I said "not accuracy" above, the mutiple runs above show a timing spread for the same task.
My OS etc is on a PCIe NVME 256 GByte .M.2 drive
The RAMdrive (NOT T:\) is also configured from my 32GByte RAM
The SATAhd was a old spinning HDD about 240 Gbyte (used many many times)
The sdhc was a Samsung 512 Gbyte SDHC card
The usb sticks (different capacities) formatted as indicated
The SATAred is a SSD NVME NAND (at the time essentially unused)
THE PCI2tb was the 2 TByte M.2 PCIe NVME NAND but was temporarily installed (OS now on HDD)
The eHDD was the exact same SATAhd above but installed into a USB adapter - and using a usb3 port
The PCI2tb was a PCIe NVME 2 TByte installed into a usb adapter - and using the respective usb ports
The above shows some instances where I "forgot" to clear the Windows memory cache before reruns - Windows, it seems, remembers the latest 4 GByte file until I wipe any knowledge of windows accessing that file.
A side note, is that for the above trials I needed to have my Windows 10 x64 OS on a mechanical HDD - simply because I have ONLY one PCIe slot (the proper location for my OS). Windows 10, in the meantime, has "yet again" changed the rules and so now I CANNOT BOOT OFF a HDD - my computer now can only work with the OS installed on the one and only PCIe slot.
I "cheated" by using a fair sized file (4 GByte) - in reality (say QB64 programs) files are much smaller and many different things occur. For example, if you broke up the 4 Gbyte file into a memory equivalent number of smaller files - you would anticipate that because of "overheads" to process each file that it would take longer.
Just for fun, I tried running the trials but using 1 Gbytes into exactly 4 KBytes (4096 bytes) files - i.e. 262,144 of them. I gave up when doing SATAred to T:\ - it was taking about a whole day to copy. Effectively now the "random" file effects (and other things) now kick in.
So there comes a point when "smallish" files do not notice the difference between various memory media.
I am interested in the mklink commands (never heard of it before) - how to use, where to get etc would be appreciated.