Programming Language/golang
-
goroutine 스케줄링Programming Language/golang 2024. 5. 1. 15:56
goroutine 스케줄링이 어떻게 동작하는지 정리한다.0. OS 스레드의 단점 - 생성/소거 비용이 비싸다.기본적으로 약 1MB 의 메모리 크기다. - 스레드의 숫자가 많으면 많을수록 컨텍스트 스위칭 비용이 비싸다.코어는 한정되어 있기 때문에 여러 스레드가 돌아가면서 사용할 때마다 컨텍스트 스위칭 발생.1. goroutine 특징- Goruntime이 관리하는 goroutine(고루틴)이라는 자체 동시성 모델을 구성하여 사용한다.OS 스레드가 1MB의 스택을 갖는 반면 고루틴은 이보다 훨씬 작은 약 2KB의 스택을 가짐.레지스터도 스택포인터(SP), 프로그램 카운터(PC), 리턴 포인터 정도가 전부이다.type g struct { stack stack // 스택 stackgua..
-
goquery 이슈Programming Language/golang 2021. 12. 28. 11:49
- goquery 사용시 문제가 발생했던 점 기록 - BOM ( byte order mark ) 가 존재하는 경우에, goquery의 NewDocumentFromReader가 제대로 동작하지 않을 수 있음 ( BOM이란 - 문서 맨 앞에 보이지 않는 특정 바이트를 넣고 이를 이용해 어떤 인코딩 방식이 사용되었는 지 알아내는 방법. UTF-8의 경우에 BOM이 없는 것이 보통이나 일부 윈도우즈 프로그램은 UTF-8파일을 생성할 때 자동으로 BOM을 넣는 경우도 있다고 함) Not working correctly with file contains BOM · Issue #292 · PuerkitoBio/goquery test.txt file, e := ioutil.ReadFile(`test.txt`) if e..