Closed sangwoo-joh closed 4 years ago
이번 업데이트에 포함되었습니다.
@Baekjoon 감사합니다..!!!!
@Baekjoon 시간 제한이랑 메모리 제한은 아직 미반영인건가요..?
ocamlopt
로 변경하니 반영하지 않아도 될 정도로 충분히 빠르다고 테스트했습니다.
제가 Ocaml을 잘 몰라서 그럴 수도 있으니 여러가지 레퍼런스 제출을 보여주시면 보고 다시 결정하겠습니다.
@Baekjoon 바쁘신데 이렇게 답변 남겨주셔서 감사합니다!
제가 본문에 건 링크는 같은 문제를 푸는 알고리즘을 각각 Java와 OCaml로 구현했을 때 시간과 메모리 사용량을 비교한 벤치마크인데요, 살펴보시면 대부분의 벤치마크에서 Java와 유사함을 확인하실 수 있습니다.
ocamlopt
로 컴파일하면 메모리 사용량에 있어서는 대부분 Java보다 월등하지만, 시간은 거의 대부분 뒤쳐집니다.
혹시 이 벤치마크 내용을 확인해주실 수 있을까요?
@Baekjoon
음, 그런데 제가 이전에 OCaml로 풀었을 때 시간 초과 나는 문제들을 다시 제출해보니 잘 통과하네요 (e.g. 2751번). 아주 큰 테스트케이스가 아닌 경우 대부분 잘 동작하는 것 같습니다.
벤치마크의 경우에도 제가 시간만 확인해서 나머지는 놓쳤었는데, 메모리 사용량 같은 경우 자바보다 월등히 좋네요. 시간도 지금 세팅으로 크게 무리 없어 보입니다.
말씀하신대로 ocamlopt
로 충분해보입니다. 감사합니다!
안녕하세요. 취미로 OCaml 문제풀이를 하고 있는 사람입니다.
지금 백준의 OCaml 언어 설정은 아래와 같은데요:
ocamlc -o Main Main.ml
./Main
이를 아래와 같이 변경해주시면 감사하겠습니다:
ocamlopt -o Main Main.ml -O2
컴파일 커맨드
ocaml
패키지를 설치하면 바이트코드 컴파일러인ocamlc
와 네이티브코드 컴파일러인ocamlopt
가 모두 설치됩니다. 실제 프로덕션에서는 대부분 최적화되어 빠른 성능을 내는ocamlopt
를 사용하며,-O2
의 최적화 플래그를 적용합니다. C++의-O2
최적화와 유사한 느낌으로 적용해주시면 좋겠습니다.메모리/시간 제한
OCaml 언어는 기본적으로 GC 언어라서 많은 특성이 자바와 유사합니다. 그래서 자바와 비교한 벤치마크를 보시면 시간이나 메모리 사용량이 자바와 유사한 것을 확인할 수 있습니다. 그러므로 메모리/시간 제한을 자바와 동일하게 적용해주시면 좋겠습니다.
감사합니다.