2013-11-27 4 views
0

Delphi/FastMM은 OS 사양과 동일하게 처리 할 수 ​​있습니까? http://msdn.microsoft.com/en-us/library/windows/desktop/aa366778(v=vs.85).aspx델파이 XE2/64 비트 대상 주소를 입력 할 수 있습니다. 1 테라 바이트의 메모리?

내 소프트웨어가 궁금해 한 1TB (Windows 2008 서버)에 액세스 할 수 있는지 고객에게 물어 보았습니다.

+0

40 비트의 주소 공간을 처리 할 수 ​​없다면 64 비트에서 많이 사용되지는 않을 것입니다. :) 그래서 대답이 "아니오"로 밝혀지면 Delphi의 허위 광고라는 용어를 사용합니다. – cHao

+5

이것은 Embarcadero가 제품의 기능과 관련되어 있으므로 직접적으로 질문해야하는 질문입니다. 그러나 문제를 해결하고 "예"라고 대답하면됩니다. 64 비트 델파이의 포인터는 64 비트입니다. 이는 물리적 주소 지정 제한을 초과하므로 많은 메모리를 쉽게 처리해야하는 이유가 있습니다. –

답변

6

델파이는 64 비트 포인터로 코드를 내 보냅니다. 이러한 포인터는 2 바이트 (1TB 이상)를 처리 할 수 ​​있습니다. 제한은 운영 체제의 가상 메모리 설계 및/또는 라이센스에 의해 부과되며 Delphi 컴파일러는 이러한 제한 사항을 전혀 모릅니다. 런타임시 시스템은 메모리 제한을 적용하며 코드는 이러한 제한을받습니다. 그러나 Delphi에는 그다지 해결할 한계가 없습니다.

마찬가지로 FastMM에는 1TB 제한에 대한 개념이 없습니다. FastMM은 시스템에서 메모리가 모두 소모되었다고보고하면 메모리 부족 오류를보고합니다.

Delphi/FastMM은 OS 용 사양과 동일하게 처리 할 수 ​​있습니까?

예.


제쳐두고. Borland 메모리 관리자를 사용하는 이전 32 비트 Delphi 버전은 2GB-4GB 범위의 주소와 호환되지 않았습니다. Delphi 코드가 큰 주소를 인식하는 것으로 표시된 프로세스에서 실행되면이 문제가 나타납니다.

귀하의 개발 도구가 운영체제의 한계를 뛰어 넘는 한계를 설명하는 방법을 설명하기 위해이 내용을 언급합니다. 64 비트 Delphi에는 이러한 문제가 없습니다.하지만 여러분이 묻는 질문은 아주 유효합니다.