2
최근에 유닉스에서 실행되는 글래스 피쉬 설치에 응용 프로그램을 배포했으며 코드 섹션에 심각한 성능 문제가 있습니다. 내 응용 프로그램은 XML을 통해 다른 시스템과 통신해야하며 Jaxb를 사용하여 교환 된 메시지의 마샬링/언 마샬링을 수행합니다. 각 통신에는 마샬링 및 언 마샬 조작이 필요합니다. 컴퓨터에서 응용 프로그램을 실행할 때 (Windows XP) 두 작업의 총 작업량은 2 초 미만이지만 동일한 응용 프로그램을 동일한 데이터로 실행하면 Unix에서 총 작업량이 20 초 가까이됩니다. 거의 10 배 더. 서버 로그를 철저히 조사했지만 단서를 찾지 못했지만 아무 것도 찾을 수 없었습니다.글래스 피쉬/유닉스의 마샬링/언 마샬링 성능 문제
이public static <T> String marshal(T transaction) throws JAXBException, IOException {
JAXBContext jc = JAXBContext.newInstance(transaction.getClass().getPackage().getName());
Marshaller u = jc.createMarshaller();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
u.setProperty("jaxb.encoding", "ISO-8859-1");
u.marshal(transaction, baos);
String xml = new String(baos.toByteArray());
baos.close();
return xml;
}
public static <T> T unmarshal(Class<T> docClass, String xml) throws JAXBException, IOException {
String packageName = docClass.getPackage().getName();
InputStream is = new ByteArrayInputStream(xml.getBytes());
JAXBContext jc = JAXBContext.newInstance(packageName);
Unmarshaller u = jc.createUnmarshaller();
Object o = u.unmarshal(is);
is.close();
return (T) o;
}
누군가가이 문제를 좀 도와 줄래 : 여기
은 모두 통화 코드?종류와 관련,
카를로스 페레이라
안녕 Blaise, 답장을 보내 주셔서 감사합니다. 나는 코드를 개선 할 수 있다고 생각하지만, 그렇게하려고 노력하고있다.하지만 여전히 유닉스와 윈도우의 두 시스템에서 동작의 차이를 설명하지는 않는다. –
운영 체제가 유일한 차이점이 있습니까? 프로세서, 램, JDK 버전, 시스템로드 등은 어떻습니까? –
모든 것이 다르기 때문에 Unix 시스템의 구성을 알지 못합니다 (16GB 램이있는 HP 시스템이라는 것을 알고 있습니다). –