1.
요즘 컴파일러는 참 똑똑하긴 하다.
release 빌드로 만든 exe/dll을 우연히 디버거로 들여다봤는데, 예상보다 함수 인라이닝을 상당히 더 적극적으로 해 놓은 걸 확인할 수 있었다.
심지어는 static 라이브러리 안에 들어있고(즉, 템플릿처럼 컴파일 때 매번 함수 몸체가 include되는 것도 아니고, 링크할 때가 돼야 정체가 알려지는...;;)
statement가 4~5개 정도 있던 함수도 함수 몸체 전체가 인라이닝되어 호출되는 곳에 일일이 포함되어 있었다. 인라이닝될 거라고는 전혀 예상하지 않았던 함수인데 말이다. 또한 FM대로 하는 전통적인 C/C++의 컴파일-링크 구조로 볼 때에도 이는 있을 수 없는 일이다.
이러니까 exe/dll 사이즈가 꽤 커졌겠구나 싶었다.
사실, 요즘 컴파일러들은 단순히 '빠르게 최적화'를 넘어서 번역 단위(translation unit), 쉽게 말해 오브젝트 파일의 경계를 넘나드는 전역 최적화라든가 심지어 프로파일 기반 최적화 기법도 제공하고 있다.
그런 것까지 동원해서 변태적인 튜닝을 하고 나면 코드의 크기가 대체로 더 커진다. 그렇게 커지는 건 대체로 인라이닝 때문이다.
그나저나, 개발 중인 ngs3.dll (날개셋 한글 입력기 커널)의 600KB 돌파 경축~~ ㅋㅋ
2.
그러고 보니, 웹에서 그림을 실제 크기와는 다르게 확대/축소해서 표시할 때 안티앨리어싱을 하기 시작한 게 IE8부터이구나!
8이 7에 비해서 바뀐 게 뭐가 있는지 도통 궁금했는데 아주 중요한 게 하나 개선됐다.
왜 진작에 이렇게 조치를 안 취했는지 모르겠다. 훨씬 더 보기 좋다.
예전에는 IE에서 축소된 그림은 보기가 굉장히 흉측했었다. 8 쓰다가 다시 7을 써 보니까 바로 티가 난다. 집 컴도 인터넷 뱅킹만 이상 없이 되면 8로 업글을 할 텐데.. 아직 7 쓰고 있다.
한편, 모 웹사이트는 표 안에 <tr><p></tr>라는, 문법에 어긋나는 HTML 코드가 들어있었다.
지금까지 IE는 이런 웹사이트도 그냥 알아서 봐 주고 제대로 표시해 줬다.
그러나 여타 브라우저라든가 IE8에서는 이 표의 레이아웃이 깨진다. '호환성 보기' 옵션을 켜야만 옛날처럼 보인다.
IE가 ActiveX 말고도 지금까지 무엇 때문에 욕 얻어먹었는지를 짐작케 하는 대목 같다.
특히 구닥다리 IE6은 오늘날 최소한 개인용 컴퓨터 환경에서는 거의 다 사라지지 않았나 싶다.
이제 아직까지 IE6이 쓰이는 곳은, 개인의 권한으로 웹브라우저를 바꿀 수 없는 피씨방, 공공장소의 컴퓨터밖에 없지 싶다. 그런 곳에는 아직도 IE6이 널렸으며, 이제 IE6 퇴출 캠페인은 개인 사용자가 아니라 그런 공공장소를 대상으로 적극적으로 해야 할 것 같다. ^^;;
3.
연세대는 정문에 들어서면 쭉 큰길이 나 있고 중앙 지점에서 Y자로 길이 두 갈래로 갈라진다. 그런데 남쪽의 정문, 남서쪽의 쪽문, 그리고 북동쪽의 동문, 북쪽에 있는 기숙사 구도는 카이스트의 지리 구조와 무척 비슷해서 동질감이 느껴졌다.
월요일이 아니라 언제나 3월 1일이나 9월 1일 이후에 개강하는 것도 카이스트와 동일하다.
재미있는 차이점을 말하자면, 교시라는 개념이 있고 수업 시간이 무조건 n시간 단위로 떨어진다는 것. 카이스트는 딱히 교시가 없고 3학점짜리 학부 수업이라면 90분씩 두 번도 한다. 그러나 연대는 1시간과 2시간 이런 식이다. 그런 체계는 학부 시절에 보지 못했다.
또한 연대에서는 여러 식당에서 밥을 먹어 봤지만, 메뉴 자체가 여러 종류가 있어서 그것만 고를 수 있지 카이스트의 학부 식당처럼 반찬을 내가 일일이 골라서 선택한 반찬별로 돈을 내는 식당은 못 봤다.
Posted by 사무엘