PC에서 Windows 7 x64가 x86 버전보다 빠른 이유는 무엇입니까? 그러나 상당량의 x64는 x64입니다 (x86

x86을 주로 사용 하는데도 PC에서 Windows 7 x64가 x86 에디션보다 빠르게 작동하는 이유는 무엇입니까? 나에게 무슨 문제가 있고 무엇을 놓치고 있습니까?

내가 사용하는 것의 대부분은 x86입니다 (예 : DAW, 게임, 미디어 플레이어). 그러나 상당량의 x64는 x64입니다 (x86 상대방은 정상적으로 작동하지만).

같은 시스템에서 같은 것을 사용하려고했지만 항상 Windows 7 x64가 x86보다 약간 빠르게 작동하는 것으로 나타났습니다. 나는 매우 관찰합니다. 심지어 가장 작은 창 애니메이션을 볼 수 있습니다.

시스템 : Windows 7 Ultimate x64
CPU : Intel Core 2 Duo E7500 @ 2.93GHz
RAM : 2GB x 2 = 4GB DDR2 @ 332MHz
메인 보드 : Intel D945GCNL
그래픽 : ATI Radeon HD 4350 @ 1GB 전용
오디오 : M-Audio FastTrack Pro
HDD : 삼성 HD753LJ 733GB 및 삼성 HD160JJ 156GB

보시다시피 내 시스템은 오래되었습니다.



답변

이것은 기존의 개별 답변의 비트를 일부 추가하여 요약하여 완전한 답변을 제공하려는 시도입니다. 이 목록에는 특정 사례에 대해 일부를 배제 할 수있는 경우에도 일반적인 사례에 대한 모든 가능성이 포함됩니다.

CPU 명령 세트 차이

Joel Coehoorn이 설명했듯이 기본 x64 코드의 경우 더 큰 레지스터 세트와 일부 추가 명령어를 사용할 수 있습니다 (예 : 모든 x64 CPU는 SSE 및 SSE2 명령어를 구현하도록 보장됩니다). 이는 기본 x64 OS 및 드라이버가 더 효율적일 수 있음을 의미합니다.

더 나은 RAM 활용

64b는 전체 4GB를 사용할 수 있습니다 (가능한 경우 더 많음). 또한 일부 OS 내부 제한 (페이징 된 / 페이징되지 않은 풀, 최대 캐시 크기)은 64b OS에서 증가 합니다. 결과적으로 메모리 페이징과 파일 캐싱이 더 효율적일 수 있습니다.

다른 하드 디스크 위치

동일한 디스크의 두 파티션에 두 개의 OS가 설치되어 있으면 두 파티션 중 하나가 바깥 쪽 가장자리에 가까워 일반적으로 더 빠릅니다 .

다른 OS 상태

OS가 두 개인 경우 각각 OS 상태가 약간 다를 수 있습니다. 그들 중 하나는 다른 것보다 더 단편적 일 수 있으며, 그들 중 하나는 다른 것보다 비트 클리너 레지스트리가 적거나 설치된 서비스 또는 백그라운드 응용 프로그램이 적을 수 있습니다.

더 나은 드라이버

또 다른 가능성은 x64 드라이버가 근본적인 아키텍처 차이로 인한 것이 아니라 공급 업체가 최적화 및 미세 조정을 위해 더 많은 노력을 기울 였기 때문에 x86보다 품질이 더 좋을 수 있다는 것입니다.

64b 어드레싱

나는 대부분의 일상적인 응용 프로그램 에서이 차이가 아무런 역할을하지 않기 때문에 완전성을 위해서만 이것을 추가합니다. 그리고 그것은 Jasper가 그의 질문에서 묘사 한 것과 분명히 관련이 없습니다.

엄청난 양의 데이터를 처리하는 응용 프로그램이있는 경우 (예 : 큰 그림으로 Photoshop에서 작업) 64b 버전을 실행하면 4GB 이상의 RAM이 설치되어 있으면 큰 차이를 만들 수 있습니다.

“빠른”은 실제로 무엇을 의미합니까?

다음은 Jasper가 볼 수있는 “빠른 것”이 무엇인지 다른 답변에 대한 의견 의 목록입니다 .

  • 부드러운 애니메이션 창

설명하기 어려운. Windows 애니메이션은 Windows 7의 GPU에서 수행되며 GPU는 동일합니다. CPU의 부하는 무시할 수 있습니다. (난 당신이 생각 하는 에어로 데스크탑을 사용).

  • 특정 사진 편집 프로그램이 더 빨리 그리기 (x86 및 x64)
  • 더 매끄럽게 (MPC-HC x64에서) 실행되는 HD 비디오와 전체적으로보다 안정적인 경험.

x64를 이용하는 드라이버 나 드라이버를 더 잘 조정할 수 있습니다.

  • 훨씬 빠르게 복사되는 파일

파티션 속도가 빠르거나 (OS와 전혀 관련이 없음) x64 OS의 캐시 처리 기능이 향상 될 수 있습니다.

  • 게임에는 변화가 없었습니다.

이해할 수 있는. 게임 성능은 CPU와 GPU에 의해 결정됩니다. CPU 제한의 경우 제한 코드는 게임 자체이며 x64 OS와 거의 인터페이스하지 않는 동일한 x86 코드입니다. 따라서 CPU 성능은 동일합니다. GPU는 동일합니다. 잘 프로그래밍 된 게임에서 드라이버 및 OS 오버 헤드가 낮으므로 드라이버 또는 OS 차이가 여기에 표시되지 않습니다.


답변

32 비트에서 64 비트로의 이동은 x64 아키텍처에서 유일한 변경은 아닙니다. x64는 또한 더 많은 CPU 레지스터와 새로운 CPU 명령어를 추가합니다. 이를 활용하는 방법을 알고있는 운영 체제는 동일한 하드웨어에서 약간의 성능 향상을 가져올 수 있습니다. 아, 그리고 비디오 카드에 사용되었던 1GB의 RAM을 되찾아도 아프지 않습니다.


답변

경고 : 이것은 당신이 알 수있는 것보다 조금 더 복잡한 질문이며, 대부분의 답변이 묘사 한 것 이상입니다. 적어도 조금 더 많은 이야기를 다루기 위해이 게시물은 꽤 길다 …

우선, 비디오 메모리의 상황. 비디오 카드의 메모리 전체가 CPU 주소 공간에 직접 표시되지는 않습니다. 일반적으로 CPU에 약 128-256MB의 비디오 메모리가 표시되는 “창”이 있습니다. GPU는 메모리의 다른 부분을 해당 창에 매핑 할 수 있으므로 일반적으로 CPU에서 대부분의 GPU 메모리에 쓸 수 있지만 , GPU에 미리 무엇을 쓸 것인지 미리 알려 주어야합니다. 예를 들어 DirectX를 사용하고 그래픽 메모리에 직접 쓰려고 할 때 할 수는 있지만 LockRectGPU를 호출 하여 올바른 메모리를 창에 매핑하도록 호출 하여 시작합니다. 완료하자마자 전화UnlockRect필요에 따라 다른 메모리를 매핑 할 수 있습니다). 적어도 일반적인 경우에는 BIOS 설정에서 비디오 창 크기를 조정할 수 있습니다.

둘째, 32 비트 모드에서도 x86 프로세서는 PAE (Physical Address Extensions)를 지원하여 CPU가 4Gig 이상을 처리 할 수 ​​있도록합니다. 기억의. Microsoft는 일부 Windows 버전에서는 PAE를 지원하지만 비교적 비싼 Enterprise Server 버전의 Windows Server 만 지원합니다. 또한 AWE를 사용하려면 프로그램을 특별히 작성해야합니다. 그렇게 한 적은 프로그램 (예 : SQL Server Enterprise Edition) 만 있습니다. 결론 : 가능하지만 상당히 드 rare니다.

한 번에 64 비트를 읽는 한, 한 번에 32 비트 만 데이터를 읽는 마지막 프로세서는 486입니다. Pentium부터 모든 프로세서에는 64 비트 데이터 버스가 있습니다. 있습니다 주소 는 64 비트 데이터 버스를 확대하는 않았다 그래서 버스, 데이터 버스와 동일하지 하지 공교롭게도, PAE는 펜티엄 프로에서 추가되었다,하지만 (더 많은 메모리와 작업에 프로세서를 허용 그것 때문에, 했다 거의 64 비트 데이터 버스의 확장)와 동시.

펜티엄은 단일 클록주기에서 64 비트의 데이터를 읽을 수 있지만 내부적으로는 (대부분) 한 번에 32 비트의 데이터를 처리했습니다. 더 넓은 버스는 주로 CPU와 메인 메모리의 속도 차이를 보충하는 데 도움이되었습니다. Pentium MMX의 MMX 명령어는 64 비트 청크로 데이터 처리를 지원했지만 사용하기가 다소 어려웠으며 특히 대부분의 컴파일러가 MMX 코드를 생성하지 않았으므로이를 사용하기 위해 어셈블리 언어로 작성해야했습니다 . Pentium은 부동 소수점 숫자에 대해 64 비트 (및 80 비트) 작업을 지원했지만 대부분의 소수의 프로그래밍에만 사용되며 일반적으로 정수를 사용하는 것보다 느립니다.

x86-64 디자인은 32 비트 x86 디자인보다 2 배 많은 범용 레지스터를 가지고 있으며 각 레지스터의 너비는 64 비트입니다. 그러나 CPU가 32 비트 모드에서 실행중인 경우 32 비트 CPU에 존재하는 레지스터의 서브 세트 만 사용할 수 있습니다.

32 비트 모드에서 잠시 부동 소수점으로 돌아가서 부동 소수점 수학은 원래 Intel 8087 수학 코 프로세서 용으로 설계된 명령어 세트를 사용하여 수행됩니다. 이것은 기능을 완전히 활용하기가 상당히 어려운 모델을 사용합니다. 인텔 (및 AMD)은 최근 “스트리밍 SIMD 확장”또는 SSE를 추가했습니다. 대부분의 64 비트 컴파일러는 8087 호환 부동 소수점 대신 SSE를 사용할 수있는 코드를 생성합니다. SSE의 “SIMD”는 “단일 명령, 다중 데이터”를 나타냅니다. 이것이 의미하는 것은 하나의 SSE 명령어가 두 개의 개별 데이터 조각에 대해 두 개의 부동 소수점 연산을 수행 할 수 있다는 입니다. 이것이 반드시 속도를 두 배로 늘릴 필요 는 없지만 일반적으로 속도를 약간 향상시킵니다.

마지막으로, 비교에는 일반적으로 약간 불공평 한 부분이 있음을 지적해야 할 것입니다. 새로운 OS를 설치할 때, 꽤 오랫동안 사용되어 온 OS보다 거의 항상 조금 더 빠릅니다. 프로그램은 레지스트리, 하드 드라이브 등에 데이터를 저장합니다. 더 많은 데이터를 추가할수록 주어진 시간에 원하는 데이터를 찾는 데 더 많은 작업이 필요합니다. “레지스트리 클리너”를 판매하는 회사가 이러한 효과를 과장하는 경우가 많지만 어느 정도는 사실입니다. 따라서 하드 드라이브를 다시 포맷하고 정확히 동일한 OS를 다시 설치하는 것만으로도 약간의 속도 향상을 기대할 수 있습니다. 오래된 OS가 설치되어 오랫동안 많이 사용 된 경우 , 그 개선 (모두 자체) 꽤 충실합니다. 보고있는 속도 향상의 적어도 일부는 두 OS 간의 실제 차이와 무관 할 수 있습니다.

물론 그 이상이 있지만 아이디어를 얻기 시작합니다. 일반적으로 개별적으로 상당히 작은 차이를 만드는 많은 기능이지만 많은 기능이 전체적으로 상당히 실질적인 차이를 만들기 위해 함께 추가 (또는 곱하기)하기 때문에 큰 차이를 만드는 단일 기능의 문제는 아닙니다.


답변

32 대 64 비트와는 아무런 관련이 없습니다.

게시물에서 ’64 비트가 빠릅니다 ‘라는 의미가 무엇인지 확실하지 않습니다. 이전에 32 비트 Windows를 설치 한 컴퓨터에 64 비트 Windows를 다시 설치 한 것에서 가져와야합니까? 그렇다면 파일 구조의 ‘재설정’을 통해 속도 변경을 쉽게 설명 할 수 있습니다. 특히 새로 포맷 한 경우 새로 설치하면 파일이 조각 나거나 디스크 공간이 부족하거나 레지스트리가 복잡 해지는 등 이전 설치보다 응답 속도가 빠릅니다.

또한 드라이버 중 하나 일 수도 있습니다. 예를 들어, 최신 비디오 드라이버는 이전 x86 버전보다 공급 업체가 더 빠르고 더 최적화 할 수 있습니다. 또는 하드 디스크 드라이버가 더 나을 수도 있습니다.


답변

간단히 말해, 컴퓨터가 클럭주기 당 64 비트 (8 바이트)의 데이터를 처리 할 수 ​​있기 때문입니다. 프로세서는 단어로 알려진 미리 정렬 된 비트 형식으로 데이터를 수신합니다. x64 아키텍처의 단어는 x86 아키텍처의 단어 크기의 두 배입니다. 프로세서가 실제로 데이터를 더 빠르게 처리하지는 않지만 (두 설치에서 코어 2는 2.93GHz) 데이터를 더 효율적으로 처리합니다. 또한 주석에서 언급했듯이 프로세서가 RAM에서 64 비트 단어를 읽고 있기 때문에 모든 RAM을 처리 할 수 ​​있습니다. 에서 위키 백과 :

현대 컴퓨터의 단어 크기를 언급 할 때 종종 해당 컴퓨터의 주소 공간 크기도 설명합니다. 예를 들어 “32 비트”컴퓨터는 일반적으로 32 비트 메모리 주소를 허용합니다. 바이트 주소 지정 가능한 32 비트 컴퓨터는 2 ^ 32 = 4,294,967,296 바이트의 메모리 또는 4 기가 바이트 (GB)의 주소를 지정할 수 있습니다. 하나의 메모리 주소를 한 단어로 효율적으로 저장할 수 있기 때문에 논리적이고 유용 해 보입니다.

64 비트 프로세서의 경우 2를 곱하지 않고 지수 적으로 증가합니다.

적절한 OS 지원 기능을 갖춘 최신 바이트 주소 지정 가능 64 비트 컴퓨터는 2011 년 현재 거의 무제한으로 간주되는 2 ^ 64 바이트 (또는 16 엑시 바이트)를 처리 할 수 ​​있습니다.

기사 는 약간 오래되었지만 64 비트 처리 방법에 대한 정보를 많이 제공합니다.

이것이 실제로 2 배의 성능 향상으로 해석되지는 않는다는 것을 지적하고 싶습니다. 실제 성능은 다른 많은 변수 (디스크 속도, 버스 속도, 프로세서 캐시, 사용 가능한 메모리 등)에 의존하기 때문입니다. 그러나 더 많은 OS를 메모리에로드하고 프로세서가보다 효율적으로 처리 할 수 ​​있으므로 Windows의 성능이 향상됩니다.


답변

시스템이 64 비트 OS를 사용하는 것이 가장 빠른 이유는 32 비트 OS가 시스템의 모든 RAM을 사용할 수 없기 때문이라고 생각합니다.

32 비트 OS는 32 비트, 즉 4GB의 실제 주소 공간을 제어 할 수 있습니다. 이 주소 공간에는 시스템 메모리, 비디오 메모리, IO 장치 등이 포함됩니다. 따라서 1GB 전용 비디오 램이 있으면 사용 가능한 램에서 첫 번째 GB를 뺄 수 있습니다. 그런 다음 다른 장치는 다른 200MB 정도를 뺍니다.

따라서 응용 프로그램에 2.8GB의 RAM 만 남게됩니다. Windows 7에서는 많지 않습니다.)

반면에 64 비트 OS는 모든 RAM을 활용할 수 있습니다.


답변

별도의 동일한 Lenovo x100e 노트북에 32 비트 및 64 비트를 설치했습니다. 32 비트에는 2G 램이 있었고 64 비트에는 4G 램이 있었으며 32 비트는 여전히 더 빠르고 매끄럽고 64 비트보다 지연이 적으며 응답 속도가 느리고 느립니다. CPU는 64 비트 CPU입니다. 동일한 드라이버가 설치되고 Windows 업데이트가 모두 완료되었습니다. 64 비트는 x64 CPU에서도 엔트리 레벨이 아닌 고급 컴퓨터 용이라고 생각합니다.