C++ - 라이브러리를 사용한 프로그램 고속화

tcmalloc, jemalloc, nedmalloc malloc 대체에 의한 고속화. 아래와 같이 실행함으로써 malloc이 대체되어 실행된다. LD_PRELOAD=/usr/lib/libtcmalloc.so ./exefile 상황에 따라 다르겠지만 tcmalloc이 제일 좋은 듯. google::dense_hash_map tcmalloc에 이어 google 라이브러리가로 Hash Map을 사용할 때의 고속화이다. 아래 링크에 다양한 Hash Map을 이용했을 때의 벤치...
더 읽기

C++ - JSON for Modern C++ 이 버전 3.1로

원문 JSON for Modern C ++ 3.1 에서는 Universal Binary JSON(UBJSON) 기능 지원 및 JSON Merge Patch가 새롭게 추가 되었다. UBJSON는 JSON for Modern C++에서 지원하는 여러 가지 형식의 하나로, 인코딩 크기 감소 및 디코딩 속도를 목적으로 한다. UBJSON 외에는...
더 읽기

GPU를 타깃으로 한 C# 이용

원문 NVIDIA GPU를 이용하는 범용 프로그램을 만드는 것은 오랫동안 NVIDIA의 CUDA 플랫폼을 사용하는 것을 의미하고 있었다. CUDA는 몇몇 다른 프로그래밍 언어를 지원하고 있지만 고성능 코드를 기술하려면 보통 C 또는 C++ 이 필요했다. 최근까지 이 상황에 의해서 C# 개발자는 고립되고 있으며...
더 읽기

golang - The Go Playground에서 유닛테스트 하기

Go는 온라인 상에서 코드를 실행 해 볼 수 있다. The Go Playground The Go Playground에서는 유닛테스트 코드도 실행 할 수 있다. package main import "testing" func Hello(name string) string { return "Hello, Emacs!" } func TestHello(t *testing.T) { if Hello("Vim")...
더 읽기

C#에서 LZ4로 압축한 데이터를 다른 언어와 주고 받을 때

C#에서 LZ4 압축 라이브러리로 유명한 것으로 lz4net 이라는 것이 있음. 이 라이브러리를 사용하여 압축을 한 데이터를 python에서 압축을 풀 때 압축이 제대로 풀리지 않음. (파이썬에서는 python-lz4 사용. ) 이유는 lz4 라이브러리를 사용할 때 Frame Format나 Block Format을 사용하는데 타 언어와...
더 읽기

golang - 길이가 0인 slice는 nil로

출처 package main import ( "fmt" ) func testNil(p []byte) { fmt.Printf("p: %v\n", p) fmt.Printf("len(p): %d\n", len(p)) fmt.Printf("cap(p): %d\n", cap(p)) for i := range p { fmt.Println("NG: %d\n", i) } fmt.Printf("p[:]: %v\n", p[:]) fmt.Printf("append(p, 0): %v\n", append(p, 0)) } func...
더 읽기

C++ - Visual Studio 2017 15.7이 C++17 완전 준수

원문 Microsoft는 Visual Studio 2017 15.7 일반용 제공을 발표했다. InfoQ는 VS2017의 7번째 메이저 업데이트 개발을 쫓아왔다. 이것에 의해 IDE 전체의 많은 영역이 개선되었다. 이 업데이트는 현재 복사본을 덮어 설치할 수 있지만, 반면에 새로 설치할 때의 이점이있다. VS2017 설치 프로그램을 변경하여...
더 읽기

C++ - redis 사용하기

게임 서버를 개발할 때 사용하는 기술이 모바일 시대 이전에 비해서 많이 다양해졌는데 거의 대부분 꼭 사용하고 있는 것이 redis 이다. 다른 언어들은 redis 사용이 간단한데 C++은 간단하지는 않아서 정리를 해 봤다. boost를 사용하면 아주 쉽게 사용할 수 있고, boost를 사용하지...
더 읽기

C++ - httpClient, json, redis 예제 코드

C++로 http client 요청, Json 데이터 조작, redis와 통신하는 짧은 예제 코드 들이다. 아래 링크에 가면 코드를 볼 수 있다. curl 라이브러리를 사용하여 http 클라이언트 Post, Get 요청 http 클라이언트 사용 방법 (Post) http 클라이언트 사용 방법 (Get) json11 라이브러리를...
더 읽기