[racket] tool performance: Windows vs Linux
On 12/22/2014 12:02 AM, Neil Van Dyke wrote:
> Offhand, I don't know why you're seeing such a big difference, then.
>
> Regarding various ways that filesystem is cached in RAM, I
> consistently see a big improvement in Racket startup times when
> there's caching. Maybe you're using SSD?
No SSD ... all is spinning metal. And as I said previously: Linux is
a virtual machine running on VMware on Windows.
Timing "racket -e '(void)' gives me ~225ms consistently on Linux
... 3-4s consistently on Windows.
Timing a fresh raco make of one of my files is more interesting:
Linux :
time raco make -v utility.ss
"utility.ss":
[output to "./compiled/utility_ss.zo"]
real 0m0.727s
user 0m0.484s
sys 0m0.244s
Windows:
Measure-Command { raco make -v utility.ss }
"utility.ss":
[output to ".\compiled\utility_ss.zo"]
Days : 0
Hours : 0
Minutes : 0
Seconds : 18
Milliseconds : 287
Ticks : 182879147
TotalDays : 0.000211665679398148
TotalHours : 0.00507997630555556
TotalMinutes : 0.304798578333333
TotalSeconds : 18.2879147
TotalMilliseconds : 18287.9147
With the file already compiled:
Measure-Command { raco make -v utility.ss }
"utility.ss":
[already up-to-date at ".\compiled\utility_ss.zo"]
Days : 0
Hours : 0
Minutes : 0
Seconds : 11
Milliseconds : 989
Ticks : 119898359
TotalDays : 0.000138771248842593
TotalHours : 0.00333050997222222
TotalMinutes : 0.199830598333333
TotalSeconds : 11.9898359
TotalMilliseconds : 11989.8359
Even just checking timestamps, Windows takes 10 times as long as 1st run
on Linux.
Subsequent runs see 1-2 seconds quicker, probably due to caching the
executable ... but insignificant compared to Linux.
> Side point: I generally encourage programmers to run GNU/Linux
> (without Gnome bloat) as their main workstation, unless they're
> developing specifically for Windows or Mac. Windows itself might not
> be the cause of your current problem, but it's the cause of similar
> problems.
The Linux machine is a server install - console only - so there
certainly is a great deal of difference there. But again, Linux is
running in a VM with 4 LCPUs (whereas Windows has 8) and is performing
it's disk I/O through VMware and Windows.
> Neil V.
George