从编程角度看32位和64位
————————————————————————文章內容并非原創,看其他博主,有所收獲,積累一二——————————————————————————————————
一)64位系統和32位有什么區別??
1、 32位的地址線最多表示的數字是2的32次方,同理64位就是2的64次方。
2、64bit CPU擁有更大的尋址能力,最大支持到16GB內存,而32bit只支持4G內存
3、64位CPU一次可提取64位數據,比32位提高了一倍,理論上性能會提升1倍。但這是建立在64bit操作系統,64bit軟件的基礎上的。
4? ?在64位的操作系統上,32位的JVM,堆大小可以達到4G?
?5.線程的默認堆棧大小:在windows上32位JVM,默認堆棧最大是320k?64-bit JVM是1024K。
?
二)什么是64位處理器?
? ? ? 電腦內部都是實行2進制運算,處理器(CPU)一次處理數據的能力也是2的倍數。8位處理器、16位處理器、32位處理器和64位處理器,其計數都是2的倍數。它表示的是一次處理的數據,處理信息的能力越來越大;因此64位處理在先天就比32位處理器具有快速的能力。32位處理器就是一次只能處理32位,也就是4個字節的數據,而64位處理器一次就能處理64位,即8個字節的數據。如果我們將總長128位的指令分別按照16位、32位、64位為單位進行編輯的話:舊的16位處理器,比如Intel?80286?CPU需要8個指令,32位的處理器需要4個指令,而64位處理器則只要兩個指令,顯然,在工作頻率相同的情況下,64位處理器的處理速度會比16位、32位的更快。而且除了運算能力之外,與32位處理器相比,64位處理器的優勢還體現在系統對內存的控制上。由于地址使用的是特殊的整數,而64位處理器的一個ALU(算術邏輯運算器)和寄存器可以處理更大的整數,也就是更大的地址。傳統32位處理器的尋址空間最大為4GB,使得很多需要大容量內存的數據處理程序在這時都會顯得捉襟見肘,形成了運行效率的瓶頸。而64位的處理器在理論上則可以達到1800萬個TB,1TB等于1024GB,1GB等于1024MB,所以64位的處理器能夠徹底解決32位計算系統所遇到的瓶頸現象,速度快人一等,對于那些要求多處理器可擴展性、更大的可尋址內存、視頻/音頻/三維處理或較高計算準確性的應用程序而言,AMD?64處理器可提供卓越的性能。
?
三)事實上
? ?1目前只有server VM支持64bit JVM,client不支持32bit JVM。?
? 2 .The Java Plug-in, AWT Robot and Java Web Start這些組件目前不支持64bit JVM?
? 3.本地代碼的影響:對JNI的編程接口沒有影響,但是針對32-bit VM寫的代碼必須重新編譯才能在64-bit VM工作
?
四)虛擬機
? ? ? Java虛擬機(JVM)是一個軟件規范?它們都包括JIT編譯器和垃圾回收功能(GC),其性能關鍵在JIT編譯器和垃圾回收功能的執行效率上。??????
? ? ? JIT編譯器實現了程序執行之前Java字節碼到硬件機器碼的動態翻譯,其背后的思想在于,相比Java源代碼,字節碼更小也更容易編譯,但付出的代價是需要在Java字節碼編譯為機器碼時花上一點時間,但與直接把Java源代碼編譯為機器碼相比,時間還是少得多的。在32位與64位的JVM中,相應的JIT在把Java字節碼編譯為最終的機器碼時,所花的時間稍微有所不同,64位還能進行一些優化;??
? ? ? 另外,在IBM與Sun這兩個版本的客戶端與服務端程序上,總體性能也會有所不同。 垃圾回收會收回對象不再需要使用的內存,它必須被經常執行以釋放對象不再訪問的Java堆。由于在32位與64位平臺上,Java堆中的數據大小會有所變化,所以會因為32位與64位JVM的性能存在差異,指針越大越GC管理越困難,導致相應垃圾回收的性能也會有所不同。?
轉載于:https://www.cnblogs.com/Su-feng-address/p/9683323.html
總結
以上是生活随笔為你收集整理的从编程角度看32位和64位的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解题:POI 2013 Triumpha
- 下一篇: 【mysql】配置 选项文件