carry = w[i] * ((time + ti) / (ti * 2));
carry = Math.min(carry, gi + si);
이 코드를
carry = Math.min(w[i] * ((time + ti) / (ti * 2)), gi + si);
이렇게 바꿀 경우 상당한 오버헤드가 발생함.
일반적인 퀵소트인데 여기서
partition 메소드에 있는 내용을 quicksort에서 분리하지 않을 경우에도 마찬가지로 엄청 느려짐.
정확한 원인이 뭘까?
바이트코드 까봐여겟네 ,
신기하네
왜 그럴까
띠용
얼마나 저하됨?
기억안 남
?
레퍼런스를 못 찾겠는데, vm이 런타임에서 임시 변수는 문맥 넘어가면 바로 제거하고, local 변수는 비슷한 문맥이 있을 경우 캐싱한다고 봤음. 정확하지 않을 수도 있음