比较喜欢折腾一些新东西,但是这些东西对系统的配置要求可能不同,这就会导致又需要重新配置环境,这不是关键,关键是可能会干扰日常使用的环境
比如我在 github 上找了一个项目,配置完成后死活编译不过去,卡在一个地方不动,但是开了一个新的虚拟机配置一个新环境就编译通过了。
但是采用这种虚拟环境,不知道对物理机的 cpu 利用率高不高,编译速度会不会断崖式下跌。
比如 chromium 的编译,我在物理机上都需要编译长达 4 个小时,虚拟机会不会消耗远大于 4 小时的时间,
还有一种情况就是,虚拟机中会不会存在和真实物理机的差异,导致编译异常或者失败的情况。
有一个想法是双系统,但是双系统切换系统不太方便,而且装多个系统也比较麻烦。

买个 minipc 随便换系统

没法持久化啊

qemu 一块独立的硬盘直通, 效率应该还可以吧

GitHub action

nix-shell? nixos.wiki/wiki/Development_environment_with_nix-shell

不是,你这不是说的就是 docker 吗?

起个 docker 进 docker 里编译呗

要么容器,要么虚拟机呗

VMware 这种虚拟机不会有很大的性能开销,可能是 4 小时多一些,但是不会是远大于四小时。具体拿个小一些的项目编译一下测试也行。

如果楼主用的是 Linux, 那么 lxc 完全够用了,Ubuntu 还封装了一个 lxd 作为 Web 前端

vagrant ,支持 virtualbox vm ,或者就用 docker 起 container

wsl2,不做限制,吃满宿主机资源

Ubuntu 提供的 multipass ,不过只能用 Ubuntu 系统

突然发现,docker 也能安装 windows

qemu/kvm 遥遥领先

最小化性能损失就 容器化吧

暂时还是用 vmware 结合快照使用吧,谢谢各位了

wsl2 并不完全独立,还是会发生交叉的,前几天才碰到过一次,zx 这个库,在存在 wsl 的时候,会默认调用 wsl 里面的 node 跑脚本,我折腾到通宵才查出问题所在。。。

vmware 的 cpu 性能相对宿主机性能损耗很少的

orbstack

你这需求 hyper-V 就行了,别折腾了。

linux 的话直接 kvm 一步到位,cpu hostpassthrough + Pci passthrough ,可以把网卡,显卡都直通给虚拟机用,intel 十代以前核显还能开启 intel gvt-g 让主机和虚拟机共享一个显卡,功耗和性能都最优
这些 vmware 和 virtualbox 都做不到

这个时候就要说到 LXC 了, 我发现这个东西是真的挺好用的, 虽然我目前也不怎么懂

lxd ,除了支持 lxc 容器之外,还支持虚拟机;一站式管理。 通过 lxc shell 登陆各个虚机/容器很方便,镜像丰富,支持 dir/zfs 等各种后端存储,还支持快照。也能在其他机器上远程执行 lxc 指令管理机器。

ghost

PVE

code.visualstudio.com/docs/devcontainers/create-dev-container

Hyper-V

现在的 CPU 硬件虚拟化性能损失很低,主要的性能差距是 IO 。如果你直通磁盘+全额分配 CPU 核心给虚拟机,那性能差异不会很大

宿主?虚拟环境的需求?临时性的 win+win ,可以用 sandbox 。持久化建议 hyper-v ,Windows 下性能较好,但功能偏少。docker desktop 的兼容欠佳。

hyperv 吧,hyperv 有一个好处,就是可以用 Terraform 这样的 iac 工具部署虚拟机

反正就是看看项目,github 的 codespace

windows 的话可以尝试下从 vhdx 启动,和物理机没差别, 想清理环境直接把 vhdx 文件考过去覆盖下又是好汉一条.
linux 下就上 btrfs 吧,做好快照, 比 vhdx 更省事.

vagrant 创建 libvirt 虚拟机

其实没有硬件的话,就 Vmware Workstation 是最方便的,如果有一台不用的 PC 的话,我觉得用 PVE 或者 Vmware Esxi 更合适些,就是不知道会不会碰到你说的编译问题,按理说不会,没测试过。

conda

这场景我熟,开一个虚机就够了,也没必要用 docker 每次重头搭环境,独立环境通过 nix 相关工具维护。

下边是用来创建独立环境的工具,排名不分先后。效果上你可以理解为 conda, 创建一个具备你要的环境的 shell, 不用了退出去就回到日常环境了(易用性上推荐 devbox 和 flox )

devbox
devenv
flox
organist
nix develop
guix shell (p.s. 基于 guix 而非 nix, 文档好但包比较老,不推荐)

ventoy 来启动虚拟机镜像,就是物理机加载虚拟机镜像来运行,实现性能 0 损耗,
感兴趣可以去 ventoy 官方看看文档,我现在就是这么玩的,
主系统 ubuntu,利用 vbox 生成 win11 跟 linux 系统镜像,
然后 grub 加入 ventoy 来启动镜像,这样对主系统实现 0 干扰,因为虚拟机系统只想当一个巨大的文件

docker

正解

github.com/dockur/windows

要 Windows 环境就 HyperV ,要 Linux 环境就 WSL

虚拟机就行了,cpu 开小很小的,个人经验百分之个位数。

虚拟机损耗不大,只要你 CPU 不是太久,支持一些虚拟化特性就可以