함수를 종료하기 전에 리소스 정리를 수행해야하는 코드의 경우이 두 가지 방법간에 성능 차이가 크게 있습니다.
모든 반품 진술 전에 자원 청소
void func() { login(); bool ret = dosomething(); if(ret == false) { logout(); return; } ret = dosomethingelse(); if(ret == false) { logout(); return; } dootherstuff(); logout(); }
finally 블록에서 리소스 정리
void func() { login(); try { bool ret = dosomething(); if(ret == false) return; ret = dosomethingelse(); if(ret == false) return; dootherstuff(); } finally { logout(); } }
샘플 프로그램에서 몇 가지 기본 테스트를 수행했지만 큰 차이는 없습니다. 나는 finally
이것을 하는 방법을 훨씬 선호 하지만 큰 프로젝트에서 성능이 저하되는지 궁금합니다.
if(!cond)
, 이것이 나를 자바로 만든 것입니다. C ++에서는 부울 코드와 다른 유형의 코드를 작성하는 방법 int x;
if(!x)
입니다. java는 이것을 위해서만 이것을 사용할 수 있기 때문에 java booleans
에서 if(cond)
& if(!cond)
를 사용하는 것을 완전히 중단 했습니다.
(someIntValue != 0)
부울을 평가하는 것보다 비교하는 것보다 훨씬 볼 것입니다. 그것은 나에게 냄새가 나고, 나는 야생에서 그것을 볼 때 즉시 그것을 리팩터링합니다.