2012-01-24 6 views
1

MongoDB에서 20M 이상의 데이터를 가지고 있으며 java 드라이버를 사용하여 JFreeChart를 사용하여 데이터 및 플롯 차트를 얻으려고합니다.Java 프로젝트 성능을 향상시키는 방법은 무엇입니까?

나는 MongoDb에서 데이터를 읽고, 데이터 세트와 도표를 작성하는 간단한 메인 클래스를 가지고있다. PC (3GB Ram, i5 프로세서)에서 프로그램을 실행하면 매우 천천히 수행된다. 10 시간 만에 200K 데이터 만 수행한다. IBM 서버에서 24GB RAM의 코드를 실행하려고했지만 성능은 동일합니다.

자바 -cp 내-program.jar : external1.jar : external2 : 항아리 그래프

가 빠른 서버에 있어야하지

이 내가 실행 명령은? 성능을 어떻게 향상시킬 수 있습니까?

+4

Java에 메모리를 할당 해 보았습니까? '-Xmx'와'-Xms' 옵션이 있습니다. – Borealid

+1

환상적인 수학이 있습니까? 나는 200k 데이터 포인트를 몇 초 만에 차트로 작성하고 있습니다 ... – Frankie

+0

성능이 떨어지는 부분을 해결 했습니까? 데이터를 쿼리하고 데이터 검색 성능을 격리하기 위해 버리면 여전히 오랜 시간이 걸립니까? –

답변

1

문제를 해결했습니다. Java와 관련이 없으며 문제는 Jfreechart로 인해 발생합니다.

MongoDB에서 데이터를 정렬하고 XYSeries에 데이터를 추가하여 데이터 집합을 만듭니다. XYSeries에는 생성자에 autoSort 필드가 있으며 기본적으로 true입니다. 즉, 새 항목을 데이터 집합에 추가하면 계열의 항목이 정렬되는지 여부가 검사됩니다. false로 설정하면 성능이 향상됩니다.

XYSeries series = new XYSeries("followersCount",false); 

둘째, I는 add method false로 알리게 걸렸고. false로 설정되어 있지 않은 경우, 등록 된 모든 리스너에 통지를 보내 성능을 저하시킵니다.

series.add(1,2000,false); 
0

배포 단계에있는 것처럼 보입니다. 따라서 서버에서 실행되는 웹 응용 프로그램이있는 경우 응용 프로그램을 실행하면 안됩니다. (.jar) Web Applcation Archive (.war)는 컨테이너 (Tomcat, Glassfish, Weblogic 등)에 생성하여 설치해야합니다. 이러한 작업을 수행 한 후에도 성능 문제가 계속 발생하면 코드/논리에 대한 문제점을 지적하게됩니다.

관련 문제