가벼운 프로그램은 빠르다는 인식에 대해서

klara의 이미지

일반적으로 '가벼운 프로그램은 빠르다'라고 많은 사람들이 생각하고 있습니다.
하지만 조금만 생각해보면 이 인식은 착각이라는 걸 알 수 있습니다.

사실 프로그램에 대해서 가볍다/무겁다라는 건 정의된 용어가 아니기 때문에, 이걸 먼저 정의해야 할 것입니다.
애당초 역으로 '가벼운 프로그램은 빠른 프로그램'이라고 정의해버리면 아무 문제도 없을 것입니다.
다만 일반적으로 사람들이 가볍다라고 할때에는 리소스의 사용량, 특히 CPU와 메모리 점유량을 논하는 경우가 많습니다.
즉, CPU를 적게 사용할 수록, 메모리를 적게 먹을수록 가볍다고 평가합니다.
따라서 여기에서는 'CPU/메모리 점유율이 낮다'를 '가볍다'의 정의로 사용하겠습니다.
이 정의에 입각해서 생각해보면, 무거울수록 프로그램은 더 짧은 시간에 작업을 수행할 수 있다는 걸 알 수 있습니다.

예를 들어 CPU를 풀로드 시킬수 있는 작업을 싱글 코어만 사용하는 프로그램과 4개의 코어를 사용하는 프로그램으로 실행하는 경우를 생각해보면,
당연히 4개의 코어를 사용하는 프로그램(점유율 400%)은 싱글 코어만 사용하는 프로그램(점유율100%)보다 4배 무겁지만 실행 속도도 4배 빨라집니다.

메모리에 대해서도 마찬가지입니다.
파일 입출력을 줄이고 메모리에 읽어놓을 수록 메모리 점유량은 상승하여 무거운 프로그램이 되지만, 파일IO가 생략되는 만큼 속도는 빨라집니다.
그외에도 반복되는 동일한 또는 유사한 계산 결과를 적극적으로 캐싱할수록 메모리를 많이 먹는 무거운 프로그램이 되지만 그만큼 계산을 생략할 수 있으므로 퍼포먼스는 증가합니다.

주어진 리소스를 쓸수 있는 만큼 최대한 활용할 수록 더 빨라지는건 어떻게 보면 당연하다고 할 수 있습니다.
그럼에도 불구하고 어째서 사람들은 '가벼운 프로그램은 빠르다'라는 인식을 하게 되는 걸까요?
단순히 일반적인 인식에서 '가볍다'와 '빠르다'가 모두 긍정적인 인식을 주기 때문에 이걸 그저 이어버린 것일까요?
개인적으로 애각하는 원인은, 프로그램이 가벼울 수록 저사양에서도 실행될 수 있는 경우가 많기 때문에 그런 착각을 준 것이 아닐까 생각합니다.

얼마전에 배포중인 프로그램에 대해서 한 유저분이 '버전업하면서 무거워졌는데 오히려 성능을 좋아졌다'는, 마치 이것이 모순인 것처럼 평가하신 글을 보고 끄적여보게 되었습니다.
여러분은 가벼운 프로그램에 대해서 어떤 인상을 가지고 계신가요?

yukariko의 이미지

저는 동일 성능(주로 시간)에서 CPU나 메모리 점유율이 보다 높은것을 무겁다, 낮은것을 가볍다 라고 생각했었습니다.
지금 생각해보면 동일 성능이란 기준을 빼는것이 일반적이라 생각되네요.

raphael4의 이미지

프로그램 이란건 다 그나름의 쓰임이 있기 때문에 그렇게 만든 것이잖아요?
예를들어 메모장은 간단한 Edit만 사용할 수 있기에 가볍고 MS Word는 좀 더 세밀한 Edit 작업을 할 수 있기에 무거운데
그런데 보통 유저들은 프로그램의 성능과 사양, 쓰임새(사용 범위) 등을 동일 선상에 놓고 비교하지는 않기 때문에
메모장은 가벼운 프로그램이고 MS Word는 무거운 프로그램 이라고 생각하는게 일반적이죠
가벼운 프로그램이 빠르다고 생각하는 것은 이 때문이 아닐까요?

HDNua의 이미지

저는 가볍다/무겁다의 의미를 오히려 속도가 빠르다/느리다의 개념으로 알고 있던 터라.. 다시 한 번 생각해보게 되네요.

저는 이렇게 생각했습니다.