문제

데스크탑 애플리케이션을 설계 할 때 응용 프로그램이 얼마나 많은 메모리를 사용해야하는지에 대한 일반적인 규칙이 있습니까?

무거운 체중 애플리케이션의 경우 Firefox 또는 Google Chrome과 같이 쉽게 이해하거나 최소한 프로파일을 제공 할 수 있습니다. 그러나 소규모 유틸리티 또는 사기제 라인 애플리케이션의 경우 허용 가능한 양의 메모리 사용량은 얼마입니까?

나는 최근에 메모리 사용과 성능 사이의 상충 관계를 발견하고 그것에 관한 일반적인 합의가 있는지 궁금해했기 때문에 물었다.

편집하다: 플랫폼은 풍부한 인터넷 애플리케이션을 실행할 수있는 기계를 가진 사용자를위한 Windows XP입니다.

내 특정 트레이드 오프 문제는 메모리에서 많은 이미지를 캐싱하는 것입니다. 가능하면 사용자의 메모리가 허용하는만큼 내 앱 캐시를 갖고 싶습니다. 응용 프로그램이 특정 최대 한계까지 캐시되도록했습니다. 현재 메모리 압력을 고려합니다..

그러나 좋은 숫자는 무엇입니까? 당신은 어떻게 하나를 생각해 냅니까? 그것이 제가 묻는 요점입니다.

도움이 되었습니까?

해결책

이것에 대한 절대적인 대답은 없습니다. 너무 많은 변수에 따라 다릅니다.

다음은 고려를위한 몇 가지 트레이드 오프입니다.

  • 어떤 장치/플랫폼을 개발하고 있습니까?
  • 사용자 가이 소프트웨어를 컴퓨터의 주요 목적으로 사용하기를 기대합니까 (예를 들어 어떤 종류의 서버 소프트웨어를 개발하고있을 수 있음).
  • 당신의 대상 청중, 홈 사용자는 누구입니까? 권한 사용자?
  • 사용자가 가질 램의 양에 대해 현실적인 기대를하고 있습니까?
  • 사용자가 해당 컴퓨터에서 다른 소프트웨어를 많이 사용할 것이라는 점을 고려하고 있습니까?

때로는 케이크를 먹고 먹을 수도 있습니다. 예를 들어 파일을 읽고 다시 쓰는 경우 전체 파일을 메모리에 읽은 다음 작성하지 않고 청크를 읽을 수 있습니다. 이 경우 메모리 사용량이 더 좋고 속도가 감소하지 않습니다.

나는 일반적으로 더 많은 RAM을 사용하여 더 나은 속도를 얻는 것이 좋습니다. 그러나 RAM 요구 사항이 대상 고객에게 현실적인 경우에만 가능합니다. 예를 들어 1GB의 RAM이있는 가정 사용자가 프로그램을 사용할 것으로 예상하는 경우 600MB의 RAM을 직접 사용하지 마십시오.

이 인스턴스에서 더 많은 RAM을 사용하여 더 나은 속도를 얻고 코드의 다른 부분을 최적화하여 RAM을 적게 사용할 수 있습니다.

편집하다:

캐싱 이미지의 특정 상황에 대해. 사용자가 옵션으로 수행하려는 캐싱 양을 설정할 수 있도록하는 것이 가장 좋을 것 같습니다. 그렇게하면 RAM이 많은 사람들이 더 나은 성능을 발휘할 수 있도록 더 높이게 할 수 있으며, RAM이 거의없는 사람들은 그것을 낮게 설정할 수 있습니다.

다른 팁

이는 전적으로 대상 플랫폼에 달려 있으며, 이는 비즈니스 결정입니다. 메모리가 더 많을수록 고객이 소프트웨어를 사용할 수 있습니다. 몇 가지 질문 : 고객 (또는 잠재 고객)이 컴퓨터에 얼마나 많은 메모리를 설치 했습니까? 응용 프로그램과 동시에 실행되는 다른 응용 프로그램은 무엇입니까? 애플리케이션이 독점적으로 (전체 화면 컴퓨터 게임과 같이) 실행중인 것으로 가정하거나 대부분 백그라운드에서 실행되거나 다른 응용 프로그램에서 자주 전환 해야하는 유틸리티입니까?

듣기는 Steam을 통해 게임을하는 사람들의 시스템에서 설치된 RAM의 분포를 보여주는 설문 조사의 한 예입니다 (출처 : 밸브 - 조사 요약 데이터):

  • 96MB 미만 0.01 %
  • 96MB ~ 127MB 0.01 %
  • 128MB ~ 255MB 0.21 %
  • 256MB ~ 511MB 5.33 %
  • 512 MB ~ 999MB 19.81 %
  • 1GB ~ 1.49GB 30.16 %
  • 1.5GB ~ 1.99GB 6.10 %
  • 2.0 GB 38.37 %

내 도메인 (컴퓨터 게임)에서 이와 같은 설문 조사에서 얻을 수있는 결론은 거의 모든 사용자가 512MB 이상, 대다수는 1GB 이상을 가지고있는 것을 합리적으로 기대할 수 있다는 것입니다. 독점적으로 실행 해야하는 컴퓨터 게임의 경우 약 400MB 정도의 세트 작업은 다소 안전하고 거의 아무도 제한하지 않으며 제품에 상당한 부가 가치를 제공한다면 작업 세트를 갖는 것이 의미가있을 수 있습니다. 약 800MB.

이것은 대상 PC 하드웨어에 따라 다릅니다. 응용 프로그램이 너무 많은 메모리를 사용하면 Windows 페이지에서 느리게됩니다. 테스트! 타협에서 두 옵션을 모두 시도하고 일부는 의미가있는 경우 사이에 있습니다. 사용자가 사용할 일반적인 컴퓨터에서 테스트를 실행하고 다른 수의 다른 응용 프로그램을 열어 두십시오. 따라서 Outlook이고 아마도 Internet Explorer의 인스턴스 또는 2 인 경우 (또는 선택한 메일 클라이언트/브라우저). 응용 프로그램의 사용이 다른 사용자 정의 응용 프로그램을 실행할 가능성이있는 조직에서 일하면서 실행중인 응용 프로그램도 테스트합니다. 우리는 응용 프로그램이 너무 많은 메모리를 사용했으며 스위칭 응용 프로그램이 고통스럽게 느리게 만들어서 메모리 사용을 줄이기 위해 응용 프로그램을 약간 느리게했습니다. 관심이 있다면 대상 하드웨어는 원래 공통 표준 사양 워크 스테이션이었던 512MB 기계였습니다. 이 애플리케이션에 따라 여러 PC가 1GB로 업그레이드되어야했습니다. 우리는 이제 RAM 사용량을 약간 다듬었지만 VB .NET로 작성되었으며 사용 된 대부분의 메모리는 프레임 워크 인 것 같습니다. Perfmon 은이 과정이 Aroung 200MB (피크)를 사용하고 있지만 관리 된 힙은 약 2MB에 불과하다고 말합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top