2014-03-03 2 views
0

이 코드 라인은 실행하는데 약 2 초가 걸립니다!json jackson을 더 빠르게 만드는 방법은 무엇입니까?

ObjectMapper mapper = new ObjectMapper(); 

컴퓨팅 시간이 2 초이기 때문에, 잭슨이 더 빠르게 반응하도록하는 방법이 있습니까?

내가 사용하고 있습니다 :

<dependency> 
     <groupId>org.codehaus.jackson</groupId> 
     <artifactId>jackson-mapper-asl</artifactId> 
     <version>1.9.13</version> 
    </dependency> 
+2

빨리 만들 수는 없습니다. 그러나 잭슨 2로 업그레이드하는 것을 고려하십시오. –

+0

싱글 톤 인스턴스 –

+0

을 사용하면 fasterxml과 codehaus간에 차이가 있습니까? 그들은 둘 다 잭슨을 가지고있다. – MoienGK

답변

0

잭슨의 버전을 사용하는 것은 이전 버전, 잭슨 2.0로 업그레이드. 약간의 노력이 필요할 수 있지만 (사용하는 API에 따라 다름) 새로운 기능 및 성능 향상은 2.x 만 가능할 것입니다. 자세한 정보 및 업그레이드 노트는 Jackson Release: 2.0을보십시오.

ObjectMapper : 처음 처리기를 만들어 개체 매퍼 캐시 시리얼 라이저 및 디시리얼라이저는 지정된 유형에 필요한 (또는 더 정확하게, 매퍼 제공자에 대한 참조를 보유하고 ObjectMapper에 관해서는

,이 Jackson Best Practices: Performance의 말씀입니다 객체). 매퍼를 재사용하지 않으면 매번 새로운 serializer 및 디시리얼라이저를 만들어야하며, 이는 인트로 페스펙트 및 주석 처리 작업량이 많은 비싼 작업입니다.

실행중인 플랫폼은 무엇입니까? 인스턴스를 만드는 3 년 이상 된 랩탑에서 0.5 초도 채 걸리지 않습니다.

성능이 중요하고 JSON이 너무 복잡하지 않으면 JSON 데이터를 직접 구문 분석하기 위해 Jackson의 스트리밍 API (Jackson의 진정한 힘)를 사용해보십시오.

+0

으로 바꿀 수 없습니다. 플랫폼은 노트북 corei7 8GB 램입니다. json은 약간 복잡하고 상속과 추상화가 포함 된 여러 레이어가 있습니다 – MoienGK

+0

@dave 새로운 ObjectMapper()는 강력한 머신에서 2 초가 걸릴 것이라고 생각합니다. 내 머신은 Core 2 Duo이고 약 400ms가 걸립니다. 다시 측정 할 수 있니? –

관련 문제