Opstartstid er altid trættende. Åbner man en fil i fx VS eller VS Code, kan godt tage et par sekunder eller fem, og det er irriterende. Med emacs server kan man reducere opstartstiden væsentligt. Lad mig demonstrere.

Jeg har en rimelig plain og lille C# fil

    using System;

    namespace console
    {
        class Program
        {
            static void Main(string[] args)
            {
                Console.WriteLine("Hello");

                while(true)
                {
                    System.Threading.Thread.Sleep(5000);
                    Console.WriteLine(" world!");
                }
            }
        }
    }

Jeg har lavet en simpel "tæl høj"-test, til stor forvirring for min familie, med følgende:

  1. Visual Studio 2019
  2. VS Code
  3. Emacs (spacemacs)
  4. Emacs client (hvor serveren er startet op når Windows starter)

Resultaterne er lige rullet ind:

  1. Visual Studio 2019 - 6 - 8 sekunder
  2. VS Code - 4-5 sekunder
  3. Emacs - 14 sekunder
  4. Emacs client - Mine øjne siger  et sekund, min mund siger 2-3 sekunder. Åbner man en =.cs=fil skal lsp serveren lige startes op. Jeg er tættere på 2, end 3. Det føles dog mere snappy. It is all about the user experience!!

Det er jo rimelig hurtigt, men hvordan kan det være? Det er faktisk lidt snyd, og dog. En kold start på emacs kan tage LAAAANG tid, og det kan diskuteres om det man bruger ikke er overbloated, hvis man har brug for at starte den op allerede under opstart af ens OS, for at den skal være snappy. Jeg vil tro at VS Code eller VS kunne være lige så snappy, hvis de implmenterede en server/klient arkitektur.

Det som sker er at emacs serveren startes op under opstart sit OS. På Windows 10, smider man blot en gennemvej til runemacs.exe --daemon under startup. Start up folderen kan nåes rimelig let ved at kalde WIN+R, og skrive shell:startup

/images/run.png

Opret derefter et link i folderen. Når Windows starter op vil den starte serveren, som man kan connecte til. Er du i en kommando prompt, kan dette gøres ved emacsclientw.exe -nc Program.cs, hvis vi vil åbne Program.cs. Smart. Vil du gerne have en gennemvej på din applikationslinje, kan du blot modificere target på gennemvejen til også at inkludere -nc:

/images/emacsprop.png

Samme fremgangsmåde findes for andre operativ systemer.

Et lille tip: hvis du trykker på "Change Icon", finder frem til emacs.exe filen, så kan du vælge ikonet igen.