본문 바로가기

Dev/C++

멀티쓰레드 최적화 힙 메모리 할당기 - tcmalloc. jemalloc # TCmalloc (Thread-Caching memory allocation) - https://code.google.com/p/gperftools/ - 구글이 만든 성능 도구에 포함되어 있는 힙 메모리 할당자로서 크롬 및 많은 프로젝트에 사용  - 기존의 malloc 으로 대표되는 할당자의 경우 멀티쓰레드의 최적화가 고려되지 않은 상황의 구현체이기 때문에, Thread가 난무하는 현실 세계에서는 많은.. 더보기
cdecl/asb 개발 중.. cdecl/asb 개발 중.. 1. wg/wrk (Modern HTTP benchmarking tool) - wrk는 커맨드 라인의 옵션으로, 간단한게 Http 서비스의 성능 평가를 할 수 있는 툴. - 윈도우 환경에서도 쓸 수 있지 않을까 했지만, Linux의 aio(Asynchronous I/O)으로 구현 되어 있어 포팅 불가. - 비슷한 툴로 Apache ab, JoeDog/siege 등이 있으며, github에 "benchmark" .. 더보기
cdecl/asb - Http benchmarking and load test tool for windows, posix # cdecl/asb - Http benchmarking and load test tool for windows, posix - wg/wrk (Modern HTTP benchmarking tool)과 기능이 비슷한, Windows 버전으로 만들게 된 커맨드 라인 툴. - boost::asio 와 asio 에서 지원하는 ssl(openssl)을 이용하여 구현. - VC++ 2013 환경에서 개발하고, 라이브.. 더보기
Catch (A modern, C++-native, header-only, framework for unit-tests, TDD and BDD) Github : https://github.com/philsquared/Catch Tutorial : https://github.com/philsquared/Catch/blob/master/docs/tutorial.md # 특징 - CppUnit, Google Test, Boost.Test 등등 다른 프레임웍크에 비해 의존성이 없는 헤더파일(catch.hpp) 하나면 사용 할 수 있음    * .. 더보기
C++ REST SDK (casablanca) 간단 샘플 * https://casablanca.codeplex.com/ The C++ REST SDK is a Microsoft project for cloud-based client-server communication in native code using a modern asynchronous C++ API design. This project aims to help C++ developers connect to and interact with.. 더보기
[C++11] Variadic template # Variadic template  - template 에서 타입의 인자를 가변으로 처리 할 수 있는, 새로운 ... 표현식이이 생겼다    - http://en.wikipedia.org/wiki/Variadic_template    - 그리고 또 다른 설명인 MSDN의 링크      http://msdn.microsoft.com/ko-kr/libra.. 더보기
boost 설치 <예제, boost::asio 필요 라이브러리 ># msvc-14.0 : vc++ 2015# msvc-12.0 : vc++ 2013# 64bit : address-model=64bjam.exe toolset=msvc-11.0 link=static runtime-link=static --with-system --with-date_time --with-regex --with-thread -j 4&n.. 더보기
boost::asio 클라이언트 소켓 (timeout 기능) - 메세지를 한번 주고 받고 세션을 종료하는 클라이언트 소켓 - boost::asio 라이브러리 사용 (boost 의 date_time, thread, system 컴파일 필요) - boost::asio::deadline_timer 를 이용하여 timeout 기능 구현  - 비동시 소켓으로 구현한 동기 소켓(?) #pragma once #include <algorithm> usi.. 더보기
이미지 변환 모듈 (모바일용, GDI+) - 이미지의 포맷 변환 및 퀄러티, 크기조정(비율) 모듈  - Windows 환경, C++, GDI+, Component STDMETHODIMP CMobileImage::Convert(BSTR Src, BSTR Output, BSTR ImgFormat, long Quality, long Width, long Height, VARIANT_BOOL* pSuccess) { *pSuccess = VARIANT_FAL.. 더보기
C++0x, RValue Reference C++0x RValue Reference 라는것이 추가 되었다. RValue Reference는  Move semantics와 Perfect forwarding 이라는 두가지 기능을 가진다. 1. Move semantics 기존 부터 있던 Reference는 LValue Reference 라고 불린다. int n = 10; int &r = n;  // LValue Reference int *p = &.. 더보기
C++0x Lambda 아래 링크의 글 중 Herb Sutter 의 Lambda 예제 및 설명에 관한 리플.. http://herbsutter.wordpress.com/2008/03/29/trip-report-februarymarch-2008-iso-c-standards-meeting/ []와 []안에 들어가는 내용에 대해서 명쾌하게 설명을.. Herb Sutter Re binders: Okay, I give! I’ll use a better ex.. 더보기
C++0x 지원 컴파일러 목록 http://wiki.apache.org/stdcxx/C++0xCompilerSupport 더보기