Startlink / BOJ-Feature-Request

BOJ 기능 추가 요청
https://www.acmicpc.net
10 stars 0 forks source link

OCaml 언어의 컴파일 커맨드와 메모리/시간 제한을 변경해주세요 #186

Closed sangwoo-joh closed 4 years ago

sangwoo-joh commented 4 years ago

안녕하세요. 취미로 OCaml 문제풀이를 하고 있는 사람입니다.

지금 백준의 OCaml 언어 설정은 아래와 같은데요:

이를 아래와 같이 변경해주시면 감사하겠습니다:

컴파일 커맨드

ocaml 패키지를 설치하면 바이트코드 컴파일러인 ocamlc와 네이티브코드 컴파일러인 ocamlopt가 모두 설치됩니다. 실제 프로덕션에서는 대부분 최적화되어 빠른 성능을 내는 ocamlopt를 사용하며, -O2의 최적화 플래그를 적용합니다. C++의 -O2 최적화와 유사한 느낌으로 적용해주시면 좋겠습니다.

메모리/시간 제한

OCaml 언어는 기본적으로 GC 언어라서 많은 특성이 자바와 유사합니다. 그래서 자바와 비교한 벤치마크를 보시면 시간이나 메모리 사용량이 자바와 유사한 것을 확인할 수 있습니다. 그러므로 메모리/시간 제한을 자바와 동일하게 적용해주시면 좋겠습니다.

감사합니다.

Baekjoon commented 4 years ago

이번 업데이트에 포함되었습니다.

sangwoo-joh commented 4 years ago

@Baekjoon 감사합니다..!!!!

sangwoo-joh commented 4 years ago

@Baekjoon 시간 제한이랑 메모리 제한은 아직 미반영인건가요..?

Baekjoon commented 4 years ago

ocamlopt로 변경하니 반영하지 않아도 될 정도로 충분히 빠르다고 테스트했습니다.

제가 Ocaml을 잘 몰라서 그럴 수도 있으니 여러가지 레퍼런스 제출을 보여주시면 보고 다시 결정하겠습니다.

sangwoo-joh commented 4 years ago

@Baekjoon 바쁘신데 이렇게 답변 남겨주셔서 감사합니다! 제가 본문에 건 링크는 같은 문제를 푸는 알고리즘을 각각 Java와 OCaml로 구현했을 때 시간과 메모리 사용량을 비교한 벤치마크인데요, 살펴보시면 대부분의 벤치마크에서 Java와 유사함을 확인하실 수 있습니다. ocamlopt 로 컴파일하면 메모리 사용량에 있어서는 대부분 Java보다 월등하지만, 시간은 거의 대부분 뒤쳐집니다. 혹시 이 벤치마크 내용을 확인해주실 수 있을까요?

sangwoo-joh commented 4 years ago

@Baekjoon 음, 그런데 제가 이전에 OCaml로 풀었을 때 시간 초과 나는 문제들을 다시 제출해보니 잘 통과하네요 (e.g. 2751번). 아주 큰 테스트케이스가 아닌 경우 대부분 잘 동작하는 것 같습니다. 벤치마크의 경우에도 제가 시간만 확인해서 나머지는 놓쳤었는데, 메모리 사용량 같은 경우 자바보다 월등히 좋네요. 시간도 지금 세팅으로 크게 무리 없어 보입니다. 말씀하신대로 ocamlopt로 충분해보입니다. 감사합니다!