자바 는 성능 병목 점 을 초래 하기 쉽다.

1671 단어 자바
1.string 의 split 를 사용 하지 마 십시오.
string 의 split 를 사용 하지 마 십시오.내부 의 2B 실현 을 볼 수 있 습 니 다.

public String[] split(String regex, int limit) {
	return Pattern.compile(regex).split(this, limit);
}

매번 정규 표현 식 의 재 컴 파일 을 만 들 수 있 습 니 다.이것 은 성능/메모 리 를 소모 하 는 과정 입 니 다.자바 의 정규 인 터 페 이 스 를 사용 합 니 다.토론 게시 물:http://www.iteye.com/topic/626801?page=2
2.spring 의 BeanWrapperImpl 을 사용 하여 bean 조립 을 할 때 유형 전환 을 미리 해 주세요.
spring Bean Wrapper Impl 이 실현 하 는 유형 전환 에 성능 문제 가 있 습 니 다.방금 테스트 해 봤 습 니 다.
spring BeanWrapperImpl 을 사용 하여 형식 변환 에 소요 되 는 시간:
4.687(ms)
3.508(ms)
3.261(ms)
3.177(ms)
7.526(ms)
3.393(ms)
먼저 유형 변환 을 하고 setProperty Value()를 호출 하 는 데 걸 리 는 시간:
0.603(ms)
0.699(ms)
0.559(ms)
0.591(ms)
0.579(ms)
0.532(ms)
아기 웹 x 3 에서 AbstractValueParser.set Properties()의 실현 을 볼 수 있 습 니 다.

BeanWrapper bean = new BeanWrapperImpl(object);
requestContext.getPropertyEditorRegistrar().registerCustomEditors(bean);

for (String key : keySet()) {
String propertyName = StringUtil.toCamelCase(key);

if (bean.isWritableProperty(propertyName)) {
PropertyDescriptor pd = bean.getPropertyDescriptor(propertyName);
MethodParameter mp = BeanUtils.getWriteMethodParameter(pd);
Object value = getObjectOfType(key, pd.getPropertyType(), mp, null);

bean.setPropertyValue(propertyName, value);
} else {
getLogger().debug("No writable property \"{}\" found in type {}", propertyName,
object.getClass().getName());
}
}

좋은 웹페이지 즐겨찾기