그래서 dao는 스프링적용않고 싱글턴패턴을 모든 dao 에 다 집어넣에 코딩하자고 하네요
예를들면
class ADao{
static instance=new ADao();
public static ADao getInstance(){
return instance;
}
}
이런걸 모든 dao 윘부분에 ..
더 멋진 방법 없나요?
지하철이라 말이짧아 죄송합니다..^^
많아도 120메가 넘기 힘들텐데요...
많아서..
라는 말은 좀 무책임한데요..
많아서.. 느려서... ㅎㅎ
나의 iPhone에서 보냄
2012. 7. 17. 20:38 "자유" <kiki...@gmail.com> 작성:
> --
> Google 그룹스 'Korea Spring User Group' 그룹에 가입했으므로 본 메일이 전송되었습니다.
> 웹에서 이 토론을 보려면 https://groups.google.com/d/msg/ksug/-/iai-TmTJhvgJ을(를)를 방문하세요.
> 이 그룹에 게시하려면 ks...@googlegroups.com(으)로 이메일을 보내세요.
> 그룹에서 탈퇴하려면 ksug+uns...@googlegroups.com로 이메일을 보내주세요.
> 더 많은 옵션을 보려면 http://groups.google.com/group/ksug?hl=ko에서 그룹을 방문하세요.
>
즉 was가 기동하면서 어노테이션 붙은 빈들을 모두 초기화 하기 때문에 느리다는 것입니다.
메모리는.순수 자바 보다 아무래도 스프링이 빈에 대 메타정보? 같은걸 더 많이 관리 할것같으니 스프링. 아무래도 단순 메모리 사용량만 본다면.그 차이가 얼마일지는 모르겠지만 스프링이 더 많이 쓰는겠지마뉴더많은 메모리를. 쓰는게 아닐까요
2012년 7월 17일 화요일 오후 9시 28분 42초 UTC+9, 심상호 님의 말:
> 거의 대부분의 Spring Bean은 Logic을 담고 있는 Instance로, 대부분의 경우 Application Context 내에 하나만 존재합니다.
>
> </div>
> Instance가 많아서 느려진다는 얘기는</div>
> 1. 실제로 필요한 Bean이 많다.</div>
> 2. Application Context를 생성할 때 뭔가 잘못해서 쓸데없이 동일한 Bean을 여러개 생성하고 있다.</div>
>
> 등의 이유가 있을 것 같은데요.</div>
>
> </div>
> 3. Instance 수와 성능은 별 관계가 없다.</div>
> 의 이유도 있을 수 있겠네요.</div>
>
> </div>
> 그리고 만약 1과 같은 이유라면 Singleton pattern을 적용해도 별 차이가 없을겁니다.</div>
> 어차피 객체 자체는 Heap에 잡힙니다. 하드웨어 성능을 높이거나 설계에 문제가 없는지 살펴보는게 좋을 듯 합니다.</div>
>
>
> </div>
공통팀에서 말하길 프로젝트에 빈 개수가 너무 많아서 와스 기동이 너무 느리고 메모리도 모자란다고 합니다
--
Google 그룹스 'Korea Spring User Group' 그룹에 가입했으므로 본 메일이 전송되었습니다.
웹에서 이 토론을 보려면 https://groups.google.com/d/msg/ksug/-/M9a1hT7ay28J을(를) 방문하세요.
답변들 감사드립니다
이런생각들하다보면 스프링기반 프로젝트의 최대 크기라는것은 스프링 자체의 제한이라기보다 os위에서의 jvm과 와스의 한도가 문제일거라는 생각도 들면서..
그렇다면 웹로직기준으로 도메인 혹은 매니지드 서버를 분리하지않고 운영할수있는 프로젝트의 크기 같은 권고치가 있을까요? (메모리야 64비트os 64비트 jvm이라 거의 제약없이 쓸수있다라고 가정했을때요)
위에서 말씀하신대로 펌만 충분히 잡아주면 될까요? 너무큰 펌이나 힙이 일으키는 다른 부작용이나 불편함은 없을까요?
java.lang.OutOfMemoryError: PermGen space
PermGen 크기를 늘리고 몇가지 VM 고유의 옵션을 지정해 문제를 해결할
수 있습니다. 스프링은 AOP 같은 자바의 동적인 특징을 많이 활용하기 때문에 Permanent
Generation 영역을 많이 사용합니다. 그러니 일단 크기를 키우시고 오라클 JVM의 경우
-XX:+CMSClassUnloadingEnabled와 -XX:+CMSPermGenSweepingEnabled 옵션을 지정해서 PermGen을
대상으로 GC와 안 쓰는 클래스 정보를 지우는 작업을 수행하도록 해야 합니다. -XX:+CMSClassUnloadingEnabled
만 지정하셔도 됩니다.
기동 속도 문제
그리고 초기에 기동 시간이 느린 문제는 초기화 지연(Lazy initialization) 기능을 쓰시면 됩니다.
스프링을 기본적으로 기동시에 모든 빈을 생성합니다. 다만 초기화 지연을 사용하면 초기화시 발생할지 모르는 오류를
운영 중에 발견하게 됩니다. 그러니 적절히 범위를 정해서 사용하시는 것이 좋습니다.
우와 새로운 정보 감사드립니다
--
Google 그룹스 'Korea Spring User Group' 그룹에 가입했으므로 본 메일이 전송되었습니다.