문자열 컴파일 시간 상수 (내부화 문자열)와 리터럴은 ==와 비교할 수 있습니다. 이는 컴파일 타임에 같은 참조가 할당되었으므로 어떻게 든 동일하면 같습니다.코드의 문자열 상수/리터럴은 컴파일 속도가 상당히 느려 집니까?
즉, n 개의 문자열 리터럴로 구성된 코드를 컴파일하는 데 n log (n) 시간이 필요합니까?
누군가가 이미 답을 알고있을 수도 있고 확실하고 재현 가능하거나 중요한 방식으로 효과를 측정하는 테스트를 작성할 수 있기 때문에이 질문을 던집니다. 또는이 테스트는 현실 세계의 제약 등을 반영 할 것입니다.
제가 테스트 케이스를 발표 할 예정입니다. 제안 할 시간이 있으시면 언제든지 구현해 드리겠습니다. .
나는 약 100kB의 텍스트를 문자열에 넣으려고 시도한 마지막 시간에 너무 잘 끝나지 않았다는 것을 기억합니다. 나는 컴파일 시간 또한 문자열 길이에 의존하지만 그 경향에 대해 확신하지 못한다고 생각한다. –
왜 컴파일 시간이 달라지겠습니까? 비교는 여전히 런타임에 수행됩니다. –
그것은 단지 좋은 추측이지만, "this"와 같은 문자열 리터럴은 공간을 차지하고 디스크 읽기 및 쓰기 시간을 소비하지만 'final String s = "Something";과 같은 문자열 상수는 일부를 소비합니다 너무 많은 유스 케이스가 있으면 컴파일 시간에 영향을 미칠 것이다. –