github.com/gonum/stat

github.com/gonum/floats


등등 gonum 밑에 여러개 있고 이것도 파이썬 numpy처럼 C(C++인가?)로 만들어진 거 바인딩해놓은 놈 같음


성능 테스트해보려고 1억개짜리 배열 [0.0, 1.0) 랜덤 float64로 채운 다음 표준편차 구해보고

같은 방식으로 numpy에서도 해보고 속도 비교해봄


표준편차 구하는 과정 자체는 확실히 gonum쪽이 빠름..

배열 크기가 커질수록 그 차이가 커지는데 1억개짜리는 내 컴에서는 gonum이 numpy보다 2.5배 정도 빨랐음

내부적으로는 아마 비슷한 라이브러리 바인딩한게 맞을텐데 걔네가 처리한거 받아먹는 속도가 go가 빠른건지 ㅇㅇ


문제는 그 큰 배열을 만들때 ㅇㅇ

numpy는 자체적으로 큰 배열 생산 기능이 있는데

gonum에는 그런 기능이 없어서 그냥 go의 빌트인 배열을 쓰게 되는데 이게 느림 ㅠㅠ


배열 한번 만들고 여러번 계산할거면 gonum이 나은데 1회성으로 계산할 때는 배열 크기에 따라 총 작업시간 go쪽이 느릴지도 ㅋㅋㅋ