it-swarm.asia

32 bit ve 64 bit sistemler

32 bit ve 64 bit sistemler arasındaki farklar nelerdir?

Her ikisini de kullandıysanız, ne tür keskin farklar yaşadınız?

Bazı durumlarda 64 bit sistemlerde 32 bit programlar kullanmak sorun olur mu?

219

Not: Bu cevaplar standart x86 tabanlı PC işlemcileri (Intel ve AMD) ve Windows (tipik olarak son kullanıcılar için yapılandırılmış) için geçerlidir. Diğer 32-bit veya 64-bit yongalar, diğer işletim sistemleri ve diğer işletim sistemi yapılandırmaları farklı değişimlere sahip olabilir.

Teknik açıdan bakıldığında, 64-bit bir işletim sistemi size verir:

  • Bireysel işlemlerin her biri 4 GB'den fazla RAM adreslemesine izin verir (pratikte, çoğu, ancak 32 bit işletim sistemlerinin tümü değil, toplam kullanılabilir sistemi RAM 4 GB'den az, sadece uygulama başına maksimum).

  • Tüm işaretçiler 4 bayt yerine 8 bayt alır. RAM kullanımı üzerindeki etkisi en az düzeydedir (çünkü gigabaytlık işaretçilerle dolu bir uygulamanız olması muhtemel değildir), ancak en kötü teorik durumda, bu durum CPU önbelleğini 1// (1/C/C/C/C/C/C/C/C/C/C/CU) değerlerinde tutabilir. 2 kadar işaretçi (etkili bir şekilde 1/2 boyutta yapma). Çoğu uygulama için bu çok önemli bir şey değil.

  • 64 bit modunda daha birçok genel amaçlı CPU kaydı vardır. Kayıtlar tüm sisteminizdeki en hızlı hafızadır. 32 bit modunda yalnızca 8 ve 64 bit modunda 16 genel amaçlı kayıt vardır. Yazdığım bilimsel bilgi işlem uygulamalarında, 64 bit modunda yeniden derleyerek% 30'a varan bir performans artışı gördüm (uygulamam gerçekten ekstra kayıtları kullanabilirdi).

  • 32 bit işletim sistemlerinin çoğu, 4 GB yüklü olsa bile, bireysel uygulamaların yalnızca 2 GB RAM kullanmasına izin verir. Bunun nedeni, diğer 2 GB adres alanının uygulamalar arasında, işletim sistemi ile veri paylaşımı ve sürücülerle iletişim kurmak için ayrılmasıdır. Windows ve Linux bu tradeoff'u uygulamalar için 3 GB ve paylaşılan 1 GB olarak ayarlamanıza izin verecektir, ancak bu değişiklik beklemeyen bazı uygulamalar için sorunlara neden olabilir. Ayrıca, 1 GB RAM değerine sahip bir grafik kartının sakat kalabileceğini de tahmin ediyorum (ancak emin değilim). 64 bit işletim sistemi, 32 bitlik uygulamaları tek başına 4 GB'a kadar oynayabilir.

Bir kullanıcının bakış açısından:

  • Uygulama hızı, 64 bit işletim sistemindeki 64 bit uygulama için, 32 bit işletim sistemindeki uygulamanın 32 bit sürümüne kıyasla daha hızlıdır, ancak çoğu kullanıcı bu hızlanmayı görmez. Normal kullanıcılar için çoğu uygulama, fazladan kayıtlardan gerçekten faydalanmamakta veya faydaları, önbelleği dolduran daha büyük işaretçiler ile dengelenmektedir.

  • Herhangi bir bellek domuz uygulamanız varsa (fotoğraf düzenleyicileri, video işleme, bilimsel bilgi işlem vb.), 3 GB'tan daha fazla RAM'e sahipseniz (veya satın alabilirseniz) ve uygulamanın 64 bit sürümünü alabilirsiniz, seçim kolaydır: 64 bit işletim sistemini kullanın.

  • Bazı donanımların 64 bit sürücüleri yoktur. Geçiş yapmadan önce ana kartınızı, tüm eklenti kartlarını ve tüm USB cihazlarını kontrol edin. Windows Vista'nın ilk günlerinde, sürücülerle ilgili birçok sorun olduğunu unutmayın. Bugünlerde işler genellikle daha iyi.

  • Hiçbir zaman tükenmeyeceğiniz kadar çok uygulama çalıştırıyorsanız, RAM (genellikle bilgisayarınız bunu yavaşlatmaya başladığından ve sabit disk sürücüsünün çatırdığını duyacağınız için bunu söyleyebilirsiniz). 64 bit işletim sistemi (ve yeterli RAM) istiyorum.

  • Sorunsuz bir şekilde 64 bit Windows'da 32 bit uygulamaları (ancak sürücüleri değil) çalıştırabilirsiniz. 64 bit Windows'da 32 bit bir uygulama için ölçtüğüm en kötü yavaşlama yaklaşık% 5'tir (yani, 32 bit Windows'da bir şey yapmak 60 saniye sürerse, en fazla 60 * 1.05 = 65 saniye sürdü) 64-bit Windows'ta aynı 32-bit uygulama).

64-bit'e karşı 32-bit ne yapar değil ima eder:

X86 sistemlerde, 32 bit vs. 64 bit doğrudan işaretçilerin boyutunu ifade eder. Bu kadar.

  • C inttipinin boyutuna işaret etmez. Buna belirli bir derleyici uygulaması tarafından karar verilir ve popüler derleyicilerin çoğu 64 bit sistemlerde 32 bit intöğesini seçer.

  • doğrudan normal işaretçi olmayan kayıtların boyutuna işaret etmez. Ancak, 64 bit aritmetik yazmaçların kullanımı, uygulamanın ve işletim sisteminin de 64 bit işaretçi modunda çalışmasını gerektirir.

  • doğrudan fiziksel adres veriyolunun boyutuna işaret etmez. Örneğin, 64 bit genişliğinde önbellek hatlarına ve maksimum 512GiB belleğe sahip bir sistem adres veriyolunda yalnızca 33 bit gerektirir (örneğin, log2(512*1024**3) - log2(64) = 33).

  • Fiziksel veri yolunun boyutuna atıfta bulunmaz: bu daha çok üretim maliyetleri (CPU soketindeki pin sayısı) ve önbellek satırı boyutlarıyla ilgilidir.

261
Mr Fooz

Temel olarak her şeyi daha büyük bir ölçekte yapabilirsiniz:

  1. RAM işletim sistemi başına _: RAM işletim sistemi için x86'da 4 GB sınırı (çoğu zaman)
  2. RAM işlem başına _: RAM işlemler için x86'da 4 GB sınırı (her zaman). Bunun önemli olmadığını düşünüyorsanız, yoğun bir MSSQL veritabanı yoğun uygulama çalıştırmayı deneyin. Kullanabiliyorsanız ve çok daha iyi çalışırsanız> 4GB kendisini kullanır.
  3. Adresler: Adresler, daha fazla bellek kullanan "daha büyük" programlara sahip olmanızı sağlayan 32 bit yerine 64 bit'tir.
  4. Programlar için kullanılabilir tutamaçlar: Daha fazla dosya tutacağı, işlem oluşturabilirsiniz ... Windows x64'te örnek, işlem başına> 2000 iş parçacığı oluşturabilir, ancak x86'da birkaç yüze yakın olabilir.
  5. Daha geniş programlar mevcut: Bir x64'ten hem x86 hem de x64 programlarını çalıştırabilirsiniz. (Örnek pencereler: wow64, windows64 öykünmesinde windows32)
  6. Emülasyon seçenekleri: Bir x64'ten hem x86 hem de x64 VM'leri çalıştırabilirsiniz.
  7. Daha hızlı: Bazı hesaplamalar 64 bit CPU’da daha hızlı
  8. Birden çok sistem kaynağının bölünmesi: Sistem kaynaklarınızı bölen en az bir RAM çalıştırmak istediğinizde çok fazla VM bellek çok önemlidir.
  9. Özel programlar mevcut: Birkaç yeni program sadece x64'ü destekliyor. Örnek Exchange 2007.
  10. Gelecekteki eski x86 ?: Zaman içinde daha fazla 64 bit kullanılacak ve daha fazla x86 kullanılmayacak. Böylece satıcılar sadece 64-bit daha fazla destekleyecektir.

2 büyük 64-bit mimarisi türü x64 ve IA64 mimarileridir. Ancak x64 bugüne kadar en popüler olanıdır.

x64, x86 komutlarını ve x64 komutlarını çalıştırabilir. IA64, x86 komutlarını da çalıştırıyor, ancak SSE uzantısını yapmıyor. X86 komutlarını çalıştırmak için Itanium'a özel donanım vardır; bu bir emülatör, fakat donanımda.

@Phil'in dediği gibi burada nasıl çalıştığını .

106
Brian R. Bondy

İnsanların şu anda görecekleri en büyük etki, 32bit bir bilgisayarın yalnızca maksimum 4GB belleği ele alabilmesidir. İşletim sistemi tarafından diğer kullanımlar için tahsis edilmiş belleği çıkardığınızda, PC'niz muhtemelen sadece yaklaşık 3,25GB kullanılabilir bellek gösterecektir. 64 bit'e geçildiğinde bu limit kaybolur.

Ciddi gelişme yapıyorsanız o zaman bu çok önemli olabilir. Birkaç sanal makine çalıştırmayı deneyin; hafızanız azalıyor. Sunucular ekstra belleğe ihtiyaç duyarlar ve 64bit kullanımının sunucularda masaüstünden çok daha fazla olduğunu göreceksiniz. Moore yasaları makineler hakkında daha fazla belleğe sahip olmamızı sağlıyor ve bu nedenle bazı noktalarda masaüstleri de standart olarak 64bit'e geçecek.

İşlemci farklılıklarının daha ayrıntılı bir açıklaması için ArsTechnica adresindeki bu mükemmel makaleye göz atın.

46
Phil Wright

Hiçbir şey ücretsiz değildir: 64 bit uygulamalar can 32 bit uygulamalardan daha fazla belleğe erişebilse de, olumsuz yönleri ihtiyaç daha fazla bellek olmalarıdır. 4 bayta ihtiyaç duyan tüm işaretçiler, şimdi 8'e ihtiyaç duyuyorlar. Örneğin, Emacs'taki varsayılan gereksinim 64 bitlik bir mimari için oluşturulduğunda% 60 daha fazla bellek. Bu ekstra ayak izi, bellek hiyerarşisinin her seviyesinde performansı düşürür: daha büyük çalıştırılabilir disklerden daha uzun sürebilir, daha büyük çalışma setleri daha fazla sayfalamaya neden olur ve daha büyük nesneler işlemci önbelleklerine daha az sığması anlamına gelir. 16K L1 önbelleğe sahip bir CPU düşünürseniz, 32 bitlik bir işaretçi L2 önbelleğini kaçırmadan ve kullanmadan önce 4096 işaretçi ile çalışabilir, ancak 2048 işaretleyiciden sonra L2 önbellek için 64 bitlik bir uygulamanın ulaşması gerekir.

X64'te bu, daha çok yazmaç gibi diğer mimari gelişmelerle azaltılabilir, ancak uygulamanız> 4G kullanamıyorsa PowerPC'de "ppc" üzerinde "ppc64" den daha hızlı çalışması muhtemeldir. Intel'de bile x86'da daha hızlı çalışan ve x64'te x86'da% 5'ten daha hızlı çalışan iş yükleri var.

31
James

64 bit işletim sistemi daha fazla RAM kullanabilir. Bu konuda, pratikte. 64-bit Vista/7, RAM'de hayati öneme sahip bileşenleri yerleştirmek için daha güvenli güvenlik özellikleri kullanır, ancak bu gerçekten 'farkedilir' değildir.

ChrisInEdmonton'dan:

PAE'li bir ix86 sistemindeki 32 bit işletim sistemi 64 GB RAM'e kadar hizmet verebilir. X86-64'teki 64 bit işletim sistemi, 256 TB sanal adres alanına erişebilir, ancak sonraki işlemcilerde 16 EB'ye kadar yükseltilebilir. Bazı işletim sistemlerinin adres alanını daha da sınırladığını ve çoğu anakartın ek kısıtlamaları olacağını unutmayın.

19
Phoshi

Tüm sorularınızı bir makale yazmadan cevaplayabileceğimden emin değilim (her zaman Google var ...), ancak 64bit için uygulamalarınızı farklı tasarlamanıza gerek yok. Bahsedilen şey, işaretçi boyutları gibi şeylerin artık inçlerle aynı boyutta olmadığına dikkat etmeniz gerektiğidir. Ve artık doğru olmayabilecek dört bayt uzunluğundaki belirli veri türlerine ilişkin yerleşik varsayımlarla ilgili tüm potansiyel sorunlarınız var.

Bu, uygulamanızdaki her türlü şeyi tetikleyebilir - dosyadan kaydetme/yükleme, veri yineleme, veri hizalama, veri üzerinde bitsel işlemlere kadar her şey. Taşımaya çalıştığınız veya her ikisi üzerinde çalışacağınız mevcut bir kod tabanınız varsa, üzerinde çalışacağınız çok sayıda küçük çeneniz olacak.

Bunun tasarım meselesi yerine uygulama meselesi olduğunu düşünüyorum. Yani Bence "tasarım", bir fotoğraf düzenleme paketi kelimesi ne olursa olsun aynı olacaktır. Hem 32bit hem de 64bit sürümleri için derlenen kodlar yazıyoruz ve tasarım kesinlikle ikisi arasında farklılık göstermiyor - aynı kod temeli.

64bit'teki temel "büyük anlaşma", 32bit'ten daha büyük bir bellek adres alanına erişim kazanmanızdır. Bu, bilgisayarınıza gerçekten 4 Gb'den fazla belleği takıp çıkarabileceğiniz ve gerçekten bir fark yaratabileceğiniz anlamına gelir.

Diğer cevapların benden daha fazla ayrıntıya ve yararlara gireceğinden eminim.

Aradaki farkı tespit etmek için programlayıcı olarak sadece bir işaretçinin boyutunu kontrol edin (örn. Sizeof (void *)). 4'ün cevabı 32 bit ve 8 ise 64 bitlik bir ortamda çalıştığınız anlamına gelir.

14
Greg Whitfield

32 Bitlik bir işlemin 4 GB'lık sanal adres alanı vardır; bu, bazı uygulamalar için çok az olabilir. 64 Bit uygulamasında neredeyse sınırsız adres alanı vardır (elbette sınırlıdır, ancak büyük olasılıkla bu sınıra ulaşmazsınız).

OSX'te başka avantajlar da var. Bkz. aşağıdaki makale , çekirdeğin neden 64 Bit adres alanında çalıştırılmasının (uygulamanız 64 veya 32'de çalışırsa çalışsın) veya uygulamasının 64 Bit adres alanında çalıştırılmasının (çekirdek hala 32 Bit ise) çok daha iyi performansa yol açar. Özetlemek gerekirse: Biri 64 Bit ise (çekirdek veya uygulama veya elbette her ikisi de), çekirdeği boşluk ve geri kullanmaya (hızlanacak) kullanmaya başladığınızda TLB'nin ("çeviri görünüm arabellek") temizlenmesi gerekmez yukarı RAM erişim).

Ayrıca "long long int" değişkenleriyle çalışırken performans kazancı var (uint64_t gibi 64 Bit değişkenleri). Bir 32 Bit CPU, iki 64 Bit değeri ekleyebilir/bölebilir/çıkarabilir/çarpabilir, ancak tek bir donanım işleminde gerçekleştiremez. Bunun yerine, bu işlemi iki (veya daha fazla) 32 Bit işlemine bölmesi gerekir. Bu yüzden 64 Bit sayı ile çok çalışan bir uygulama, doğrudan donanımda 64 Bit matematik yapabilme hız kazanacaktır.

Son fakat en az değil, x86-64 mimarisi klasik x86 mimarisinden daha fazla kayıt sunuyor. Kayıtlarla çalışmak, RAM ile çalışmaktan çok daha hızlıdır ve CPU'nun sahip olduğu kayıt sayısı ne kadar az olursa, kayıt değerlerini RAM olarak değiştirmesi ve kayıtlara geri dönmesi gerekir.

CPU'nuzun 64 Bit modunda çalışıp çalışmadığını bulmak için çeşitli sysctl değişkenlerine bakabilirsiniz. Örneğin. bir terminal aç ve yaz

sysctl machdep.cpu.extfeatures

EM64T'yi listeliyorsa, CPU'nuz x86-64 standardına göre 64 Bit adres alanını destekler. Ayrıca bakabilirsiniz

sysctl hw.optional.x86_64

1 (true/etkin) diyorsa, CPU'nuz x86-64 Bit modunu destekliyorsa, 0 (false/disabled) diyorsa, kullanmaz. Ayar hiç bulunamadıysa, yanlış olduğunu düşünün.

Not: sysctl değişkenlerini yerel bir C uygulamasının içinden de alabilirsiniz, komut satırı aracını kullanmanıza gerek yoktur. Görmek

man 3 sysctl
10
Mecki

Adres alanının (gerçek) bellekten daha fazlası için kullanılabileceğini unutmayın. Biri aynı zamanda daha tuhaf erişim modellerinde performansı artırabilen büyük dosyaları hafıza haritalayabilir, çünkü daha güçlü ve verimli blok seviyesi VM seviyesi önbellekleme devreye girer. Ayrıca 64-31’e büyük bellek blokları ayırmak daha güvenlidir. heapmanager beri biraz büyük bir blok tahsis izin vermeyecektir adres alanı parçalanması karşılaşma olasılığı düşüktür.

Bu başlıkta bahsedilenlerden bazıları (# yazmaçların iki katına çıkması gibi) sadece 64-bit için değil, sadece x86-> x86_64 için geçerlidir. Tıpkı x86_64 kapsamında bir garantili SSE2, 686 opcode ve PIC yapmanın ucuz bir yolu olduğu gibi. Bu özellikler değil yaklaşık 64 bit, ancak bilinen x86 sınırlamaları mirasını kesme ve giderilmesi konusunda kesinlikle vardır

Dahası, insanlar genellikle kayıtların hızlanmanın nedeni olarak ikiye katlanmasına işaret ederken, hile yapan varsayılan SSE2 kullanımı (memcpy ve benzeri işlevleri hızlandırmak) daha olasıdır. Aynı seti x86 için etkinleştirirseniz, fark çok daha küçüktür. (*) (***)

Ayrıca, başlangıçta bir ceza verildiğini unutmayın; çünkü ortalama veri yapısı basitçe bir göstergenin boyutu daha büyük olduğu için artacaktır. Bu aynı zamanda önbellek etkilerine de sahiptir, ancak ortalama memcpy () (ya da kendi dilinizde hafıza kopyası için ne kadar olursa olsun) daha uzun süreceği için daha belirgindir. Bu sadece yüzde btw oranındadır, ancak yukarıda belirtilen hızlanmalar da bu büyüklüktedir.

Genellikle hizalama ek yükü 64-bit mimarilerde daha büyüktür (daha önce 32-bit kayıtlar genellikle 32-bit ve 64-bit değerlerinin bir karışımı haline gelir) ve yapıları daha da şişirir.

Genel olarak, basit testlerim, sürücüler ve çalışma zamanı kitaplıkları tam olarak uyarlanmışsa, ortalama uygulama için önemli bir hız farkı sağlamazsa, birbirlerini kabaca iptal edeceklerini belirtir. Bununla birlikte, bazı uygulamalar aniden daha hızlı olabilir (örneğin, AES'e bağlı olduğunda) veya daha yavaş (önemli veri yapısı sürekli olarak/taranan/yürürken ve çok fazla işaretçi içerir). Testler yine de Windows'taydı ve PIC optimizasyonu kıyaslanmamıştı.

En JIT-VM dilleri (Java, .NET) örneğin daha (dahili) ortalama olarak önemli ölçüde daha işaretçileri kullanmak unutmayın C++. Muhtemelen hafıza kullanımları, ortalama programdan daha fazla artar, ancak bunu doğrudan yavaşlayan etkilerle eşleştirmeye cesaret edemiyorum (çünkü bunlar gerçekten karmaşık ve korkak bir canavardır ve genellikle ölçmeden tahmin etmek zordur)

Windows 64-bit, basit işlemleri hızlandıran ve karmaşık (sin, cos vb.) İşlemleri yavaşlatan görünen kayan nokta için SSE2'yi kullanır.

(*) az bilinen bir gerçek, SSE kayıt sayısının 64 bit modunda da ikiye katlanmasıdır.

(**) Dr Dobbs'un birkaç yıl önce güzel bir makalesi vardı.

9

Burada çoğu kişinin bahsettiği bariz hafıza sorunlarının yanı sıra, Knuth'un (diğerleri arasında) son zamanlarda hakkında konuştuğu "geniş kelime işlem" kavramına bakmaya değer olduğunu düşünüyorum. Bit manipülasyonuyla kazanılacak çok fazla verimlilik vardır ve 64 bit Word'deki bit yönünde işlemler 32 bit Word'den çok daha ileri gider. Kısacası, bellekte daha fazla işlem yapabilmeniz için hafızayı vurmak zorunda kalmazsınız ve performans açısından bakıldığında bu oldukça büyük bir kazançtır.

Bahsettiğim havalı püf noktalarının örnekleri için Cilt 4, Ön Fascicle 1A'ya bir göz atın.

8
Michael Dorfman

Daha fazla belleğe hitap etme yeteneğinin yanı sıra, x86_64 ayrıca derleyicinin daha verimli kod oluşturmasını sağlayan daha fazla kayıt sayısına sahiptir. Performans gelişimi genellikle olsa da oldukça küçük olacaktır.

X86_64 mimarisi, x86 ile geriye doğru uyumludur. Değiştirilmemiş 32-bit işletim sistemlerini çalıştırmak mümkündür. Değiştirilmemiş 32 bit yazılımı 64 bit işletim sisteminden çalıştırmak da mümkündür. Yine de tüm normal 32-bit kütüphaneleri gerektirecek. Ayrı olarak kurulmaları gerekebilir.

7
Kristof Provost

Bu konu zaten çok uzun, ama ...

Yanıtların çoğu, 64 bitlik daha büyük bir adres alanına sahip olduğunuza odaklanır, böylece daha fazla belleği ele alabilirsiniz. Tüm uygulamaların yaklaşık% 99'unda bu tamamen alakasızdır. Büyük boğmaca.

Gerçek Sebep 64-bit iyidir değil sicillerin daha büyük, fakat iki katı vardır! Bu, derleyicinin değerlerinizi daha fazlasını belleğe dökmek ve birkaç komutla geri yüklemek yerine kayıt defterinde tutabileceği anlamına gelir. Bir optimize edici derleyici döngüleri sizin için açıyorsa ve bunları kabaca iki kat daha fazla açarak performansa gerçekten yardımcı olabilir.

Ayrıca, 64-bit için alt rutin arayan/arayan uçları kuralları, geçirilen parametrelerin çoğunu arayan yerine onları yığına iten ve arayan uçları çıkaran arayan yerine tutmak için tanımlanmıştır.

Bu yüzden "tipik" bir C/C++ uygulaması sadece 64-bit için yeniden derleyerek yaklaşık% 10 veya% 15 performans artışı elde eder. (Uygulamanın bir kısmının hesaplanmış olduğunu varsayarsak. Tabii ki bu garanti edilmez; Tüm bilgisayarlar aynı hızda bekler. Mileage May Vary.)

6
Die in Sente

Microsoft.com'dan teklif:

Aşağıdaki tabloda, 64 bit Windows sürümüne ve 64 bit Intel işlemciye dayanan bilgisayarların maksimum kaynakları, mevcut 32 bit kaynak maksimumlarıyla karşılaştırılmıştır.

MS-Table

5

32 bitlik bir makinede adreslenecek yalnızca 4,294,967,295 bayt belleğe sahip olacaksınız. 64 bitlik bir makinede 1.84467441 × 10 ^ 19 bayt belleğiniz vardır.

Wikipedia bunu söylüyor

64-bit işlemciler, (örneğin, 32-bit ortamlarda çalışmaktan iki kat daha hızlı) belirli görevleri (büyük rakamların yüzdeleri gibi) hesaplar (örneğin, 32-bit ve 64-bit Windows Hesap Makinesi arasındaki karşılaştırmadan elde edilir; ). Bu 64-bit optimize edilmiş uygulamaların genel teorik olasılıklarını verir.

64 bit mimariler tartışmasız dijital video, bilimsel bilgi işlem ve büyük veritabanları gibi uygulamalarda büyük veri kümeleriyle çalışmayı kolaylaştırırken, bunların veya 32 bit uyumluluk modlarının karşılaştırılabilir bir fiyattan daha hızlı olup olmayacağı konusunda önemli tartışmalar yapıldı. Diğer görevler için 32 bit sistemler. X86-64 mimarisinde (AMD64), 32 bit işletim sistemlerinin ve uygulamaların çoğu, 64 bit donanım üzerinde sorunsuz çalışabilir.

Sun'ın 64-bit Java sanal makineleri 32-bit sanal makinelerinden daha yavaş başlıyor çünkü Sun, 64-bit platformlar için yalnızca "server" JIT derleyicisini (C2) uyguladı. [9] Daha az verimli kod üreten ancak daha hızlı derleyen "istemci" JIT derleyicisi (C1), 64 bit platformlarda kullanılamaz.

32-bit ve 64-bit işlemcilerin karşılaştırmasında dikkate alınması gereken tek faktörün hız olmadığı belirtilmelidir. Çok görevli, stres testi ve kümeleme (yüksek performanslı bilgi işlem için), HPC gibi uygulamalar, doğru dağıtımda verilen 64 bit mimariye daha uygun olabilir. 64 bit kümeler, bu nedenle, IBM, HP ve Microsoft gibi büyük kuruluşlarda geniş çapta konuşlandırılmıştır.

5
Mark Cidade

Bahsedilen avantajların yanı sıra, burada güvenlikle ilgili biraz daha var:

  • x86_64 cpus sayfa tablolarında yürütülemez biti var. Yani bu, arabellek taşması nedeniyle ortaya çıkan güvenlik istismarlarını önleyebilir. 32 bit x86 cpus, PAE modunda bu özelliği yalnızca desteklemektedir.
  • Daha büyük adres alanı, arabellek kullanımının zorlaşmasını sağlayan daha iyi adres alanı düzeni rastgele seçimine (ASLR) izin verir.
  • x86_64 cpus, konumdan bağımsız bir kod, yani komut gösterici yazmacına (RIP) göre veri erişimi sağlar.

Akla gelen bir diğer avantaj, Linux çekirdeğinde vmalloc() ile ayrılan sanal bitişik bellek miktarının 64 bit modunda daha büyük olabileceğidir.

5
knweiss

Kristof ve Poshi, 32 ve 64 bit işletim sistemleri arasındaki temel teknik farklılıkların, kullanıcı deneyiminin genellikle teoriden çok farklı olduğunu belirtti. Windows'un bugüne kadarki 64 bit tüketici sürümlerinde (XP ve Vista) sürücü desteklerinde büyük boşluklar var. Yazıcılarda, tarayıcılarda ve diğer harici aygıtlarda, 32 bit sürümlerle iyi çalışan 64 bit sürümleriyle çalışmadığını gördüm. Bunlar 64 bit sürücüleri olan cihazlardır ve hala çalışmayacaklardır. Bu noktada, Windows 7'nin yalnızca şu anda erişime sahip olan uber-geeks'leri değil, gerçek son kullanıcılardan nasıl idare ettiğini duyuncaya kadar Microsoft'tan 64-bit olan herhangi bir tüketiciden uzak durmanızı tavsiye ederim. En az 6 ay verin ve insanların neler yaşadığını görün. Şahsen ben Windows 7'nin 32-bit lezzetini yükleyeceğim çünkü Vista'nın 64-bit sürümleri, eon'ları kullanmayı bıraktığım ve XP 32 bit'e döndüğüm pahalı bir kağıt ağırlığıydı.

4
Kevin K

Bazı oyun programları, bit-board temsilini kullanır. Örneğin satranç, dama ve othello 8x8'lük bir tahtaya, yani 64 kareye sahip, bu yüzden bir makinede Word'ün en az 64 bitinin olması performansa önemli ölçüde yardımcı oluyor.

64 bit yapımı 32 bit sürümün neredeyse iki katı olan bir satranç programını okuduğumu hatırlıyorum.

2
Hugh Allen

32 bit ve 64 bit terimi, bir bilgisayar işlemcisinin (ayrıca CPU olarak da adlandırılır) bilgileri işleme biçimini ifade eder. Windows'un 64 bit sürümleri, 32 bit sistemlerden daha büyük miktarda rasgele erişim belleği (RAM) kullanır.

hız bence farklı olabilir

2
LestiWulan

En pratik amaçlar için, muhtemelen bir fark görmeyeceksiniz.

64 bit işletim sistemi kurmak için 64 bit CPU'ya (son birkaç yıldaki çoğu CPU'ya) sahip olmalısınız.

64 bit işletim sisteminin birkaç avantajı vardır:

  • 4GB'tan fazla RAM çalıştırmanıza izin verir (32 bit işletim sisteminde ele alabileceğiniz maksimum sayı 2 ^ 32 = 4GB'dır)
  • Büyük veri kümeleriyle (örneğin Excel'de) ve belirli hesaplama yoğun görevlerle (ör. Photoshop ve büyük dosyalar) çalışmak için faydalıdır.
  • 64 bitlik bir işletim sisteminde yalnızca 64 bitlik bir program çalıştırabilirsiniz, ancak her ikisinde de 32 bitlik bir program çalıştırabilirsiniz (her ikisinin de çok fazla programın geldiğini unutmayın, bu nedenle yalnızca 64 bit değildir) programları).

Çoğu senaryoda, 64 bit programlar biraz daha fazla bellek kullanır, ancak kişisel bir bilgisayar için bu genellikle fark edilmez.

1
cyberx86

Microsoft Windows ile ilgili olarak bunun bir diğer nedeni, uzun yıllar boyunca 32 bit işletim sistemleri için tasarlanmış ve 64 bit derleme için optimize edilmemiş olan Win32 API'sinin olmasıdır. Uygulamalarım için bazı DLL'ler yazdığımda, genelde 64 bitlik olmayan Win32 sürümünde derlerim. Vista'dan önce pek çok başarılı 64 bit Windows sürümü olmadı. Yeni makinemde çalıştığım yerin 4 GB RAM olduğuna inanıyorum ama hala 32-bit Windows kullanıyorum XP Pro XP64 veya Vista'ya göre bilinen kararlı bir O/S olduğu için.

Sanırım bazı kişiler için neden bu kaydın önemli olduğu konusunda daha ayrıntılı bilgi için 16-bit'den 32-bit'e kayma olduğunda da tekrar bakmak isteyebilirsiniz. Bir şirketin masaüstünde çalıştırabileceği kritik görevli uygulamalar; küçük muhasebe paketleri, 64 bit işletim sistemlerinde çalışmayabilir ve bu nedenle eski bir makineyi sanal veya gerçek bir ortamda tutmaya ihtiyaç duyulur.

Bir adresin büyüklüğünü değiştirmek bazı büyük sonuçlara ve tepkilere neden olabilir.

1
JB King