Programming 516

C++ 이야기 서른번째: boost::shared_ptr performance

http://yesarang.tistory.com/364 최근 제가 진행하던 프로젝트에서 boost::shared_ptr를 상당히 많이 사용해 왔었는데, 성능이 좋게 나오질 않아서 혹시나 해서 오늘 성능을 간단하게 측정해 봤더니 속도 차이가 상당히 많이 나는군요. 성능이 좀 느리겠거니 했는데 상상 이상이었습니다.(실은 이 문제 때문에 한바탕 홍역을 치뤘죠. ㅠ.ㅠ) 다음은 테스트 프로그램입니다. $ cat shared.cpp #include #include using namespace std; using namespace boost; class AClass { public: void Op() const { ++i; } int Get() const { return i; } private: mutable i..

Programming 2014.05.03

C++ 이야기 세번째: new 와 delete

http://yesarang.tistory.com/39 [이글의 최신 Update 문서는 항상 여기에서 확인할 수 있습니다] C++ 이야기 세번째입니다. 개발자가 아니신 분들이나 C++ 로 주로 개발하지 않으시는 분들은 별로 관심이 가는 내용이 아닐 것 같네요. 크~ 벌써 세번째에 접어 들었네요. 이번에는 new 와 delete에 대해서 알아보도록 하겠습니다. new 와 delete에 대해서는 다 잘 아는 건데 이것보다 딴 걸 알고 싶으신 분은 잠깐 기다려 보세요. 이 글을 다 읽으신 후에는 new 와 delete의 오묘한 세계에 다시 한 번 놀라실 겁니다. 저도 놀랐다니까요~ 글쎄 먼저 여러분이 가장 기본적으로 알고 있는 것부터 확인하고 넘어갈까요 ? * new: 객체 하나를 동적으로 할당해 줍니다. ..

Programming 2014.05.03

[PHP] include(), require(), include_once(), require_once()

출처: http://zzaps.tistory.com/15 php 파일 작성 시에, 외부 파일을 포함하기 위해 사용하는 함수가 4개가 있습니다. include(), require(), include_once(), require_once() include(), require() 는 함수가 실행될 때마다 매개변수로 입력한 파일을 포함합니다. 이들 함수의 매개변수는 파일의 위치를 지정합니다. include('./test/a.php'); require('./test/a.php'); 현재 디렉토리 아래에 test라는 디렉토리 내의 a.php를 포함시켜라..는 의미죠. 기능은 같지만, 이들 두 함수는 실행결과의 차이가 있습니다. 포함시키라고 지정해준 파일이 없을 경우, include()는 warning을 표시하지만,..

Programming 2014.04.27

Parenj, Paren#이 이제 thread를 지원합니다.

Parenj 1.8.1과 Paren# 0.2.1에서 간단하게 thread(쓰레드 생성)와 join(쓰레드 종료를 기다림)를 지원합니다. Parenj | https://bitbucket.org/ktg/parenj Paren# | https://bitbucket.org/ktg/parensharp 예제: > (set t1 (thread (for i 1 10 1 (pr "" i)))) (set t2 (thread (for j 11 20 1 (pr "" j)))) (join t1) (join t2) 1 11 2 12 3 4 5 136 7 8 9 1014 15 16 17 18 19 20 : null 요즘 느끼는 건.. "CPU가 변하면 프로그래밍 언어도 변해야 한다."입니다. 예전 C나 C++이 처음 나왔을 때는 ..

Programming 2014.04.14

[C++] Thread(쓰레드, 스레드)

http://arer.tistory.com/45 쓰레드(thread)는 라이브러리에 정의되어있다. 쓰레드(thread)란 프로세스내에서 실행되는 실행 단위이다. 주로 프로그램에는 하나의 스레드로 구성되는데 프로그램은 여러개의 스레드를 가질 수 있다. 이러한 방식을 멀티스레드 라고 한다. 멀티스레드를 실행하면 각 스레드들은 일정시간동안 번갈아가면서 실행된다. 예를들어 1을 1000번 출력하는 스레드 T1과 0을 1000번 출력하는 스레드 T2가 있다고할 때 1이 1000번 출력되고 0이 1000번 수행되는 것이 아니라 1과 0이 번갈아가면서 실행된다(정확히 101010...이 출력되지는 않고 실행할때 마다 조금식 다르게 출력된다.) C++에서 스레드는 아래와 같이 사용한다. thread(함수); 1 2 3..

Programming 2014.04.13