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...
더 읽기

AWS - P2P에서 클라우드로의 전환. For Honor와 Friday the 13th The Game이 어떻게 플레이어 경험을 향상 시켰는가

원문 게임 개발자로서 출시에 이르기까지 열정을 잃지 않고 게임 개발과 팬 커뮤니티의 육성에 수 년의 세월 투자 되어 왔다고 생각한다. 최고의 사용자 경험을 제공 할 수 있는 것에 대해서는 예를 들어 네트워크 연결시 플레이어의 대기 시간에 대한 백엔드의 선택 등...
더 읽기

.NET Core 2.1 preview2에서 네트워킹 개선

원문 Microsoft는 .NET Core 2.1 를 진화시키고 있다. 최신 프리뷰 버전에서는 속도의 대폭적인 향상 순수, .NET 소켓을 기반으로 네트워크 코드 재 작성, 도구의 개선이 이루어지고 있다. dotnet 툴 시스템은 프리뷰 1에서 발표되었지만, 상당한 성장을 이루었다. 글로벌 툴 설치, 제거, 업데이트(제거...
더 읽기

패킷과 프레임의 차이

출처 네트워크를 통해 전송되는 데이터는 패킷이나 프레임이라는 단위로 분할되어 회선 위를 왕래한다. 같은 것을 가리키면서 패킷 이라고하거나, 프레임이라고도 하지만 엄밀하게는 다른 것이다. 인터넷 기술 표준화를 추진하는 단체 IETF(Internet Engineering Task Force)의 용어 해설 「RFC 1983 Internet Users ‘Glossary “에 따르면,...
더 읽기

golang - Windows에서 godep 설치 후 godep 명령어를 찾지 못하는 경우

godep은 Go언어의 라이브러리가 의존하고 있는 패키지를 관리하는 툴로 node.js의 npm이나 Ruby의 Gem과 비슷한 것이다. godep을 Windows에서 설치 후 실행하면 아래와 같은 에러가 나오는 경우는 설치한 godep 실행 파일이 있는 디렉토리가 path에 들어가 있지 않기 때문이다. 참고로 godep을 실행할 디렉토리는 꼭...
더 읽기

NDC 2018 go로 네트워크 프로그래밍 하기 강연 자료

NDC 2018. 4/24일에 강연한 ‘ go로 네트워크 프로그래밍 하기’의 강연 자료입니다. https://github.com/jacking75/conf_ndc_2018 25분짜리 강연이고, 초급자 대상이라 초급 레벨을 넘은 사람에게는 도움 안됩니다. go 공부로는 2년 전부터 했지만 현업에 사용하는 것은 이제 3개월 정도인고 사이에 못한 기간도 있고, 지금 회사에서 여러...
더 읽기

RPS(Receive Packet Steering)와 RFS(Receive Flow Steering)

RPS(Receive Packet Steering) RPS는 수신한 패킷을 처리하는 네트워크 부하를 다중 코어로 분배할 수 있다. 이 기술은 TCP/IP 같은 프로토콜을 패킷으로서 병행적으로 처리할 수 있다. 매핑은 해시 테이블 메커니즘에서 행해진다. 수신한 큐에는 CPU에 대한 마스크 인덱스로 특정의 해시 패킷 헤더가 이용된다....
더 읽기