반복문이나, 사칙연산 문제에서는 항상 파스칼이 런타임이 제일 빠르던데,

유명하고 많이 쓰이는 언어인 자바나 C, 파이썬보다 런타임이 더 짧고 메모리도 적게 차지하는 이유를 알 수 있을까요?

rlarla97   3년 전

1. 파스칼 언어가 빠른 것이 아니라 Free Pascal 로 컴파일한 파스칼언어가 빠른 것이라고 하는 것이 더 올바를 것 같습니다.
백준에서는 Free Pascal Compiler version 3.2.0 [2020/06/14] for x86_64 을 사용하고 있습니다.

2. 코드를 짧게 한다고 시간이 줄어들진 않습니다. 효율적인 알고리즘이 가장 크게 시간에 영향을 미칩니다.
체점 도움말을 한 번 정독하시면 좋을 것 같습니다 https://www.acmicpc.net/help/j...

3. 단순 반복 계산의 범위가 어디까지인지는 모르겠지만 파스칼이 항상 빠른 건 아닙니다.
다만 매우 간단한 문제의 경우 C와 같이 빠른 퍼포먼스를 보이는 언어들은 대부분 0ms 시간으로 나옵니다.
그러면 다음으로 메모리 사용량에 따라 순위가 정해지는데, 파스칼은 대체로 비싼 기능들이 많이 없습니다. 덕분에 간결한 구조로 인해 고도로 최적화 된 머신코드로 드랍할 수 있습니다.

4. 그렇다고 파스칼 = 빠른언어 이렇게 말할 수는 없습니다. 컴파일러마다 다르고 내부 구현에 따라 다르고, 아키텍쳐마다 다르고, 예열, 최적화 등 벤치마킹해서 고려해야 할 요소가 많습니다. 그렇다고 느린언어는 아니고 충분히 빠른 축에 속하는 언어인 것은 맞습니다. 
그리고 https://benchmarksgame-team.pa... 이 링크 보시면 오히려 복잡한 구조일 수록 자체적으로 언어에서 지원하는 최적화된 라이브러리 또는 컴파일 방법에 따라 C++가 더 빠를 때도 있습니다.


결론  : 가벼운 언어라고 항상 빠른것도 아니고, 반대로 빠르다고 항상 가벼운 것이 아니기에 어디까지나 상대적으로 비교해야합니다. 그러나 비교하기엔 고려해야할 요소가 많고 이 보다는 사용자의 최적화 된 알고리즘을 구현하는 것이 훨씬 효율적입니다. 즉, 질문 자체가 너무 극소량의 케이스고, 무엇보다 빠르다는 것 자체가 상대적인 것이라 질문이 무의미 합니다.

pentagon03   3년 전

파스칼의 기본 메모리 사용량이 적기 때문입니다. 백준에서는 시간, 메모리, 코드 길이 순으로 순위 정렬을 하기 때문에 모두 0ms가 소요된다면 메모리 사용량이 적은 코드가 더 높은 순위를 가져가게 됩니다.

ccc12345   6달 전

아무리 메모리 사용량을 줄여도 1112kb로 표시되는데  이유가 뭔가요(1010다리놓기 문제)

댓글을 작성하려면 로그인해야 합니다.