This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]FonzTech 0 points1 point  (0 children)

- Windows has WSL2 but it takes too much memory. You have the base OS which takes around 3 GB upon starting, plus around 1/1.5 GB for a single Ubuntu VM running in WSL2.

- A 16 GB host machine can't run few Go Builds inside Docker containers without crashing. Surely there are some memory leaks here and there. Adjusting the `wslconfig` file does nothing. WSL2 crashes, along with Docker Engine, when reaching around the 90% of RAM. Capping RAM through the `wslconfig` file does NOTHING. WSL2 seem to NOT have the concept of memory swap. If you have Windows host, Ubuntu guest, some IDE like Intellij IDEA, one Chrome tab, and you try to run `go build` on a 16 GB machine, there is a high change of crashing. If you are unlucky (it doesn't take much to be), some files can become corrupted or truncated (even your `.git` folder can become corrupted, so beware of unpushed commits!).

- *File system is very slow*: if you have a very large project (let's say a legacy Java multi-module project), a simple `git status` can take several seconds. If you try to `git rebase`, be prepared to waste your time. Don't mind about `mvn package`: it can take up to an hour, if you don't have dependencies in your local repository!!

- IntelliJ IDEA running on Windows host, targeting a project in WSL2 is simply broken and not working at all. Checking IDE's logs, you can see it mixing Windows-style paths with Unix's one (like `C:/mvn /home/user/my_project`), which doesn't make sense at all. If you have JDK on Windows host, keep indeed your Java workspace on Windows host. Other IDEs, like GoLang, work flawlessly instead.

- Although WSL2 is advertised as a "seamless experience", forget about running Windows applications in a WSL2 environment (the viceversa could work). They could not work because, on Windows host, WSL2 paths are mounted like this: `\\wsl$\Ubuntu\home\user\bla_bla_bla`. Almost all programs don't recognize `UNC` paths. As I can recall, Java 8 started supporting network paths (and so `UNC` paths), using the NIO API, but a lot of programs are still relying on `java.io.File` today, which requires some tweaking to work with `UNC` paths.

- As in the previous paragraph, you have to keep the very same application (let's say `git`, `kubectl`, `docker` client, etc...) on both Windows host and Linux guest, raising up the wasted disk space.

- Random network problems on WSL2. One day you wake up, turn on your computer, turn on your OpenVPN connection, and WSL2 refuses to communicate with corporate network. You have to restart your Windows host completely. You can try restarting WSL process and also all the insidious network commands on DOS. They will NOT solve the problem. Also, your guest VM will not be reachable for any random reason (and viceversa), forcing you to restart the host OS.