팁 하나) 라이브러리 선택에서 배보다 배꼽이 큰지 아닌지를 판단해 본다.
----------
10 MB 라이브러리에서 실제 사용하는 코드가 10 KB 라면, 10 KB 부분만 라이브러리로 추려서 다시 링크하는게 좋겠지요. 불필요한 코드 제거와 일맥 상통한다고 볼 수 있습니다.
아울러, 무거운 라이브러리보다는 가벼운 라이브러리를 사용하시는게 좋겠습니다.
무겁다는 것은 현재 실제 사용하는 루틴 대비, "아직은 사용하지 않는데, 혹시나 미래에 사용할지도 몰라서......?" 거대한 라이브러리를 사용하는 것입니다.
또는, 약간의 편리(대부분 개발자의 편의를 위해)를 위해 거대한 라이브러리를 사용하는 것도 마찬가지겠지요. 임베디드 환경에서는 대체로 개발자가 편하고자 하면 코드가 커집니다. 임베디드라면 개발자가 사서고생하는게 필요하다고 생각합니다. SI개발 같은 경우라면, 생산성, 관리 등이 더 중요하니, 관점이 달라지겠지요?
* 어떤 임베디드환경(원칩컴퓨터)에서는 printf()를 풀(full)로 구현한 버전은 이 조차도 너무 커서, 이를 간소하게 약식으로 만들어 사용하기도 합니다. 약식이라함은 예를 들어, %d %c만 되게 하고 그외 %f, %ld, %s 등이 필요 없으면 이 부분에 대해서는 구현조차 하지 않은 것을 만들어 사용한다 던지 등등입니다.
팁 하나) 라이브러리 선택에서 배보다 배꼽이 큰지
팁 하나) 라이브러리 선택에서 배보다 배꼽이 큰지 아닌지를 판단해 본다.
----------
10 MB 라이브러리에서 실제 사용하는 코드가 10 KB 라면, 10 KB 부분만 라이브러리로 추려서 다시 링크하는게 좋겠지요. 불필요한 코드 제거와 일맥 상통한다고 볼 수 있습니다.
아울러, 무거운 라이브러리보다는 가벼운 라이브러리를 사용하시는게 좋겠습니다.
무겁다는 것은 현재 실제 사용하는 루틴 대비, "아직은 사용하지 않는데, 혹시나 미래에 사용할지도 몰라서......?" 거대한 라이브러리를 사용하는 것입니다.
또는, 약간의 편리(대부분 개발자의 편의를 위해)를 위해 거대한 라이브러리를 사용하는 것도 마찬가지겠지요. 임베디드 환경에서는 대체로 개발자가 편하고자 하면 코드가 커집니다. 임베디드라면 개발자가 사서고생하는게 필요하다고 생각합니다. SI개발 같은 경우라면, 생산성, 관리 등이 더 중요하니, 관점이 달라지겠지요?
* 어떤 임베디드환경(원칩컴퓨터)에서는 printf()를 풀(full)로 구현한 버전은 이 조차도 너무 커서, 이를 간소하게 약식으로 만들어 사용하기도 합니다. 약식이라함은 예를 들어, %d %c만 되게 하고 그외 %f, %ld, %s 등이 필요 없으면 이 부분에 대해서는 구현조차 하지 않은 것을 만들어 사용한다 던지 등등입니다.
함수를 Call 하지 않더라도 단순 링크하면
static link 시 단순 링크하면 전체(혹은 사용하지 않는 부분)가 함께 붙게 되나요?
여태껏 사용된 부분만 link되는 것으로 생각하고 있었는데.. (실제로 run-time에 호출되지 않더라도 코드상에 있으면)
strip - Discard symbols from
strip - Discard symbols from object files.
생각보다 대단한 효과를 얻습니다.
소곤소곤
댓글 달기