講解 32-bit 同 64-bit W7 嘅分別...

(我見好多人都問同一條問題, 仲有好多人答埋啲錯嘅答案, 所以我喺度簡單咁講解一下, 希望對新手有用)

32-bit W7 只可以行 32-bit 的程式, 通常大部份遊戲都係行 32-bit...
64-bit W7 可以行 32-bit 及 64-bit 的程式, 有啲程式會跟嚟兩個版本, 如 Photoshop...

32-bit W7 的最大障礙係只支援 4GB RAM, 而 32-bit 程式的最大障礙就是每一個程式只可以用最多 2GB RAM...

用 Photoshop 去做比喻, 我們有 3 個方法去行... 分別係 32-bit W7 + 32-bit PS, 64-bit W7 + 32-bit PS, 64-bit W7 + 64-bit PS

32-bit W7 + 32-bit PS, 呢個行法係三個行法之中最快嘅, 因為最直接同埋 CPU 計數最少, 不過一個 PS 只可以用到 2GB RAM, 而你部機又只可以用 4GB RAM...

64-bit W7 + 32-bit PS, 呢個行法係次等最快嘅, 因為 64-bit W7 要「扮」返個 32-bit 系統... 我用括號括住個「扮」字係想講, 其實唔係真係扮, 唔似 Virtual PC 咁扮嘅, 所以唔會好似 VPC 咁慢... 呢個「扮」嘅方法叫 Windows-on-Windows (又稱 WOW64), 係一個好快嘅扮嘢方法, 詳情唔講, 有興趣自己搵...

64-bit W7 + 64-bit PS, 呢個係三者之中最慢嘅, 原因係因為 CPU 每計一次數, 因為每個 number 都大咗一倍, 就會用多一倍嘅「快取記憶」, 而呢個記憶又唔可以加大嘅 (喺粒 CPU 入面), 就係你個 CPU 個盒右下角寫住嘅 L2 Cache, 例如 8MB/12MB... 呢個「快取記憶」就係用嚟幫你粒 CPU 加速, 例如你問 3 * 7 = 21, 粒 U 計過一次, 下次你再問佢, 佢就唔會再計多次, 直接由「快取記憶」去拎返個答案出嚟... 越貴嘅 CPU, 「快取記憶」就越多...

即係話通常嚟講, 64-bit W7 行 64-bit 程式係最慢嘅, 而唔係最快... 除非有兩點: 1. 個程式要計好多小數位嘅數, 例如 video compression; 2. 個程式識用好多 RAM 去加速自己, 例如 video editing, 一早將成條片 load 晒入 RAM 先慢慢做...

(唔信嘅話自己睇 http://blogs.adobe.com/scottbyer/2006/12/64_bitswhen.html)

我咁講完, 或者你會好想立刻去上 32-bit W7 而唔去上 64-bit W7, 睇埋下半部先再作考慮...

如果你部電腦係行得一個程式, 而你又知你個 Photoshop 一定用唔晒 2GB, 咁就上 32-bit, 但係一部腦又點會只係行一個程式呢...

你用部腦, 有好多時會發現個 harddisk 成日 load... 其實主要都係 W7 用 harddisk 嘅空位代替 RAM, 我哋叫 paging... 好簡單咁睇, 例如你有兩個程式行緊, 每人用 1GB RAM, 你部機得 1.5GB RAM, 當 W7 發覺你有啲 RAM 唔係成日用嘅時候, 佢會將啲 RAM 嘅資料 save 落 harddisk, 然後空返出嚟俾你用, 你變相就多咗 RAM 用... 又或者, 當你個程式要搵返啲 RAM 嘅時候, 就要由 harddisk 度 load 返出嚟... 因為 harddisk 一定慢過 RAM 好多, paging 呢步驟係最慢最花時間嘅... 同埋, 做人有好多時都要留有餘地, 唔會等你用晒啲 RAM 先至急急腳 save 落 harddisk, 所以, 如果你有多餘嘅 RAM, 係可以唔駛 save/load harddisk 咁多次, 變相即係快咗...

要幾多先夠就因人而異, 不過, 就算有多都唔等於佢唔會放啲 RAM 落 harddisk 度... 原因好簡單, 因為 RAM 有好多方便嘅用途, 例如你 copy 一個 100MB 嘅 file, 如果 W7 見倒有記憶體有空, 佢就會順手放 100MB 落去 RAM 度, 等你再開個 file 出嚟唔駛再去 harddisk 度... 當然, 呢啲 RAM 唔用一陣好快就會清, 但係既然 RAM 有空位, 放埋落去博你再開個 file 加速都好, 所以 W7 唔會用儘晒所有 RAM, 做嘢一定要留有餘地...

(如果你問我要幾多 RAM 先夠, 最簡單就係加 RAM 加到個 harddisk 唔係你部腦嘅樽頸位, 即係 harddisk 唔會無必要咁郁)

言歸正傳, 雖然 32-bit W7 + 32-bit PS 係最快, 但係如果你唔多夠 RAM, 而你行嘅程式又好多嘅話, 呢個方法一定會慢過其他方法, 因為 32-bit W7 只有 4GB RAM 你用, 發現唔夠 RAM 就要做 paging... 但係你用 64-bit W7 + 32-bit PS 就完全唔同, 當你發現成日 paging 唔夠 RAM, 你就可以加到去 8GB RAM, 效果仲要係立竿見影...

雖然 64-bit W7 + 32-bit PS 係慢少少, 但係唔會慢到你會察覺得到, 你行 benchmark 可能會見倒, 但係你日常咁用一定唔會覺, 仲有, 呢個技術唔係今時今日出, Win3.1 行 16-bit, Win95 已經有 WOW32 (即係 16-bit 程式行 32-bit Win95), 所以已經好成熟...

(題外話, 就算你放晒 4GB RAM 落去 32-bit W7 度, 你都未必用得晒 4GB... 例如你張 display card 有 512MB RAM, 咁你就只可以用 3.5GB RAM, 最尾嘥咗嗰 0.5GB RAM 係變咗做你 display card 嗰 512MB RAM, 你唔用得, 只可以俾你個 display card driver 用...)

[ 本帖最後由 compulim 於 2009-11-3 10:00 編輯 ]

多謝分享,事實較為複雜
http://zh.wikipedia.org/wiki/64%E4%BD%8D%E5%85%83

一個常見的誤解是:除非電腦安裝的記憶體大於 4 GB,否則 64 位元架構不會比 32 位元架構好。這不完全正確
部分作業系統保留了一部分行程位址空間供作業系統使用,造成使用者程式可用於映射記憶體的位址空間減少。例如,Windows XP DLL 以及 userland OS 元件映射到每一個行程的位址空間,即使電腦裝有 4 GB 的記憶體,也僅留下 2 至 3.8 GB(端視其設定)的可用位址空間。這個限制在 64 位元 Windows 中並不會出現。
檔案的記憶體映射對 32 位元的架構而言不再合用,尤其是相對便宜的 DVD 燒錄技術的引入。大於 4 GB 的檔案不再罕見,且如此大的檔案無法簡單的映射到 32 位元架構的記憶體;只能映射檔案的一部分範圍到位址空間上,並以記憶體映射存取檔案,當有需要時,就必須將這些範圍映射進或映射出位址空間。這是一個問題,因為充裕的記憶體映射仍是從磁碟至記憶體最有效率的存取方法,如果作業系統能適當實行的話。

[ 本帖最後由 cranberry 於 2009-11-3 09:21 編輯 ]

TOP

你第一點我喺最後個括號入面寫咗, 就係 32-bit 一定用唔晒 4GB RAM 呢個問題...

第二點, 就算你有 12GB RAM, 你都唔會傻仔到將整個 4.7 GB 嘅 DVD 檔寫入記憶, 再寫去 DVD 碟度... 有三個原因:
1. 4.7GB 可能佔現在嘅電腦嘅 40-60% RAM, 你一下就用咁多, 其他程式好可能要做 paging 去就你...
2. 就算唔駛做 paging, 你都要做 memory defrag (如果係一個 4.7GB data structure 咁計), 要幾秒時間... 你試下開一個 4GB RAM 嘅 VPC 就明白...
3. 因為 4.7GB 全部都係 data, 如果有另一個程式要用 RAM 時, 始終都會將你嗰 4.7GB page 返落 harddisk, 到頭嚟都係一樣要由 harddisk 拎返 (除非你 mark 佢做 no paging, 但係會加大 memory pressure, 部機一定變得慢咗)...

[ 本帖最後由 compulim 於 2009-11-3 09:53 編輯 ]

TOP

回覆 1# 的帖子

thank you. 想問多樣野,32/64bits 喺講緊both個bus 同 data type?如果係,一個optimized既64bits program(on 64bits OS)同一個optimized既32bits program(on 32bits OS)應該用差唔多既 L2 cache?

[ 本帖最後由 pat88 於 2009-11-3 09:46 編輯 ]

TOP

係講緊 CPU...

正正係因為 64-bit 程式嘅 data type 用多一倍 L2 cache, 所以變相 64-bit 程式用嘅 cache 係少過 32-bit 嘅...

TOP

原帖由 compulim 於 2009-11-3 09:50 發表
係講緊 CPU...

正正係因為 64-bit 程式嘅 data type 用多一倍 L2 cache, 所以變相 64-bit 程式用嘅 cache 係少過 32-bit 嘅...


我都想問一問,之前出既cpu,如E6750,已經話行64 bits instruction set,咁係咪即係呢方面應該64 bits OS有優化
http://ark.intel.com/Product.aspx?id=30784

Essentials
Status        Launched
Launch Date        Q3'07
Processor Number        E6750
# of Cores        2
Processor Base Frequency        2.66 GHz
L2 Cache        4 MB
FSB Speed        1333 MHz
FSB Parity       
Instruction Set        64-bit
Embedded       
Supplemental SKU       
Lithography        65 nm
Max TDP        65 W
VID Voltage Range        0.85v-1.5v
1ku Bulk Budgetary Price        $183.00

TOP

最想知道的就是: 有什麼常用PROGRAM係64BIT下是不能或不正常運作呢?
如果我喜歡打ONLINE GAME,係唔係唔可以安裝64BIT?

TOP

原帖由 compulim 於 2009-11-3 09:02 發表
(我見好多人都問同一條問題, 仲有好多人答埋啲錯嘅答案, 所以我喺度簡單咁講解一下, 希望對新手有用)

32-bit W7 只可以行 32-bit 的程式, 通常大部份遊戲都係行 32-bit...
64-bit W7 可以行 32-bit 及 64-bit 的程 ...

你講o既野唔完整
或者ps 係無對64bit 做優化

你講到bit 數大左晒左memory
但事實上,64bit 除左係增加memory address外
佢同時(同一個instruction) 處理o既data 都比32bit多左一倍

就正正因為佢用多左一倍memory,亦都同時處理多一倍o既data..
咁樣會令佢快左
個問題係如果o的software無做好優化
佢明明有64bit 俾佢放野,佢都只係放32bit o既野入去,咁樣自然係晒左位..但又無快到

TOP

原帖由 insanity 於 2009-11-3 13:34 發表

你講o既野唔完整
或者ps 係無對64bit 做優化

你講到bit 數大左晒左memory
但事實上,64bit 除左係增加memory address外
佢同時(同一個instruction) 處理o既data 都比32bit多左一倍

就正正因為佢 ...


what you said make more sense

TOP

原帖由 cranberry 於 2009-11-3 13:43 發表


what you said make more sense


x2....
不太同意compulim兄所講win64+ps64係最慢, 如果係o甘,adobe真係有o的問題, 無對ps64優化.

TOP