2010-11-29 2 views
2

MVC를 사용하도록 응용 프로그램을 변경했으며 속도가 매우 느립니다.MVC를 사용하여 느린 GWT 응용 프로그램의 속도를 높이려면 어떻게해야합니까?

설명 :

  • (5 개) 복합 재료의 수, 각 복합 다른 데이터를 나타냅니다 항상
  • 응용 프로그램을 표시되지 않습니다이 응용 프로그램은 MVC를 사용하고 내가 각 합성에 모델을 통과하고 때 업데이트가 발생합니다.
  • 알림을 수신 할 때마다 트리 (및 모든 트리 항목)를 다시 작성하지만 트리 항목 중 하나만 변경되었으므로 아마도 낭비 일 수 있습니다.
  • 트리 항목에서 무엇인가가 변경 될 때마다 저장되지 않은 상태로 돌아간 저장된 아이콘이 있기 때문에 텍스트 상자에서 텍스트를 변경하거나 메뉴를 선택하는 것과 같이 사소한 일을 알리는 앱 스타일 덕분에() .
  • 모든 컴포지트는 동일한 옵서버 인터페이스를 구현하므로 모든 모든 notify()에서 업데이트됩니다.

누군가이 앱을 빠르게 실행하기 위해 필요한 팁을 줄 수 있습니까? 위의 어느 것보다 많은 CPU가 다른 것보다 배가 고 있을지도 모릅니다. 즉, 많은 CPU 시간을 사용하게 될 모든 notify()에 대해 < 20 개의 항목을 가진 트리를 다시 작성하는 중입니다. 다시 설계해야합니까? TreeStoreChanged와 같은 별도의 인터페이스를 만들어야 트리를 알릴 수 있으며 시간 낭비 일뿐입니다.

답변

4

응용 프로그램이 느려지는 경우 JavaScript 계산 자체를 수행하는 데 대부분의 시간을 소비하지 않는 경우가 있습니다 (예 : ). 많은 사람들이 문제가됩니다. !). 종종, 느린 것은 중복 레이아웃 (예를 들어, 각각의 관찰자가 레이아웃 호출을 야기 할 때)과 같은 것에 의해 야기된다. 때로는 많은 DOM 조작이 문제가 될 수 있습니다 (주로 Internet Explorer 사용).

나는 Speed ​​Tracer로 약간의 연주를 제안합니다. 특히 redundant layout example입니다. 이것이 응용 프로그램의 특정 문제가 아니라면 예제에 표시된 것과 비슷한 접근 방식을 사용하여 추적 할 수 있어야합니다. markTimeline("String")을 사용하여 Speed ​​Tracer의 그래프에서 코드의 특수 부분을 명확하게 표시하십시오.

0

수행해야 할 첫 번째 단계는 성능 문제가 발생하는 위치를 정확히 분리하는 것입니다. 좋은 후보자를 찾아 냈지만 추운 하드 통계로 그 후보자를 되돌리고 싶을 것입니다. 당신은 찾을 수

당신은 위의 포인트 중 하나를 해결하기 위해 필요, 또는 당신이 더 미립 무언가에 찬성 옵저버 인터페이스를 제거하는 것이 좋습니다 또 다른 난제 완전히

0

이있을 수있다. JTree가 TreeModel과 관련되어있는 Swing의 MVC 아키텍처를 살펴보고 TreeModelListener 인터페이스를 구현하여 모델 변경 사항을 확인합니다. TreeModelListener 인터페이스는, 트리가 변경, 추가 또는 삭제 된 것을 나타내는 모델에 의해 불려가는 특정의 메소드를가집니다. 또한, 영향을받는 노드에 관한 더 많은 데이터를 제공하는 TreeModelEvent도 있습니다. 모델이 정확히 무엇이 변경되었는지 알려주는 경우 리스너 구현에서 지능적으로 반응 할 수있는 범위가 훨씬 넓어집니다.

관련 문제