Windows 10 에서 Unix Domain Socket 사용 가능

Windows 10 2018년 봄 대형 업데이트에서 Unix Domain Socket 기능이 추가 되었다. AF_UNIX comes to Windows – Windows Command Line Tools For Developers Unix Domain Socket을 사용하기 위해서는 AF_UNIX를 사용하면 된다. 아래 예제 코드의 출처 코드를 보면 알겠지만 조금의 #ifdef로...
더 읽기

golang - goroutine이 교체 되는 타이밍

결론 Go언어에서 goroutine은 반드시 스위치 하는 것은 아니다. “for() {}” 같은 비지 루프를 GOMAXPROCS의 지정 수 이상 포함시키면 스위칭 되지 않는다. 경위 처리가 없는 비지 루프가 있으면 goroutine이 교환 되지 않고 처리가 멈추는 것을 알았다. 처리 내용을 전부 주석 처리...
더 읽기

golang - thread pool과 GOMAXPROCS는 관계 없음

golang의 경우 스레드 풀을 사용하고 있으며 블러킹 하는 시스템 콜이라면 다른 스레드로 옮겨서 처리한다. 부족한 경우에는 OS가 허락하는 한도 내에서 만든다. 이 수는 GOMAXPROCS 와는 관계 없다.
더 읽기

.NET - Enums.NET

Enums.NET C#의 enum을 직접 사용하는 것에 비해 Enums.NET을 사용하는 것이 더 빠름. 아래는 비교 코드. 출처 using EnumsNET; using System; using System.Diagnostics; using System.Text; public static class Program { private enum TYPE { GRASS, FIRE, WATER, } private static void...
더 읽기

golang - 성능 조사 slice vs array

출처 테스트 환경: go version go1.7.3 windows/amd64 package go1_6 const capacity = 1024 //배열 조작 array는 slice 보다 빠르다 func array() [capacity]int { // 배열 처리 테스트 함수 var d [capacity]int for i := 0; i < len(d); i++ {...
더 읽기

golang - 성능 조사 map과 GC

테스트 환경: go version go1.7.3 windows/amd64 기본 용량 golang의 map은 용량을 확장 할 때 원 데이터의 복사와 재 해시를 하기 때문에 map을 만들 때 용량을 설정하는 것이 좋다. package main import "testing" func test(m map[int]int) { for i := 0;...
더 읽기

golang - sync.pool

쉽게 말하면 메모리풀 이라고 생각하면 좋다. Go 1.3 버전에서 표준 패키지로 들어왔다. sync.Pool로 극상의 메모리 효율 의 글 중 일부를 번역 정리 했다.
더 읽기

editorconfig 파일

이것으로 프로젝트 디렉토리에 .editorconfig 파일을 준비해 두면 설정이 적용된다. (Visual Studio, Atom 등 유명 에디터에서 지원하고 있다) 즉 git의 관리 대상으로 하면 프로젝트에서 통일 시킬 수 있다. .editorconfig 파일의 예 # EditorConfig helps developers define and maintain consistent # coding...
더 읽기