응용 프로그램은 최대 4GB 메모리를 갖춘 64비트 CPU에서 64비트 운영 체제를 사용하면 이점을 얻을 수 있습니다. [닫기]

응용 프로그램은 최대 4GB 메모리를 갖춘 64비트 CPU에서 64비트 운영 체제를 사용하면 이점을 얻을 수 있습니다. [닫기]

어떤 종류의 애플리케이션(CPU 집약적, IO 집약적, CPU/IO 애플리케이션의 적절한 혼합)이 32비트가 아닌 64비트 하드웨어의 64비트 OS에 배치할 가치가 있는지 파악하려고 합니다. RAM을 4GB 이상으로 확장할 수 없는 OS가 있습니까?

답변1

TL;DR;Intel/AMD CPU에서 32비트 모드의 속도는 64비트 모드와 거의 같습니다.


더 자세한 답변은 다음과 같습니다.

그것은 많은 것들에 달려 있습니다:

비성능: 더 큰 주소 공간에 액세스할 수 있습니다. 이것은 좋은 일입니다.

이 주소 공간은 다음을 포함한 다양한 목적으로 사용됩니다.

  • IO 장치 매핑(예: 이미 6GiB에 도달할 수 있는 그래픽 카드 버퍼)
  • 물리적 메모리(PEA가 없다고 가정하면 최대 4GiB RAM 제한이 발생함)
  • 가상 메모리의 경우(안전을 위해 프로그램을 반 무작위로 여기에 매핑하십시오. 따라서 몇 GB의 여유 공간을 유지하십시오. 즉, 32비트와 일부 PCI[e] 공간이 있는 경우 RAM에 사용하지 마십시오. 512MiB 이상의 IO를 통해 지도 프로그램을 위한 충분한 주소 공간을 예약하고 반무작위 보안을 유지할 수 있습니다. 바라보다http://en.wikipedia.org/wiki/ASLR주소 공간 레이아웃 무작위화를 위한 좋은 출발점이 됩니다.

네 가지 속성:

  • 64비트 코드는 32비트 포인트 크기의 두 배인 포인터를 사용합니다. 이로 인해 프로그램이 더 커지고 결국 버퍼와 같은 다른 작업에 더 적은 메모리를 사용하게 됩니다.
  • 더 큰 프로그램에는 더 많은 캐시가 필요합니다. 그렇지 않으면 캐시 효율성이 떨어집니다.

AMD 또는 Intel CPU에만 해당:

  • amd64 모드에서는 32비트 모드보다 두 배 많은 레지스터를 얻게 됩니다. x86 아키텍처는 상대적으로 레지스터 수가 적기 때문에 많은 메모리 액세스가 필요하며 이는 나쁜 것입니다. 프로그램이 메모리에 바인딩되지 않은 경우 작업 속도가 크게 향상될 수 있습니다.
  • Amd64(Intel 및 AMD CPU용 64비트 모드, Intel과 혼동하지 마십시오.IA64비트 패턴이 크게 다름)만 지원합니다.실행 비트 없음64비트 모드에서 실행 중인 경우 해당 페이지 테이블에 있습니다. 보안을 위해서도 이것을 원합니다.

그러고 보니 당신*을 위해평균프로그램 및 amd64: 속도 변경이 없습니다. 장점과 단점은 똑같이 크고 서로 상쇄되는 것처럼 보입니다. 이는 32비트 및 64비트 버전의 칩 모두에 충분한 레지스터가 있는 Power PC 64와 같은 다른 아키텍처에서는 그렇지 않았습니다.

마지막으로 실용적인 이유는 다음과 같습니다.

  • 4GiB 이상으로 메모리를 확장할 수 있다고 생각되면 항상 64비트 버전을 사용하세요.
  • 여러 운영 체제가 설치되어 있는 경우 모든 운영 체제에서 동일한 버전을 사용하여 작업을 단순하게 유지하십시오. (이제 이는 모두 64비트 버전을 사용하고 있음을 의미합니다.)
  • 안전을 위해 주소 공간 무작위화가 포함된 운영 체제를 사용하는 경우 RAM이 512MiB 이상인 모든 노드에서 이를 사용하십시오. (읽기: 모든 최신 운영 체제에서 작동합니다).

답변2

간단히 대답하자면, 지속적으로 4GB RAM을 최대로 늘리지 않는 한 32비트는 일반적으로 64비트와 동일한 성능을 얻을 수 있다는 것입니다. 실제로 대부분의 32비트 응용 프로그램은 메모리 공간이 더 작으므로 32비트 성능이 64비트보다 더 좋을 수도 있습니다. 4GB RAM 이후에는 64비트가 32비트보다 훨씬 낫지만 그 전에는 어느 쪽으로든 갈 수 있으며 성능 차이가 별로 없습니다.

관련 정보