<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body>
Daryl, <div><br /></div><div>A lot of that went over my head, but have you tried using kvm instead of VirtualBox? I'm assuming you're using Linux as a host system, here. I've recently started messing about with kvm and it's renowned to have better performance, since the VM plugs into a kvm stub in the host kernel, which apparently reduces the amount of abstraction needed and runs close to 'bare metal' speeds. </div><div><br /></div><div>I also learned that you can bring up a terminal in the client machine by simply using 'virsh console....'. This was after messing about needlessly setting up ssh server! :-) </div><div><br /></div><div>Neal. <br /><br />
--
<br />
Securely sent with Tutanota. Claim your encrypted mailbox today!
<br />
<a href="https://tutanota.com" target="_blank">https://tutanota.com</a><br /><br />18. May 2016 11:30 by <a href="mailto:nottingham@mailman.lug.org.uk" target="_blank">nottingham@mailman.lug.org.uk</a>:<br /><br /><blockquote class="tutanota_quote" style="border-left: 1px solid #93A3B8; padding-left: 10px; margin-left: 5px;"><div><div>WARNING: Random meandering follows...</div><div><br /></div><div>I have a talk tomorrow evening. I have absolutely nothing to show yet.</div><div><br /></div><div>However, I have been having AWESOME (I spend too much time around an American) fun tidying up and rejigging my performance analysis. I did a talk on this last year.</div><div><br /></div><div>It's a simple scheduling algorithm so all tight loops and floating point maths. It SHOULD suit JITs very well. The code size is small enough that it will fit into CPU caches.<div><br /></div><div>The code is as identical as possible across languages. I'm generally avoiding code that is too idiomatic; however, I'm using immutable structures where possible and recursive techniques in those languages that support it. I'm writing everything out to the terminal to stop those clever lazy languages avoiding calculating anything (I'm looking at you Haskell!)</div></div><div><br /></div><div>Results below:</div><div><br /></div><div><font face="monospace,monospace">Blitzmax: 0:24.87 real  23.99 user  0.24 sys<br />Monkey-X: 0:15.84 real  15.17 user  0.24 sys<br /> C# Mono: 1:01.38 real  58.84 user  0.83 sys<br />     C++: 0:12.73 real  12.05 user  0.21 sys<br /> Clojure: 1:01.01 real  62.52 user  1.01 sys<br />       D: 0:32.22 real  31.98 user  0.15 sys<br /> F# Mono: 0:58.05 real  57.32 user  0.52 sys<br />      Go: 0:23.41 real  23.19 user  0.17 sys<br /> Haskell: 0:38.96 real  38.27 user  0.50 sys<br />    Java: 0:30.41 real  30.43 user  0.25 sys<br />   OCaml: 0:43.50 real  43.19 user  0.20 sys<br /> Python2: 4:46.03 real  282.67 user  1.43 sys<br /> Python3: 4:26.41 real  264.80 user  0.72 sys<br />   PyPy2: 0:16.76 real  16.11 user  0.20 sys<br />   PyPy3: 0:32.44 real  31.34 user  0.34 sys<br />    Ruby: 2:31.46 real  149.54 user  0.54 sys<br />    Rust: 0:12.47 real  11.94 user  0.14 sys<br />   Scala: 0:31.63 real  31.25 user  0.66 sys</font></div><div><font face="Arial"></font><br /></div><div><font face="Arial">Ignoring the first two rows (which are proprietary game BASICs, but great fun for chucking together graphical demos), then the most interesting results are that Rust is quicker than Boost C++ and that PyPy is very nearly as quick as both.</font></div><div><br /></div><div>I'm not comparing against .NET C# and F#. I would expect those to perform much quicker, but of course they don't run on Mac OS/Unix/Linux! I would imagine C# would be in the 20-25 second range.</div><div><br /></div><div>Anyway. that wasn't the point of my email. I was setting up a VirtualBox VM to package all this up and so installed the latest Ubuntu (as I like to try new shiny stuff). Performance was really poor. Ubuntu has always been a bit graphics heavy and the acceleration isn't so good in VirtualBox it seems.</div><div><br /></div><div>So I'm going to do what I've done many times before and install a non-graphical Debian. I can run Emacs through there for code editing and Synaptic for package management. I can flick between virtual terminals with Ctrl-Alt-Fn (IIRC) and configure it to run a decently high resolution using GRUB.</div><div><br /></div><div>It sounds like an interesting experiment. How productive is it possible to be using the terminal? In the modern world of HTML emails and web-everything, it seems impossible to be productive (I'm not talking sysadmin activity here). Email? Word processing using Latex? Spreadsheets are fundamentally text based anyway so should be okay. Presentations would be an obvious no-go I expect. What compromises need to be allowed? Full screen image/PDF viewing perhaps.</div><div><br /></div><div>It might be an interesting experiment to undertake. Especially for someone who can code up missing pieces as needed. Especially for an old-school guy who considered the first GUIs to be a nice fad.</div><div><br /></div><div>"Someone" should take this on as an experiment and do a talk on it. I'm thinking a three month experiment.</div><div><br /></div><div>Daryl.</div></div></blockquote></div>  </body>
</html>