32-බිට් සහ 64-බිට් පද්ධති අතර ඇති වෙනස්කම් මොනවාද?
ඔබ ඒ දෙකම භාවිතා කර ඇත්නම්, ඔබ මුහුණ දී ඇත්තේ කුමන ආකාරයේ තියුණු වෙනස්කම් ද?
සමහර අවස්ථාවල 64-බිට් පද්ධතිවල 32-බිට් වැඩසටහන් භාවිතා කිරීම ගැටලුවක් වේද?
32-බිට් සහ 64-බිට් පද්ධති අතර ඇති වෙනස්කම් මොනවාද?
ඔබ ඒ දෙකම භාවිතා කර ඇත්නම්, ඔබ මුහුණ දී ඇත්තේ කුමන ආකාරයේ තියුණු වෙනස්කම් ද?
සමහර අවස්ථාවල 64-බිට් පද්ධතිවල 32-බිට් වැඩසටහන් භාවිතා කිරීම ගැටලුවක් වේද?
Answers:
සටහන: මෙම පිළිතුරු සම්මත x86 මත පදනම් වූ PC CPUs (Intel සහ AMD) සහ වින්ඩෝස් (සාමාන්යයෙන් අවසාන පරිශීලකයින් සඳහා වින්යාස කර ඇති පරිදි) සඳහා අදාළ වේ. අනෙකුත් 32-බිට් හෝ 64-බිට් චිප්ස්, වෙනත් මෙහෙයුම් පද්ධති සහ වෙනත් මෙහෙයුම් පද්ධති වින්යාසයන් විවිධ වෙළඳාම් කළ හැකිය.
තාක්ෂණික දෘෂ්ටි කෝණයකින්, 64-බිට් මෙහෙයුම් පද්ධතියක් ඔබට ලබා දෙයි:
එක් එක් ක්රියාවලියට 4 GB ට වඩා වැඩි RAM ප්රමාණයක් ඇමතීමට ඉඩ ලබා දේ (ප්රායෝගිකව, බොහෝ නමුත් 32-බිට් මෙහෙයුම් පද්ධති සියල්ලම භාවිතා කළ හැකි පද්ධතියේ RAM ප්රමාණය 4 GB ට වඩා සීමා කරයි, එක් යෙදුමකට උපරිම නොවේ).
සියලුම දර්ශකයන් බයිට් 4 ක් වෙනුවට බයිට් 8 ක් ගනී. RAM භාවිතයට ඇති බලපෑම අවමයි (මන්දයත් ඔබ ගිගාබයිට් පොයින්ටර් වලින් පුරවා ඇති යෙදුමක් නොමැති නිසා), නමුත් නරකම න්යායාත්මක අවස්ථාවෙහිදී, මෙය CPU හැඹිලිය මඟින් ලක්ෂ්ය 1/2 ක් රඳවා තබා ගත හැකිය (සෑදීම එය 1/2 ප්රමාණයෙන් effectively ලදායී විය යුතුය). බොහෝ යෙදුම් සඳහා, මෙය විශාල ගනුදෙනුවක් නොවේ.
64-බිට් මාදිලියේ තවත් බොහෝ පොදු අරමුණු සහිත CPU ලේඛණ තිබේ. රෙජිස්ටර් යනු ඔබේ මුළු පද්ධතියේ වේගවත්ම මතකයයි. 32-බිට් මාදිලියේ ඇත්තේ 8 ක් පමණක් වන අතර 64-බිට් මාදිලියේ පොදු අරමුණු 16 ක් ඇත. මා විසින් ලියන ලද විද්යාත්මක පරිගණක යෙදුම්වල, බිට් 64 මාදිලියේ නැවත සකස් කිරීමෙන් 30% ක කාර්ය සාධනයක් දක්වා ඇත (මගේ යෙදුමට අමතර ලේඛණ භාවිතා කළ හැකිය).
බොහෝ බිට් 32 මෙහෙයුම් පද්ධති ඇත්ත වශයෙන්ම ඔබ 4 GB ස්ථාපනය කර තිබුණද තනි යෙදුම් 2 GB RAM භාවිතා කිරීමට ඉඩ දෙයි. මෙයට හේතුව අනෙක් 2 GB ලිපින අවකාශය යෙදුම් අතර දත්ත හුවමාරු කර ගැනීම, මෙහෙයුම් පද්ධතිය සමඟ සහ රියදුරන් සමඟ සන්නිවේදනය කිරීම සඳහා වෙන් කර තිබීමයි. වින්ඩෝස් සහ ලිනක්ස් ඔබට මෙම වෙළඳාම යෙදුම් සඳහා 3 GB සහ 1 GB බෙදා ගැනීමට ඉඩ දෙනු ඇත, නමුත් මෙය වෙනසක් අපේක්ෂා නොකරන සමහර යෙදුම් සඳහා ගැටළු ඇති කළ හැකිය. 1 GB RAM ප්රමාණයක් ඇති ග්රැෆික් කාඩ්පතක් අක්රීය විය හැකි යැයි මම අනුමාන කරමි (නමුත් මට විශ්වාස නැත). 64-බිට් මෙහෙයුම් පද්ධතියකට තනි-බිට් 32 යෙදුම් සමඟ සෙල්ලම් කිරීමට සම්පූර්ණ 4 GB ට සමීප විය හැකිය.
පරිශීලකයාගේ දෘෂ්ටිකෝණයෙන්:
32-බිට් මෙහෙයුම් පද්ධතියක යෙදුමේ 32-බිට් අනුවාදය හා සසඳන විට 64-බිට් මෙහෙයුම් පද්ධතියක 64-බිට් යෙදුමක් සඳහා යෙදුම් වේගය සාමාන්යයෙන් වේගවත් වේ, නමුත් බොහෝ පරිශීලකයින්ට මෙම වේගය නොපෙනේ. සාමාන්ය පරිශීලකයින් සඳහා වන බොහෝ යෙදුම් අතිරේක රෙජිස්ට්රාර් වලින් සැබවින්ම ප්රයෝජන ගන්නේ නැත, නැතහොත් හැඹිලිය පුරවන විශාල දර්ශකයන් මඟින් ප්රතිලාභ සමතුලිත වේ.
ඔබට කිසියම් මතක හොග් යෙදුම් තිබේ නම් (ඡායාරූප සංස්කාරක, වීඩියෝ සැකසුම්, විද්යාත්මක පරිගණක ආදිය), ඔබට 3 GB ට වඩා වැඩි RAM ප්රමාණයක් තිබේ නම් (හෝ මිලදී ගත හැකිය), සහ ඔබට යෙදුමේ බිට් 64 අනුවාදයක් ලබා ගත හැකිය, තේරීම පහසුය: 64-බිට් මෙහෙයුම් පද්ධතිය භාවිතා කරන්න.
සමහර දෘඩාංගවල බිට් 64 ධාවක නොමැත. මාරුවීමට පෙර ඔබගේ මවු පුවරුව, සියලුම ප්ලග් ඉන් කාඩ් සහ සියලුම USB උපාංග පරීක්ෂා කරන්න. වින්ඩෝස් විස්ටා හි මුල් දිනවල රියදුරන් සමඟ ගැටලු රාශියක් තිබූ බව සලකන්න. මේ දිනවල දේවල් සාමාන්යයෙන් වඩා හොඳය.
ඔබ වර්ගයෙන් බොහෝ යෙදුම් ධාවනය කරන්නේ නම් (සාමාන්යයෙන් ඔබට මෙය පැවසිය හැක්කේ ඔබේ පරිගණකය මන්දගාමී වීමට පටන් ගන්නා නිසාත්, දෘ disk තැටි තැලීම් ඇසෙන නිසාත් ය), එවිට ඔබට 64-බිට් මෙහෙයුම් පද්ධතියක් අවශ්ය වේ. (සහ ප්රමාණවත් RAM).
64-බිට් වින්ඩෝස් හි ඔබට කිසිදු ගැටළුවක් නොමැතිව 32-බිට් යෙදුම් (නමුත් ධාවක නොවේ) ධාවනය කළ හැකිය. 64-බිට් වින්ඩෝස් හි 32-බිට් යෙදුමක් සඳහා මා විසින් මනිනු ලැබූ නරකම මන්දගාමිත්වය 5% ක් පමණ වේ (එයින් අදහස් වන්නේ බිට් 32 වින්ඩෝස් තුළ යමක් කිරීමට තත්පර 60 ක් ගත වුවහොත්, තත්පර 60 * 1.05 = 65 ක් ගතවිය 64-බිට් වින්ඩෝස් වල එකම 32-බිට් යෙදුම).
දේ 32-bit එදිරිව 64-bit කරන්නේ නෑ අදහස්:
X86 පද්ධති වල, 32-බිට් එදිරිව 64-බිට් සෘජුවම යොමු දක්වන්නේ දර්ශකයන්ගේ ප්රමාණයට ය. එච්චරයි.
එය C int
වර්ගයේ ප්රමාණයට යොමු නොවේ . විශේෂිත සම්පාදක ක්රියාත්මක කිරීම මගින් එය තීරණය වන අතර බොහෝ ජනප්රිය සම්පාදකයින් int
64-බිට් පද්ධති මත 32-බිට් තෝරා ගනී .
එය සාමාන්ය දර්ශක නොවන ලේඛනයේ ප්රමාණයට කෙලින්ම යොමු නොකරයි . කෙසේ වෙතත්, 64-බිට් අංක ගණිත ලේඛණ භාවිතා කිරීම මඟින් යෙදුම සහ මෙහෙයුම් පද්ධතිය 64-බිට් පොයින්ටර් ප්රකාරයේදී ද ක්රියාත්මක විය යුතුය.
එය භෞතික ලිපින බස් රථයේ ප්රමාණයට කෙලින්ම යොමු නොකරයි . උදාහරණයක් ලෙස, බිට් 64 පළල හැඹිලි රේඛා සහ උපරිම 512GiB මතකයක් සහිත පද්ධතියකට අවශ්ය වන්නේ එහි ලිපින බස් රථයේ (එනම් log2(512*1024**3) - log2(64) = 33
) බිටු 33 ක් පමණි .
එය භෞතික දත්ත බස්රථයේ ප්රමාණයට යොමු නොකරයි: එය නිෂ්පාදන පිරිවැය (CPU සොකට්ටුවේ ඇති අල්ෙපෙනති ගණන) සහ හැඹිලි රේඛා ප්රමාණයන් හා සම්බන්ධ වේ.
මූලික වශයෙන් ඔබට සියල්ල විශාල පරිමාණයකින් කළ හැකිය:
64-බිට් ගෘහ නිර්මාණ ශිල්පයේ විශාල වර්ග දෙක වන්නේ x64 සහ IA64 ගෘහ නිර්මාණ ශිල්පයයි. නමුත් x64 වඩාත්ම ජනප්රියයි.
x64 ට x86 විධාන මෙන්ම x64 විධාන ද ධාවනය කළ හැකිය. IA64 x86 විධාන ද ක්රියාත්මක කරයි, නමුත් එය SSE දිගු නොකරයි. X86 උපදෙස් ක්රියාත්මක කිරීම සඳහා Itanium හි කැපවූ දෘඩාංග තිබේ; එය ඉමියුලේටරයකි, නමුත් දෘඩාංග වල.
H ෆිල් සඳහන් කළ පරිදි ඔබට එය මෙහි ක්රියාත්මක වන ආකාරය පිළිබඳ ගැඹුරු පෙනුමක් ලබා ගත හැකිය .
මේ මොහොතේ මිනිසුන් දකින විශාලතම බලපෑම නම් 32bit PC එකකට ආමන්ත්රණය කළ හැක්කේ උපරිම 4GB මතකයක් පමණි. මෙහෙයුම් පද්ධතිය විසින් වෙනත් භාවිතයන් සඳහා වෙන් කර ඇති මතකය ඔබ ඉවත් කළ විට, ඔබේ පරිගණකය පෙන්වන්නේ භාවිතා කළ හැකි මතක ධාරිතාව 3.25GB පමණ වේ. 64bit වෙත ගෙනයන්න, මෙම සීමාව අතුරුදහන් වේ.
ඔබ බරපතල ලෙස සංවර්ධනය කරන්නේ නම් මෙය ඉතා වැදගත් විය හැකිය. අතථ්ය යන්ත්ර කිහිපයක් ධාවනය කිරීමට උත්සාහ කරන්න, ඔබට ඉක්මනින් මතකය නැති වී යයි. සේවාදායකයන්ට අමතර මතකය අවශ්ය වන බැවින් ඩෙස්ක්ටොප් පරිගණක වලට වඩා 64bit භාවිතය සේවාදායකයන්හි විශාල බව ඔබට පෙනී යනු ඇත. මුවර්ගේ නියමය මඟින් අපට යන්ත්රවල වැඩි වැඩියෙන් මතකයක් ඇති බව සහතික වන අතර සමහර අවස්ථාවල ඩෙස්ක්ටොප් පරිගණක 64bit වෙත සම්මත ලෙස මාරු වේ.
ප්රොසෙසරයේ වෙනස්කම් පිළිබඳ වඩාත් සවිස්තරාත්මක විස්තරයක් සඳහා ආර්ස්ටෙක්නිකා වෙතින් මෙම විශිෂ්ට ලිපිය බලන්න .
කිසිවක් නොමිලේ නොවේ: 64-බිට් යෙදුම් 32-බිට් යෙදුම් වලට වඩා වැඩි මතකයකට ප්රවේශ විය හැකි නමුත් අවාසිය නම් ඔවුන්ට වැඩි මතකයක් අවශ්ය වීමයි. බයිට් 4 ක් අවශ්ය වූ සියලුම දර්ශකයන්ට දැන් 8 ක් අවශ්ය වේ. නිදසුනක් ලෙස, ඉමාක්ස් හි පෙරනිමි අවශ්යතාවය බිට් 64 ගෘහ නිර්මාණ ශිල්පයක් සඳහා ගොඩනගා ඇති විට එය 60% වැඩි මතකයකි. මෙම අතිරේක අඩිපාරය මතක ධූරාවලියේ සෑම මට්ටමකම කාර්ය සාධනය රිදවයි: විශාල ක්රියාත්මක කළ හැකි තැටියෙන් පැටවීමට වැඩි කාලයක් ගතවේ, විශාල වැඩ කරන කට්ටල වැඩි පේජින් ඇති කිරීමට හේතු වන අතර විශාල වස්තූන් ප්රොසෙසර් හැඹිලි වල අඩු යෝග්යතාවයක් අදහස් කරයි. 16K L1 හැඹිලියක් සහිත CPU එකක් ගැන ඔබ සිතන්නේ නම්, 32-බිට් යෙදුමකට එය මඟ හැරී L2 හැඹිලිය වෙත යාමට පෙර දර්ශක 4096 ක් සමඟ ක්රියා කළ හැකි නමුත් 64-බිට් යෙදුමකට L2 හැඹිලිය වෙත ළඟා විය යුත්තේ දර්ශක 2048 කට පසුවය.
X64 හි මෙය තවත් රෙජිස්ටර් වැනි වෙනත් වාස්තු විද්යාත්මක වැඩිදියුණු කිරීම් මගින් අවම කරනු ලැබේ, නමුත් PowerPC හි ඔබේ යෙදුමට> 4G භාවිතා කළ නොහැකි නම් එය "ppc64" ට වඩා "ppc" මත වේගයෙන් ධාවනය වීමට ඉඩ ඇත. ඉන්ටෙල්හි පවා x86 මත වේගයෙන් ධාවනය වන කාර්ය භාරයන් ඇති අතර ස්වල්පයක් x86 ට වඩා x64 මත 5% කට වඩා වේගයෙන් ධාවනය වේ.
64-බිට් මෙහෙයුම් පද්ධතියකට වැඩි RAM භාවිතා කළ හැකිය. එය ප්රායෝගිකව ඒ ගැන ය. 64-බිට් විස්ටා / 7, RAM හි අත්යවශ්ය සංරචක ස්ථානගත කරන ස්ථාන සඳහා රසික ආරක්ෂණ විශේෂාංග භාවිතා කරයි, නමුත් එය ඇත්ත වශයෙන්ම 'සැලකිය යුතු' නොවේ.
ක්රිස්ඉන් එඩ්මන්ටන් වෙතින්:
PAE සහිත ix86 පද්ධතියක 32-බිට් මෙහෙයුම් පද්ධතියකට 64 GB RAM ප්රමාණයක් ඇමතිය හැකිය. X86-64 හි 64-බිට් මෙහෙයුම් පද්ධතියකට 256 TB අතථ්ය ලිපින අවකාශයක් වෙත පිවිසිය හැකි නමුත් මෙය පසුකාලීන ප්රොසෙසර වලදී 16 EB දක්වා ඉහළ නැංවිය හැකිය. සමහර මෙහෙයුම් පද්ධති ලිපින අවකාශය තවදුරටත් සීමා කරන බව සලකන්න, බොහෝ මවු පුවරුවලට අමතර සීමාවන් ඇත.
සම්පූර්ණ රචනාවක් ලිවීමෙන් තොරව ඔබගේ සියලු ප්රශ්නවලට මට පිළිතුරු දිය හැකි බව විශ්වාස නැත (සෑම විටම ගූගල් පවතී ...), නමුත් 64bit සඳහා ඔබේ යෙදුම් වෙනස් ලෙස සැලසුම් කිරීමට ඔබට අවශ්ය නැත. මා සිතන්නේ යොමු කරනු ලබන දෙය නම්, ඔබ දර්ශක ප්රමාණ වැනි දේ ගැන සැලකිලිමත් විය යුතු බවයි. තවද සමහර වර්ගවල දත්ත බයිට් හතරක් දිගින් යුක්ත වන අතර එය තවදුරටත් සත්ය නොවිය හැකි යැයි සිතිය හැකි උපකල්පන සමඟ ඇති විය හැකි ගැටලු රාශියක් ඔබ සතුව ඇත.
මෙය ඔබගේ යෙදුමේ ඇති සියලු වර්ගවල දේවල් ඉහළට ඔසවා තැබීමට ඉඩ ඇත - ගොනුවෙන් සුරැකීම / පැටවීම, දත්ත හරහා නැවත යෙදීම, දත්ත පෙළගැස්වීම, දත්ත මත බිට්වේස් මෙහෙයුම් දක්වා සියල්ල. ඔබ සතුව වරාය කිරීමට උත්සාහ කරන කේතපදයක් තිබේ නම්, හෝ ඒ දෙකෙහිම වැඩ කරන්නේ නම්, ඔබට වැඩ කිරීමට කුඩා නයිගල් විශාල ප්රමාණයක් තිබිය හැකිය.
මම හිතන්නේ මෙය සැලසුම් කිරීමකට වඩා ක්රියාත්මක කිරීමේ ප්රශ්නයක්. එනම්, වචන සැකසීම කුමක් වුවත්, ඡායාරූප සංස්කරණ පැකේජයක් සමාන වනු ඇතැයි මම සිතමි. අපි 32bit සහ 64bit අනුවාද දෙකටම සංයුක්ත වන කේතයක් ලියන අතර, සැලසුම නිසැකවම දෙක අතර වෙනස් නොවේ - එය එකම කේත පදනමයි.
64bit හි ඇති මූලික "විශාල ගනුදෙනුව" නම් ඔබ 32bit ට වඩා විශාල මතක ලිපින අවකාශයකට ප්රවේශය ලබා ගැනීමයි. මෙයින් අදහස් කරන්නේ ඔබට ඇත්ත වශයෙන්ම ඔබේ පරිගණකයට 4Gb කට වඩා වැඩි මතක ප්රමාණයක් ලබා ගත හැකි අතර ඇත්ත වශයෙන්ම එය වෙනසක් ඇති කළ හැකි බවයි.
මට විශ්වාසයි වෙනත් පිළිතුරු මට වඩා විස්තර හා ප්රතිලාභ වලට ඇතුල් වනු ඇත.
වෙනස හඳුනා ගැනීමේදී ක්රමයෙන් ඔබ දර්ශකයක ප්රමාණය පරීක්ෂා කරන්න (උදා: sizeof (void *)). 4 හි පිළිතුරෙන් අදහස් වන්නේ එහි බිටු 32 ක් වන අතර 8 යන්නෙන් අදහස් වන්නේ ඔබ 64bit පරිසරයක ධාවනය වන බවයි.
32 බිට් ක්රියාවලියකට අථත්ය ලිපින අවකාශය 4 GB වේ; සමහර යෙදුම් සඳහා මෙය ඉතා අල්ප විය හැකිය. 64 බිට් යෙදුමකට පාහේ අසීමිත ලිපින ඉඩක් ඇත (ඇත්ත වශයෙන්ම එය සීමිතයි, නමුත් ඔබ බොහෝ විට මෙම සීමාවට නොපැමිණෙනු ඇත).
OSX හි වෙනත් වාසි ඇත. බලන්න පහත සඳහන් ලිපිය , ඇයි වඩා හොඳ කාර්ය සාධන මඟ පෙන්වන 64 Bit ලිපිනය අවකාශය කර්නලය ලකුණු සහිත (ඔබගේ යෙදුම ධාවනය නොතකා නම් 64 හෝ 32) හෝ 64 Bit ලිපිනය අවකාශය ඔබගේ යෙදුම ලකුණු සහිත (kernel තවමත් 32 Bit වන අතර). සාරාංශගත කිරීම සඳහා: එකක් බිට් 64 (කර්නලය හෝ යෙදුම හෝ දෙකම) නම්, ඔබ කර්නලයේ සිට අවකාශය සහ පසුපසට භාවිතා කරන සෑම විටම ටීඑල්බී ("පරිවර්තන පෙනුමැති බෆරය") ගලවා දැමිය යුතු නැත (එය වේගවත් වනු ඇත ඉහළ RAM ප්රවේශය).
"දිගු දිගු int" විචල්යයන් සමඟ වැඩ කිරීමේදී ඔබට කාර්ය සාධන වාසි ඇත (uint64_t වැනි බිට් විචල්යයන් 64). 32 බිට් සීපීයූවට බිට් අගයන් දෙකක් එකතු කිරීමට / බෙදීමට / අඩු කිරීමට / ගුණ කිරීමට හැකිය, නමුත් එක් දෘඩාංග මෙහෙයුමකදී නොවේ. ඒ වෙනුවට මෙම මෙහෙයුම බිට් මෙහෙයුම් 32 කට (හෝ වැඩි ගණනකට) බෙදිය යුතුය. එබැවින් 64 බිට් අංක සමඟ වැඩ කරන යෙදුමකට දෘඩාංග තුළ කෙලින්ම 64 බිට් ගණිතය කිරීමට හැකි වේගයක් ලැබෙනු ඇත.
X86-64 ගෘහ නිර්මාණ ශිල්පය සම්භාව්ය x86 ගෘහ නිර්මාණ ශිල්පයට වඩා වැඩි ලේඛනයක් ඉදිරිපත් කරයි. රෙජිස්ටර් සමඟ වැඩ කිරීම RAM සමඟ වැඩ කිරීමට වඩා වේගවත් වන අතර CPU සතුව ඇති රෙජිස්ටර් වැඩි වන තරමට රෙජිස්ටර් අගයන් RAM වෙත මාරු කර නැවත රෙජිස්ටාර් වෙත මාරු කිරීමට අවශ්ය වේ.
ඔබේ CPU 64 බිට් මාදිලියේ ධාවනය කළ හැකිදැයි සොයා ගැනීමට, ඔබට විවිධ sysctl විචල්යයන් දෙස බැලිය හැකිය. උදා: ටර්මිනලයක් විවෘත කර ටයිප් කරන්න
sysctl machdep.cpu.extfeatures
එය EM64T ලැයිස්තුගත කරන්නේ නම්, ඔබේ CPU x86-64 ප්රමිතියට අනුව 64 බිට් ලිපින අවකාශයට සහය දක්වයි. ඔබට ද සොයා බැලිය හැකිය
sysctl hw.optional.x86_64
එය 1 (සත්ය / සක්රීය) යැයි පැවසුවහොත්, ඔබේ CPU x86-64 බිට් ප්රකාරයට සහය දක්වයි, එය 0 (අසත්ය / අක්රීය) යැයි පැවසුවහොත් එය එසේ නොවේ. සැකසුම කිසිසේත් සොයාගත නොහැකි නම්, එය අසත්යයක් ලෙස සලකන්න.
සටහන: ඔබට ස්වදේශීය සී යෙදුමක් තුළ සිට sysctl විචල්යයන් ලබා ගත හැකිය, විධාන රේඛා මෙවලම භාවිතා කිරීම අවශ්ය නොවේ. බලන්න
man 3 sysctl
ලිපින අවකාශය (තාත්වික) මතකයට වඩා භාවිතා කළ හැකි බව සලකන්න. යමෙකුට විශාල ලිපිගොනු මතක සිතියම් ගත කළ හැකි අතර, එමඟින් වඩාත් අමුතු ප්රවේශ රටාවන්හි ක්රියාකාරිත්වය වැඩි දියුණු කළ හැකිය, මන්දයත් වඩා බලවත් හා කාර්යක්ෂම බ්ලොක් මට්ටමේ වීඑම් මට්ටමේ හැඹිලිය ආරම්භ වන බැවිනි. විශාල වාරණයක් වෙන් කිරීමට ඉඩ නොදෙන ලිපින-අවකාශ ඛණ්ඩනය වීමට ඉඩ ඇත.
මෙම ත්රෙඩ් එකේ සඳහන් සමහර දේවල් (# රෙජිස්ටර් දෙගුණ කිරීම වැනි) අදාළ වන්නේ x86-> x86_64 ට පමණි, පොදුවේ බිට් 64 ට නොවේ. X86_64 යටතේ සහතික කර ඇති එක් අයෙකුට SSE2, 686 ඔප්කෝඩ් සහ PIC කිරීමට ලාභදායී ක්රමයක් ඇත. මෙම අංගයන් තදින්ම 64-බිට් ගැන නොව, උරුමය කැපීම සහ දන්නා x86 සීමාවන්ට පිළියම් යෙදීම ය
වේගවත් වීමට හේතුව ලෙස බොහෝ විට මිනිසුන් රෙජිස්ටර් දෙගුණ කිරීම පෙන්වා දෙන අතර, එය උපක්රමය සිදුකරන සුපුරුදු SSE2 භාවිතය විය හැකිය (memcpy හා සමාන කාර්යයන් වේගවත් කිරීම). ඔබ x86 සඳහා එකම කට්ටලයක් සක්රීය කළහොත් වෙනස කුඩා වේ. (*) (***)
බොහෝ විට ආරම්භක ද penalty ුවමක් ඇති බව මතක තබා ගන්න, සාමාන්ය දත්ත ව්යුහය හුදෙක් දර්ශකයේ ප්රමාණය විශාල වන නිසා වැඩි වනු ඇත. මෙය හැඹිලි බලපෑම් ද ඇති නමුත් සාමාන්ය මතක සටහන් () (හෝ මතක පිටපතට සමාන ඕනෑම දෙයක් ඔබේ භාෂාවෙන්) වැඩි කාලයක් ගතවනු ඇත. මෙය සිදුවන්නේ සියයට btw ක විශාලත්වයකින් පමණක් වන නමුත් ඉහත නම් කර ඇති වේගවත් කිරීම් ද එම විශාලත්වයේ පවතී.
සාමාන්යයෙන් පෙළගැස්වීම 64-බිට් ගෘහ නිර්මාණ ශිල්පයෙහි ද විශාල වේ (මීට පෙර වාර්තා 32-බිට් පමණක් බොහෝ විට 32-බිට් හා 64-බිට් අගයන් මිශ්ර වී ඇත), ව්යුහයන් ඊටත් වඩා පුපුරවා හරියි.
සමස්තයක් ලෙස, මගේ සරල පරීක්ෂණ වලින් පෙන්නුම් කරන්නේ රියදුරන් සහ ධාවන කාල පුස්තකාල සම්පූර්ණයෙන්ම අනුවර්තනය වී ඇත්නම්, සාමාන්ය යෙදුම සඳහා සැලකිය යුතු වේග වෙනසක් ලබා නොදී ඒවා දළ වශයෙන් අවලංගු වන බවයි. කෙසේ වෙතත් සමහර යෙදුම් හදිසියේම වේගවත් විය හැකිය (උදා: AES මත පදනම්ව) හෝ මන්දගාමී (තීරණාත්මක දත්ත ව්යුහය නිරන්තරයෙන් එහා මෙහා ගෙනයනු ලැබේ / පරිලෝකනය කර / ඇවිදිමින් සහ බොහෝ කරුණු අඩංගු වේ). පරීක්ෂණ වින්ඩෝස් මත පැවතුනද, එම නිසා PIC ප්රශස්තකරණය මිණුම් සලකුණු කර නොමැත.
බොහෝ JIT-VM භාෂා (ජාවා, .NET) උදා: C ++ ට වඩා සාමාන්යයෙන් (අභ්යන්තරව) සැලකිය යුතු ලෙස වැඩි දර්ශක භාවිතා කරන බව සලකන්න. බොහෝ විට ඔවුන්ගේ මතක භාවිතය සාමාන්ය වැඩසටහනට වඩා වැඩි වේ, නමුත් එය කෙලින්ම මන්දගාමී බලපෑම් වලට සමාන කිරීමට මම එඩිතර නොවෙමි (මේවා සැබවින්ම සංකීර්ණ හා විනෝදජනක තිරිසනෙකු වන අතර බොහෝ විට මැනීමකින් තොරව අනාවැකි කීමට අපහසුය)
සරල මෙහෙයුම් වේගවත් කරන අතර සංකීර්ණ (පාපය, කොස් යනාදිය) මෙහෙයුම් මන්දගාමී වන බව පෙනෙන පාවෙන ලක්ෂ්යය සඳහා වින්ඩෝස් 64-බිට් පෙරනිමි.
(*) මඳක් දන්නා කරුණක් නම්, එස්එස්ඊ රෙජිස්ටාර් ගණන ද බිට් 64 ආකාරයෙන් දෙගුණ වන බවයි
(**) මීට වසර කිහිපයකට පෙර ආචාර්ය ඩොබ්ස් ඒ ගැන ලස්සන ලිපියක් පළ කළේය.
බොහෝ දෙනා මෙහි සඳහන් කර ඇති පැහැදිලි මතක අවකාශ ගැටළු වලට අමතරව, නුත් (වෙනත් අය) මෑතකදී කතා කරමින් සිටි “බ්රෝඩ්වර්ඩ් කම්පියුටින්” යන සංකල්පය දෙස බැලීම වටී යැයි මම සිතමි. බිට් හැසිරවීම තුළින් ලබා ගත හැකි කාර්යක්ෂමතාවයන් රාශියක් ඇති අතර, බිට් 64 වචනයක බිට්වේස් මෙහෙයුම් බිට් 32 වචනයට වඩා බොහෝ ඉදිරියට යයි. කෙටියෙන් කිවහොත්, ඔබට මතකයට පහර නොදී ලේඛනයේ වැඩි මෙහෙයුම් කළ හැකි අතර, කාර්ය සාධන දෘෂ්ටි කෝණයකින් බැලූ විට එය අති විශාල ජයග්රහණයකි.
මා කතා කරන සිසිල් උපක්රම සඳහා උදාහරණ සඳහා 4 වන වෙළුම, පෙර-ෆැසිකල් 1 ඒ දෙස බලන්න.
වැඩි මතකයක් ආමන්ත්රණය කිරීමේ හැකියාව හැරුණු විට x86_64 හි තවත් ලේඛනයක් ඇති අතර සම්පාදකයාට වඩාත් කාර්යක්ෂම කේත ජනනය කිරීමට ඉඩ ලබා දේ. කාර්ය සාධනය වැඩි දියුණු කිරීම සාමාන්යයෙන් තරමක් කුඩා වනු ඇත.
X86_64 ගෘහ නිර්මාණ ශිල්පය x86 සමඟ පසුපසට අනුකූල වේ. නවීකරණය නොකළ 32-බිට් මෙහෙයුම් පද්ධති ධාවනය කළ හැකිය. 64-බිට් මෙහෙයුම් පද්ධතියකින් නවීකරණය නොකළ 32-බිට් මෘදුකාංග ධාවනය කිරීමට ද හැකිය. ඒ සඳහා සුපුරුදු 32-බිට් 32 පුස්තකාල අවශ්ය වේ. ඒවා වෙන වෙනම ස්ථාපනය කිරීමට අවශ්ය විය හැකිය.
මෙම ත්රෙඩ් එක දැනටමත් වැඩියි, නමුත් ...
බොහෝ පිළිතුරු මඟින් ඔබට විශාල, 64-බිට් ලිපින අවකාශයක් තිබීම කෙරෙහි අවධානය යොමු කරයි, එවිට ඔබට වැඩි මතකයක් ඇමතිය හැකිය. සියලුම යෙදුම් වලින් 99% ක් සඳහා මෙය සම්පූර්ණයෙන්ම අදාල නොවේ. විශාල හ.
මෙම සැබෑ 64-bit හොඳ හේතුවක් නොවේ ද නාම ලේඛන විශාල වන නමුත්, ඔවුන්ගෙන් බොහෝ මෙන් දෙගුණයක් වේ! එයින් අදහස් කරන්නේ සම්පාදකයාට ඔබේ අගයන් මතකයට නංවා ඒවා උපදෙස් කිහිපයකින් නැවත පැටවීම වෙනුවට ලේඛනයේ තබා ගත හැකි බවයි. ප්රශස්තිකරණ සම්පාදකයෙකු ඔබ වෙනුවෙන් ඔබේ ලූප ඉවත් කරන්නේ නම් සහ එය දළ වශයෙන් දෙගුණයකින් වැඩි කළ හැකි අතර එය ක්රියාකාරීත්වයට සැබවින්ම උපකාරී වේ.
එසේම, 64-බිට් සඳහා වන සබ්ට්රවුටින් ඇමතුම් / ඇමතුම් සම්මුතීන් නිර්වචනය කර ඇත්තේ ඇමතුම්කරු ඒවා තොගයට තල්ලු කිරීම සහ ඇමතුම්කරු ඒවා ඉවත් කිරීම වෙනුවට සම්මත කරන ලද පරාමිතීන් බොහොමයක් ලේඛනයේ තබා ගැනීම සඳහා ය.
එබැවින් "සාමාන්ය" සී / සී ++ යෙදුමකට බිට් 64 සඳහා නැවත සම්පාදනය කිරීමෙන් 10% හෝ 15% ක කාර්යසාධනයක් ලැබෙනු ඇත. (යෙදුමේ යම් කොටසක් ගණනය කර ඇති බව උපකල්පනය කිරීම ඇත්ත වශයෙන්ම මෙය සහතික කර නැත; සියලුම පරිගණක එකම වේගයකින් බලා සිටියි. ඔබේ සැතපුම් ගණන වෙනස් විය හැකිය.)
මෙහි දැනටමත් සඳහන් කර ඇති වාසි වලට අමතරව ආරක්ෂාව සම්බන්ධයෙන් තවත් කරුණු කිහිපයක් තිබේ:
මතකයට එන තවත් වාසියක් නම් vmalloc()
, ලිනක්ස් කර්නලය සමඟ වෙන් කර ඇති අථත්ය පරස්පර මතකයේ ප්රමාණය බිට් 64 ප්රකාරයේදී විශාල විය හැකි බවයි.
32-බිට් යන්ත්රයක් සමඟ ඔබට ඇමතීමට ඇත්තේ මතක බයිට් 4,294,967,295 ක් පමණි. 64-බිට් යන්ත්රයක් සමඟ ඔබට 1.84467441 × 10 ^ 19 බයිට් මතකයක් ඇත.
64-බිට් ප්රොසෙසර මගින් විශේෂිත කාර්යයන් (විශාල සංඛ්යා වල සාධක වැනි) ගණනය කරනුයේ බිට් 32 පරිසරවල වැඩ කිරීමට වඩා දෙගුණයක වේගයකින් ය. ). මෙය බිට් 64 ප්රශස්ත යෙදුම්වල න්යායාත්මක හැකියාවන් පිළිබඳ සාමාන්ය හැඟීමක් ලබා දෙයි.
64-බිට් ගෘහ නිර්මාණ ශිල්පය ඩිජිටල් වීඩියෝ, විද්යාත්මක පරිගණකකරණය සහ විශාල දත්ත සමුදායන් වැනි යෙදුම්වල විශාල දත්ත කට්ටල සමඟ වැඩ කිරීම පහසු කරවන අතර, ඒවා හෝ ඒවායේ 32-බිට් අනුකූලතා මාදිලි සාපේක්ෂව මිලට වඩා වේගවත් වේද යන්න පිළිබඳව සැලකිය යුතු විවාදයක් පවතී. වෙනත් කාර්යයන් සඳහා 32-බිට් පද්ධති. X86-64 ගෘහ නිර්මාණ ශිල්පයේ (AMD64), බිට් 32 මෙහෙයුම් පද්ධති සහ යෙදුම් වලින් බහුතරයකට 64-බිට් දෘඩාංග මත සුමටව ධාවනය කළ හැකිය.
සූර්යයාගේ 64-බිට් ජාවා අතථ්ය යන්ත්ර ඔවුන්ගේ බිට් 32 අථත්ය යන්ත්රවලට වඩා ආරම්භ කිරීම මන්දගාමී වේ, මන්ද සන් විසින් ක්රියාත්මක කර ඇත්තේ බිට් 64 වේදිකා සඳහා “සර්වර්” ජිඅයිටී සම්පාදකය (සී 2) පමණි. [9] අඩු කාර්යක්ෂම කේතයක් නිපදවන නමුත් වඩා වේගයෙන් සම්පාදනය කරන "සේවාදායක" JIT සම්පාදකය (C1) බිට් 64 වේදිකාවල නොමැත.
32-බිට් සහ 64-බිට් ප්රොසෙසර සංසන්දනය කිරීමේදී සලකා බැලිය යුතු එකම සාධකය වේගය නොවන බව සැලකිල්ලට ගත යුතුය. බහු කාර්යයන්, ආතති පරීක්ෂාව සහ පොකුරුකරණය (ඉහළ කාර්යසාධනයක් සහිත පරිගණක සඳහා), HPC වැනි යෙදුම් නිවැරදි යෙදවීම අනුව බිට් 64 ගෘහ නිර්මාණ ශිල්පයට වඩාත් ගැලපේ. මෙම හේතුව නිසා අයිබීඑම්, එච්පී සහ මයික්රොසොෆ්ට් වැනි විශාල සංවිධානවල බිට් 64 පොකුරු පුළුල් ලෙස යොදවා ඇත.
Microsoft.com වෙතින් උපුටා ගැනීම:
පහත වගුවේ, වින්ඩෝස් හි 64-බිට් අනුවාද සහ 64-බිට් ඉන්ටෙල් ප්රොසෙසරය මත පදනම් වූ පරිගණකවල වැඩි කළ සම්පත් දැනට පවතින බිට් 32 සම්පත් උපරිම සමඟ සැසඳේ.
ක්රිස්ටෝෆ් සහ පොෂි ප්රකාශ කර ඇත්තේ 32 සහ 64 බිට් ඕඑස් අතර ඇති ප්රධාන තාක්ෂණික වෙනස්කම් 'පරිශීලක අත්දැකීම සාමාන්යයෙන් න්යායට වඩා බෙහෙවින් වෙනස් ය. මේ දක්වා වින්ඩෝස් හි 64 බිට් පාරිභෝගික අනුවාදයන් (එක්ස්පී සහ විස්ටා) ඒවායේ ධාවක ආධාරකයේ විශාල පරතරයක් ඇත. මා සතුව බොහෝ මුද්රණ යන්ත්ර, ස්කෑනර් සහ වෙනත් බාහිර උපාංග බිට් 64 අනුවාද සමඟ ක්රියා නොකරයි. මේවා බිට් 64 ධාවක ඇති උපාංග වන අතර ඒවා තවමත් ක්රියා නොකරයි. මෙම අවස්ථාවෙහිදී, මයික්රොසොෆ්ට් වෙතින් බිට් 64 ක් වන ඕනෑම පාරිභෝගිකයෙකුගෙන් stay ත්ව සිටින ලෙස මම ඔබට නිර්දේශ කරමි. වින්ඩෝස් 7 මෙය හසුරුවන ආකාරය ගැන ඔබ දැන ගන්නා තෙක්, සැබෑ අවසන් පරිශීලකයින්ගෙන් පමණක් නොව, දැනට එයට ප්රවේශය ඇති uber-geeks වෙතින් පමණක් නොවේ. අවම වශයෙන් මාස 6 ක් වත් ලබා දී මිනිසුන් අත්විඳින දේ බලන්න.
සමහර ක්රීඩා ක්රීඩා වැඩසටහන් බිට්-බෝඩ් නිරූපණයක් භාවිතා කරයි. උදාහරණයක් ලෙස චෙස්, චෙක්පත් සහ ඔතෙලෝ සතුව 8x8 පුවරුවක් ඇත, එනම් වර්ග 64 ක්, එබැවින් යන්ත්ර වචනයක අවම වශයෙන් බිටු 64 ක් තිබීම කාර්ය සාධනයට සැලකිය යුතු ලෙස උපකාරී වේ.
මට මතකයි චෙස් වැඩසටහනක් ගැන කියවමින් බිට් 64 බිට් 32 බිට් අනුවාදයට වඩා දෙගුණයක් වේගවත් විය.
32-බිට් සහ 64-බිට් යන යෙදුමෙන් කියවෙන්නේ පරිගණක සකසනයක් (CPU ලෙසද හැඳින්වේ) තොරතුරු හසුරුවන ආකාරයයි. වින්ඩෝස් හි 64-බිට් අනුවාදයන් 32-බිට් පද්ධති වලට වඩා විශාල අහඹු ප්රවේශ මතකයක් (RAM) හසුරුවයි.
මගේ මතය අනුව වේගය වෙනස් විය හැකිය
මයික්රොසොෆ්ට් වින්ඩෝස් සම්බන්ධයෙන් මේ සඳහා ඇති තවත් කරුණක් නම්, වසර ගණනාවක් තිස්සේ වින් 32 ඒපීඅයි 32-බිට් මෙහෙයුම් පද්ධති සඳහා අදහස් කර ඇති අතර බිට් 64 සම්පාදනය සඳහා ප්රශස්තිකරණය නොකිරීමයි. මගේ යෙදුම් සඳහා මම ඩීඑල්එල් කිහිපයක් ලියන විට, මම සාමාන්යයෙන් වින් 32 හි සම්පාදනය කරමි. විස්ටා වලට පෙර, වින්ඩෝස් හි සාර්ථක 64 බිට් අනුවාදයන් නොතිබුණි, මා වැඩ කරන තැන මගේ නව යන්ත්රයට 4 GB RAM ප්රමාණයක් ඇත, නමුත් මම තවමත් ස්ථාවර 32 / වින්ඩෝස් එක්ස්පී ප්රෝ භාවිතා කරමි. එක්ස්පී 64 හෝ විස්ටා වලට සාපේක්ෂව එස්.
සමහර පුද්ගලයින්ට මාරුව විශාල ගනුදෙනුවක් විය හැක්කේ මන්ද යන්න පිළිබඳ වැඩි විස්තර සඳහා බිට් 16 සිට 32-බිට් දක්වා මාරුවීමක් සිදු වූ විට ඔබත් ආපසු හැරී බැලීමට අවශ්ය යැයි මම සිතමි. සමාගමක් ඩෙස්ක්ටොප් එකක ධාවනය කළ හැකි මෙහෙවර-විවේචනාත්මක යෙදුම්, උදා: කුඩා ගිණුම්කරණ පැකේජ, බිට් 64 මෙහෙයුම් පද්ධතියක් මත ක්රියාත්මක නොවිය හැකි අතර, ඒ නිසා අථත්ය හෝ තාත්වික වශයෙන් පැරණි යන්ත්රයක් තබා ගැනීමේ අවශ්යතාවය පවතී.
ලිපිනයක ප්රමාණය වෙනස් කිරීමෙන් විශාල ප්රතිවිපාක හා ප්රතිවිපාක ඇති විය හැකිය.
බොහෝ ප්රායෝගික අරමුණු සඳහා ඔබ බොහෝ විට වෙනසක් නොදකිනු ඇත.
64-බිට් මෙහෙයුම් පද්ධතියක් ස්ථාපනය කිරීම සඳහා ඔබට 64-බිට් CPU (පසුගිය වසර කිහිපය තුළ බොහෝ CPU) තිබිය යුතුය.
64-බිට් මෙහෙයුම් පද්ධතියකට වාසි කිහිපයක් තිබේ:
බොහෝ අවස්ථා වලදී, 64-බිට් වැඩසටහන් ටිකක් වැඩි මතකයක් භාවිතා කරයි, නමුත් පුද්ගලික පරිගණකයක් සඳහා මෙය සාමාන්යයෙන් නොදැනේ.