안녕하세요. 유튜버 코드깎는노인입니다.
ChatGPT에는 코드인터프리터라는 멋진 기능이 있습니다.
기존의 GPT-4 default 에서는 코딩만 해줄 수 있었다면, 코드인터프리터에서는 AI에 의해 작성된 코드를 대화세션마다 할당된 컴퓨터에서 실제 실행까지 할수 있는 환경이 갖춰지게됐죠.
코드인터프리터에서는 기본적으로 AI는 파이썬 코드를 작성하고 실행해줍니다.
그런데 때로는 큰 연산작업이 필요할 수도 있는데요, 연산량이 커질수록 파이썬코드의 수행속도는 늦어지게되지요.
코드인터프리터는 확인해본 바로 코드의 수행시간이 너무 길어져 60초를 넘어가게되면 timeout되어 종료되버립니다.
따라서 이럴때 처리속도를 압도적으로 향상시켜서 빠르게 처리할 수 있는 방법을 이야기드리고자합니다.
기본적인 아이디어는 파이썬은 느리니 씨언어를 사용하자입니다.
코드인터프리터에 할당되는 컴퓨터에는 gcc가 내장되어있습니다.
다음과 같이 확인해볼 수 있지요.

gcc는 C언어로 작성된 소스코드를 실행가능한 형태의 실행파일로 만들어주는 역할을 하는 프로그램입니다.
그래서 C언어와 파이썬으로 각각 1백만번의 연산을 했을때 각각에서 얼마나걸리는지를 비교해보는 미션을 수행해달라고 요청해보도록 하겠습니다. 이 과정에서 코드인터프리터는 씨언어로 코드를 작성하고 gcc로 컴파일하여 실행하게됩니다.


이렇게해서 subprocess를 통해 gcc를 실행하여 컴파일하고 컴파일된 실행파일을 마찬가지로 subprocess를 통해서 실행하는 방법으로 씨언어로 작성된 코드를 실행할 수 있습니다.
1백만번의 반복은 씨언어로 할때에는 0초에 수렴하는 수행시간이 측정되었습니다.
다음은 파이썬으로의 구현입니다.

씨언어로 수행했을때의 시간이 0초라서 비교가 어려우니 1백만번이 아닌 1억번으로 반복량을 늘려서 다시 테스트해보겠습니다

이번엔 씨언어로 1억번 반복에 0.21초가 걸렸습니다.

파이썬의 경우는 11.8초가 걸렸습니다.
이는 56배의 차이입니다.
그런데 참고할 것은 이 결과를 통해 씨언어는 파이썬보다 56배빠르다고 생각할 수는 없습니다.
무엇을 하느냐에 따라서 이 차이는 좁혀질수도 있고 늘어날 수도 있기 때문입니다.
만약 하고자하는 작업의 연산량이 많아서 파이썬으로는 너무 느릴 경우 이와 같은 방법으로 처리를 씨언어로 하도록 해서
더욱 빠르게 효과적으로 해낼 수 있을것으로 기대됩니다.
감사합니다.
항상 수십배 빠른건 아니지만, 라이브러리 구현이 아닌 파이썬으로 직접 짠 알고리즘이 들어가면 많이 느려지긴 하더군요.
그런 파이썬도 visual basic보다 또 수~수십배 빨랐던 것 같습니다 ㅋㅋ
단순 연산 속도만 봤을때 파이썬을 선택하는건 아쉬운 선택이지만 방대한 라이브러리와 편한게 최고네요 ~_~
보통은 cython이 쓰기 쉬워서 많이들 쓰시던데 코드인터프린터에서 지원하는지는 모르겠어요.
vscode 용으로는 copilot 대신하는 무료의 hugginface의 starcoder를 사용중입니다.
참고:=> https://www.clien.net/service/board/cm_app/18036278CLIEN
다른 언어들은 이상한 버그가 있거나 컴파일도 안되는 코드를 자꾸 줘서
그냥 검색하는것보다 괜히 시간낭비하는 느낌이었죠..
파이선이 원래 그렇기도 하지만 너무 외부 라이브러리 의존도가 높아서
AI가 코드를 만들었다기 보다는 세상에 있는거 이거저거 검색해서 짜집기해서 주는 느낌이 너무 커서
좀 갈 길이 멀구나 하는 느낌입니다.