回覆列表
  • 1 # 程式設計師小葛

    很早的時候,我們玩遊戲除了在電腦上玩,還有就是在很多的遊戲機上玩。但是,不同的遊戲都可能會有不同的主機裝置,想要什麼遊戲都玩,可能在買遊戲機的開銷上都不小。

    因此,聰明的程式設計師們就開發了一種叫模擬器的程式,能夠在電腦上模擬出各種遊戲機的環境,從而能夠在電腦上執行各種主機的遊戲了。

    但是,很多的模擬機需要的配置,比遊戲主機的配置高出不少。

    例如PS3的模擬器

    如果想要在電腦上執行PS3模擬器的遊戲,至少CPU需要i5-6600K以上,顯示卡需要GTX1050ti以上,都還不是十分流程。但是PS3的配置呢CPU是IBM Cell Broadband Engine(65nm) ,顯示卡只有256M的視訊記憶體,記憶體也只有256M。

    為什麼會有這種情況呢?

    這是因為,每種遊戲機都有自己的系統環境,而遊戲軟體其實是透過編譯器,編譯成為適合遊戲機作業系統的檔案,然後直接和底層裝置通訊,因此可以完全的發揮遊戲機的硬體效能。

    但是要透過模擬器在電腦上執行卻不一樣。首先,我們使用的Windows作業系統是不認識這個遊戲軟體中的各種元件的,想要執行,就要找個翻譯。而模擬器就擔當了這個翻譯的角色。

    而有時候,可能還有些生僻詞,翻譯一次後,Windows作業系統也不認識,還需要多次翻譯,這就需要消耗大量的效能。越是大的遊戲,其中的語言也就越複雜,模擬器要實時的翻譯大量的這種語言,壓力就會更大,因此,資源的開銷也就越大了。

  • 2 # FungLeo

    提問者對於這樣一個問題的提問可以說,提問者應該對於虛擬系統這樣的一個概念是沒有一個比較清晰的認知的,所以呢,我想簡單的給提問者說一說這具體是一個什麼樣的原理,以及為什麼會產生這樣的問題。

    我就拿現在非常火熱的安卓模擬器來舉這個例子吧,實際的情況就是,我們的普通的電腦的效能是要遠遠比現在的智慧手機的這樣的一個性能要高出很多的,但是即便如此,我們在使用電腦上的模擬器去,玩很多的遊戲的時候,會發現並沒有原生的手機來得那麼的流暢,這到底是一個什麼樣的原因呢?

    因為我們的電腦在執行這個虛擬機器的時候,他要執行其他的很多的東西,比如說你最起碼得執行一個作業系統吧,無論是windows還是Linux或者是蘋果系統,這一個系統就要佔據大量的運算資源啊,所以你安裝模擬器的這臺電腦的裝置的效能,一定要遠遠的高於模擬器模擬的那個裝置的效能,才可以模擬成功不是嗎?

    但是,這並不能夠解釋為什麼這個效能差異會那麼大,其實最重要的問題啊,還是很多指令的模擬,需要耗費很多的資源。

    比如說我們模擬遊戲機,我們必須知道遊戲機的那些底層的系統構架和PC電腦的這個底層的構架是完全不一樣的,也就是說我們在虛擬機器的實現上必須模擬出,和真實的那個遊戲機一樣的這樣的一個環境,才能夠讓這個模擬器能夠得到一個比較好的運轉,讓上面的遊戲能夠正常的執行。

    而這一切都是需要額外的計算的,比如說原來遊戲機可以直接執行乘法,但是我們的普通電腦只能夠執行加法,那麼它只能夠用加法去模擬乘法,這裡面的運算量比那個普普通通的乘法就要多出來很多很多了。

    當然我這只是打了個比方,我可沒有說我們普通的電腦只能進行加法運算,不能進行乘法運算,我只是透過這樣的一個比喻讓大家理解到,這個裡面具體是一個什麼樣的精神。

    所以一方面,要執行自己本來的系統,就需要佔據一部分的資源,另外在進行模擬的時候,又需要額外的去計算很多的東西,就造成了很多資源上的浪費,正因為如此絕大多數的模擬器的要求要比被模擬的那個裝置的效能要求要高出很多的根本原因了。

  • 中秋節和大豐收的關聯?
  • 難道說男的就一定要跟女的結婚嗎?如果兩男的相愛就不能結婚一起生活嗎?