1. 람다나 std function, 함수포인터 등 함수 콜 경로가 런타임에 정해지는 경우
2. throw하는 클래스가 polymorphic한 경우
이거 두가지 제외한 케이스에서는 throw가 됐을때 자기에 상응하는 catch가 어딨는지는 컴파일타임에 미리 알아낼 수 있는거아님?
그럼 걍 바로 대충 스택 정리하고 jmp만 하면되는거니까 엄청나게 빠를텐데.. catch가 어딨는지 런타임에 찾아내는게 아니라...
저런 케이스에 해당안되는 것들은 따로 최적화해줄수 없나.. 아니면 이미 해주고 있나?
만약 polymorphic하다고 해도 1만 아니면 어느정도 최적화할수 있지 않을까...
이론상이면 못할꺼없는데 부가비용도 있고 손실이 더클듯 아예 익셉션을 지양하는게 나을것같음. 컴파일타임때 알아낸다해도 런타임때 못함. 간단하게 예를 들면 재귀함수를 보면됨. 몇번 재귀돌지모르는 함수가 중간쯤에서 exception 터트리면 어캐 빠져나올껀데? 콜스택에 함수가 몇번호출되었는지 몇 번째인지 안적혀있자너
흠 맞네
아 재귀는 accesslink있는 스택모델이면 해결가능한데 암튼 ㅈㄴ 어려움
컴파일 타임에 호출경로에따라 스택감는게 달라지면 대체 파일 크기가 얼마나 커야하노
각자 함수들이 스택감는건 어차피 똑같은 로직이라서 그걸 복사할 필요는 없고 걍 플래그랑 이동할주소만 콜러들이 잘 넣어주면 될거같은데?
위에서 말한 accesslink가 먼진 모르겠는데 아마 뭐 그런거일듯
이동할 주소만 하는게 지금 하는거잖아