두 곳에서 나는 종종 writeReplace
과 readResolve
을 사용하는데, 때로는 매우 장황해진다. Externalizable
을 사용하는 것이 더 좋을지 궁금합니다 (실제로는 내 개체가 대부분 불변이기 때문에 실제로 그렇게 생각하지 않습니다.하지만 잘못되었을 수 있습니다). Externalizable
을 사용하는 좋은 예를 들려 주시겠습니까?writeReplace + readResolve 대신 Externalizable을 사용하는 경우?
4
A
답변
-2
반사 오버 헤드가 없으므로 Externalizable
이 기본 직렬화보다 훨씬 빠르다고 들었습니다. 최종 필드 작업은 writeReplace
및 readResolve
을 사용하여 I recently realized으로 해결할 수 있습니다.
1
어떻게 비교할 지 모르겠다. writeReplace() 등은 원할 때 대용 객체를 작성합니다. Externalizable은 현재 개체와 그 기본 개체의 전체 serialization을 담당합니다.
writeReplace()를 사용하여 얻은 동기는 무엇입니까?
+0
다른 이유가있었습니다. 최근 누군가 (어떤 이유로 든)'AWTEventDispatcher'를 참조하는 svg 문서를 포함하는 클래스를 직렬화하는 동안'writeReplace'를 사용하도록 조언했습니다. 이전에는 클래스 이미지를 훨씬 더 컴팩트하게 만들기 위해 (아마 조숙 한 최적화)이를 사용했습니다. – maaartinus
관련 문제
- 1. 생성자 대신 getInstanceOf를 사용하는 경우
- 2. 컨트롤 구조 중첩 대신 goto를 사용하는 경우?
- 3. readResolve()로 정적 필드 직렬화
- 4. 서비스에서 핸들러를 사용하는 대신
- 5. localhost 대신 IP 주소를 사용하는 경우 UI 형식이 엉망입니다.
- 6. SQLite와의 관계를 사용하는 대신
- 7. outlook에서 cellpadding을 사용하는 대신
- 8. html로 프레임을 사용하는 대신
- 9. AJAX에서 setTimeout을 사용하는 대신?
- 10. 레일에서 datetime_select를 사용하는 대신
- 11. EntityCollection에서 foor 루프를 사용하는 대신?
- 12. Hibernate를 사용하는 UPDATE 대신 INSERT
- 13. 변환기를 사용하는 대신 TextBlock 트리거
- 14. asio에서 비동기 작업을 사용하는 경우
- 15. 텍스트 대신 이미지를 사용하는 Ajax.ActionLink
- 16. dijit.Calendar를 팝업으로 사용하는 대신 직접 사용하는 방법
- 17. OSGi와 같은 ServiceLoader를 사용하는 경우
- 18. readResolve()와 함께 @Configurable을 사용하여 내 종속성을 주입하는 방법
- 19. C++에서 포인터를 사용하는 경우
- 20. UINavigationController 대신 UINavigationItem을 사용하는 pushViewController
- 21. onclick을 사용하는 대신 이벤트 바인딩하기
- 22. 시뮬레이터 대신 장치를 사용하는 방법
- 23. App_Code 대신 DLL을 사용하는 ASP.NET
- 24. GET의 PHP하지만 #을 사용하는 대신 =
- 25. 주문을 사용하는 대신 쿼리 최적화
- 26. 포인터를 통해 배열을 사용하는 경우 또는 그 반대로 사용하는 경우
- 27. DBL_EPSILON/엡실론을 사용하는 경우
- 28. getparent()를 사용하는 경우
- 29. CSS + 부호를 사용하는 경우
- 30. /RadioButton을 사용하는 경우
Externalizable이 일반적으로 더 빠를 이유가 없습니다. 단지 직렬화를 직접 구현할 수 있습니다. 성능은 구현에 따라 다릅니다. – Sandro
@Sandro 필자는 분명히 "정상적인"구현을 가정하고 있는데, 이는 "직렬화 가능"과 거의 같지만 반사 오버 헤드가 없다. 물론, 원한다면 약간의 오버 헤드를 추가 할 수 있습니다. 일부 압축은 이해할 수 있지만 (AFAIK 일부 블룸 필터 구현에서는 가능하지만) 사과와 사과를 비교합시다. – maaartinus