DWR 메모리 호환 및 문제 해결 방안 호출 불가

2437 단어 DWR메모리호환
지난번에 만났어요DWR 메모리 누출 문제 이후에 인터넷의 내용에 따라 JS 파일을 수정했는데 수정한 후에 호환 문제가 있고 호출할 수 없는 상황도 발견되었다.
그리고 통계에 따르면 DWR은 메모리가 유출되더라도 특별히 심각하지 않다. 브라우저가 며칠 동안 닫히지 않고 실시간으로 갱신되지 않으면!
재조회를 통해 IE 브라우저에 쓰레기 수거 함수가 있다는 것을 알게 되었습니다. CollectGarbage().
CollectGarbage는 IE의 고유한 속성으로 메모리를 방출하는 데 사용되는 방법이므로 이 변수나 인용 대상을 null 또는 delete로 설정해야 한다
그리고 방출 동작을 하기 전에 CollectGarbage를 하기 전에 반드시 알아야 할 두 가지 필수 조건:
인용하다
- 객체가 존재하는 컨텍스트 환경 외부에서 비활성화됩니다.
- 전체 객체가 집용(참조)되지 않은 상태에서 비활성화됩니다.
객체가 언제 효력을 상실하는지에 대한 설명은 다음과 같습니다.

function testObject() {
var _obj1 = new Object();
}

function testObject2() {
var _obj2 = new Object();
return _obj2;
}

//  1
testObject();

//  2
testObject2()

//  3
var obj3 = testObject2();
obj3 = null;

//  4
var obj4 = testObject2();
var arr = [obj4];
obj3 = null;
arr = [];
이 네 가지 예제에서는
- 예제 1은 함수 testObject()에서 _obj1, 그러나 함수가 종료될 때 함수의 상하문 환경을 벗어났기 때문에_obj1이 효력을 잃었습니다.
- 예제 2에서 testObject2()에도 객체가 구성됨_obj2와 함께 전해지기 때문에 대상은'함수 밖'의 상하문 환경(과 생존 주기)이 있지만 함수 때문에
의 반환 값이 다른 변수에 의해 "보유"되지 않았기 때문에_obj2도 즉시 효력을 잃었다.
- 예제 3에서 testObject2() 구조의_obj2는 외부 변수 obj3에 의해 사용되었습니다. 이때 "obj3=null"코드가 적용될 때까지_obj2는 인용 관계가 사라져서 효력을 상실합니다.
- 예 3과 같은 이유, 예 4의 _obj2는 "arr=[]"코드를 사용한 후에 효력을 상실합니다.
그리고 나는 많은 사람들이 이런 말을 하는 것을 발견했다.
마지막으로 GC에 대한 보충 설명: IE 창이 최소화될 때 IE는 CollectGarbage () 함수를 주동적으로 호출합니다.따라서 IE 창을 최소화하면 메모리 사용량이 크게 향상됩니다.
나는 단지 CollectGarbage () 함수를 호출하면 의외의 수확이 있을 것이라고 말할 수 있을 뿐이다. 그러나 그는 만능이 아니다. 호출해서 메모리를 방출할 수 있는 것도 아니다. 호출한 후에 브라우저를 한 번 최소화하는 효과와 같다.
우리는 매초에 다섯 번씩 리셋을 하는데, 매번 리셋 포인트가 100여 군데가 있는데, 이렇게 하면 브라우저의 DOM은 시종 물건을 늘리고 업데이트한다.계산해 보면 한 시간을 뛰는 것도 큰 소모가 있다.
더군다나 우리의 소프트웨어는 맞춤형 기계에 달려가서 이 기계의 하드웨어에 호환 문제가 있다는 것을 발견해야 한다. 우리는 브라우저를 IE7.0까지 업데이트하고 데이터를 실시간으로 리셋한 후에 메모리가 브라우저가 붕괴될 때까지 계속 증가하는 것을 발견했다.하지만 기계가 붕괴될 때와는 다르다.
나는 매번 업데이트된 후에 쓰레기 회수 함수를 호출했는데 브라우저의 메모리가 여전히 증가하고 있지만 간격이 증가하고 있다. 비록 전체적으로 증가하고 있지만.이로부터 우리는 그 기계에서 십여 시간을 뛰었지만 브라우저 메모리는 50M을 넘지 않았다.
그 페이지가 이렇게 대량으로 리셋되고 이렇게 오랫동안 달리는 경우는 드물지만, 우리는 만났다.
문제를 DWR 탓으로 돌리면 저는 합리적이지 않다는 것을 발견했습니다. 적어도 지금은 그렇게 생각합니다. 그러나 페이지가 대량으로 리셋되고 장시간 운행해야 한다는 수요에 대해 깊이 연구해야 한다고 생각합니다.
이상은 본문의 전체 내용입니다. 여러분의 학습에 도움이 되고 저희를 많이 응원해 주십시오.

좋은 웹페이지 즐겨찾기