有人有用parallels12打鬥陣或是lol嗎? - MAC

Table of Contents

常常看到很多人有這些問題

用pd(或是vmware, vb)跑xx程式能順跑嗎或是已經切給vm所有的硬體資源了為何還是不順

小弟獻醜簡單解釋一下(資訊相關人員有計組,OS相關概念就左轉吧)

PD, VMWare, Virtualbox都是常聽到的Virtual Machine代表 也簡稱VM

Vm主要原理是在OS的kernelspace(系統核心、掌管電腦的重要功能,e.g.網路資訊傳輸、
系統輸入輸出、cpu執行程式的順序等等,相對應跑不重要的遊戲、繪圖、文書是userspa
ce 兩者之間會花費大量的時間消耗)
增加一個程序(hypervisor)來管理vm要用到的硬體資源

然後在上面開一個虛擬的空間跑另一個OS(又稱作guest os相對原本的就叫做host os)

又因為在guest os裡面所有的i/o(input output)都是經過hypervisor

而hypervisor又只是一個在host os裡面的process(程序)

而os對每個process會讓cpu平均分配一小段時間來輪流執行,等到所有process都執行完
再從頭開始(假設一個process分配到1/60秒)

也就是說hypervisor分配到1/60秒來執行guest os

guest os裡面又要再切1/60秒輪流執行

變成每次在guest os裡面的process一次只能分配到1/360秒

又每次換下一個process(每1/60秒過去)執行時都會消耗大量時間

而且在guest os又有userspace跟kernel space轉換的時間消耗

因此guest os裡面會非常多冗餘時間被消耗掉

也就會效能不佳

這在cs界是非常火熱的議題 因為data center現在正為vm效能不佳所苦

結論:要效能好就是外接顯卡或是買台桌電,vm就是免強湊合在用的,甚至程式開不起來
也不意外(這牽扯到vm的演進史)

題外話,macOS的kernel很穩的 絕對比windows的還穩,只是userspace的bug大概沒差多


--

All Comments

Hazel avatarHazel2017-07-15
說得好.. windows的核心真的悲劇
Victoria avatarVictoria2017-07-16
你覺得原原po會靜下心看此篇文以及消化這知識嗎... 推
Hamiltion avatarHamiltion2017-07-18
目前來說的話虛擬CPU已經算是很成熟了,但GPU還是一坨
...
Hazel avatarHazel2017-07-21
結論就是Mac的相容性很差,只能關起門來用,其他公司的程
式都不要用
Connor avatarConnor2017-07-25
Frederic avatarFrederic2017-07-27
你寫這麼多不如回叫他去看白算盤,因為他看的機率接近於零
Charlie avatarCharlie2017-07-29
謝分享,只是不太懂(非本科)
Madame avatarMadame2017-07-30
推講解