C++ 을 쓰다가 자바를 쓰려고 하면 꼭 걸리는게 있다. 자바는 생성자는 있지만 소멸자가 없다. 곧 할당된 인스턴스가 힙에서 언제 사라질지 아무도 알지 못한다. 가베지 콜렉터가 언제 돌아간다는 보장도 없다. 모든 게 동적 생성이고, 레퍼런스 카운트로 가베지 콜렉팅을 처리하고... 그 콜렉팅하는 시기도 알 수 없기에 이런 현상이 나타난다. 이에 관련해서 쉽게 접할 수 있는 오류는 JDBC 에서 세션을 열고 닫지 않을때이다. 어처구니 없는 경우를 당한 적이 있다. 자바로 디비 프로그래밍 하는데 다른 과장이 소스를 줬고 사람들은 그냥 그것대로 적용했다. 커넥션 풀을 구현하지 않고, 오라클에서 제공하는 OracleConnectionPoolDataSource 을 이용한 것이다. 의도는 좋다. 하지만, 제대로 알고..
본 내용은 C++ 에서 XPCOM 컴포넌트를 개발하는 경우를 대상으로 한다. 그런데, 2.x 까지 지원했다면, 기존 버전에서 굳이 다른 점은 없다. –.-; 각각 쓰는 XULRunner SDK 가 다른데… 정확히는 gecko sdk 파폭1.5 ~ 2.x : ~1.8 파폭3.x : 1.9 다음 내용은 일반적인 내용이다. https://developer.mozilla.org/en/XPCOM SDK 다운 로드는 https://developer.mozilla.org/en/Gecko_SDK 다음은 짧지만 확실한 튜토리얼 http://www.iosart.com/firefox/xpcom/ Creating a C++ XPCOM component About This is a step-by-step tutorial on ..
맵 파일을 활용하자 #1 에서 긁어왔습니다. * Release mode 에서 map파일에 저장된 메모리 정보를 이용하여 어떤 함수에서 문제가 발생하였는지 추정해 볼 수 있다 . ==== 출처 : 데브피아 VC++ 강좌와 TIP 자료실 ==== 맵 파일을 활용하자 #1 1) 소개 프로그래머는 프로그램을 개발하면서 디버깅 과정에서 여러 가지 테스트를 합니다. 물론, 항상 개발자 PC에서는 프로그램이 완벽하게 동작합니다. 참 신기합니다. 정말로 정말로 개발자 PC에서는 완벽 합니다. 하지만, 이런 완벽한 프로그램을 배포하고, 나서 곧 사용자들의 끝임없는 버그 리포트로 인하여 프로그래머는 좌절을 맞보게 됩니다. 그리고, 아무것도 모르는 초보유저님에게 우리의 프로그램은 메모리 주소만 알려주고 운명해 버리는 Cra..
간단하게 잘 써 놓아서 올려봅니다. The ADAPTIVE Communication Environment (ACE) 에서 긁어왔습니다. 방법 #3 는 추가했는데, 방법 2는 처음 본 것이네요 The ADAPTIVE Communication Environment (ACE) 최근에는 ACE class library를 활용한 개발이 활발히 이루어지고 있는데, 아마도 개발이 편리하게 해주는 클래스들이라는 점과, 상당히 오랜 기간, 오랜 사람들로 하여금 안정화되었다는 점, 실제로 꽤 많은 미션 크리티컬 영역에서도 사용되고 있다는 점이 높이 평가된듯 하다. 이 ACE를 솔라리스10 에서 컴파일해서 사용하려고 하면, 몇가지 방법이 있다. [download source] 일단, 정상적인 화일을 다운받는다. 이상하게 들..
요즘에 관심있는 부분은 Lock 이 없고, Wait 가 없는 자료형태이다. 멀티 스레드 등의 IPC 처리를 하다보면, 꼭 나오는게 Lock 이다. Lock을 처리하는데 소비되는 퍼포먼스 낭비도 꽤 된다. 이를 줄일 방법이 없을까? Context-Switching 을 더디 하면서 Lock 을 사용할 수 있다면 참 좋을 것이다. 대충 논문을 조사해봐도, 이런류의 논문이 9x 년대에 부터 나온 것도 있는 걸 보면, 이미 선진들이 이런 분야로 연구한지 꽤 오래된 것을 알 수 있다. 대다수의 구현은 CAS(Compare-And-Swap) 방식으로 처리 중에는 Context Switching 이 발생하지 않는 CPU에 종속적인 원자적 연산을 사용한 방식이다. x86 계열에서는 CMPSXXX 니모닉을… Windows..
안쓰니까 자주 까먹는다 –.-; http://www.joinc.co.kr/modules/moniwiki/wiki.php/Site/system_programing/IPC/SharedMemory 1. 시스템상에 생성된 공유 메모리 세그먼트(Shared Memory Segment) 확인하기. $ ipcs -m 2. 생성된 공유 메모리 세그먼트 제거. $ ipcrm -m # ipcs ------ Shared Memory Segments -------- key shmid owner perms bytes nattch status 0x00000000 65536 root 600 393216 2 dest 0x00000000 98305 root 600 393216 2 dest 0x00000000 131074 root 60..
나는 오페라 웹 브라우저 참 좋다. 나는 주로 여러 개의 웹 창을 탭으로 띄워놓고, 수시로 사용한다. IE 에서 이렇게 해보면, 얼마 가지 않아 다운 되는 경우가 다반사이다. 심지어 OS를 새로 깔어 놓은지 불가 몇일도 안되는 사이에 이런 증상이 발생한다. 그 사이 멀웨어가 설치되었을지도 모른다. 하지만, OS설치 초기에도 또 백신을 수시로 업데이트 하는 내게 이런 현상이 자주 발생하는 것을 보면, 그럴 가능성은 거의 적다고 봐야 할 것이다. 그런데, 오페라는 다르다. 오페라 9.51버전이 되어서는 호환성도 좋아졌을 뿐만 아니라 다운증상이 거의 없다. 사실, 9.51버전으로 업그레이드 한 이후에는 한번도 다운증상을 겪지 않았다. 또한 쓸만한 플러그인도 제공한다. touchtheSky 나 Google Tr..
원본이 어디인줄 모르겠다. 내가 참조한 건 http://www.iam-hs.com/93 이다. 비주얼 C++ 6.0 에서는 일단 가능한 것 같다. 실행하기 전에는 vcvars32.bat 를 먼저 실행하고 해고, 그 다음부터 진행해야 할 것 같다. msdev.com TEST.DSW /MAKE "TEST - Win32 Release" /REBUILD => TEST.DSW 워크스페이스의 "Win32 - Release" 모듈을 리빌드~ msdev.com TEST.DSP /MAKE ALL /CLEAN => TEST.DSP 프로젝트의 "Debug", "Release" 모듈의 중간파일들 삭제~
단축키들... VI 편집기 v(블럭지정) > > >zf(묶기) ,zx(풀기) ^v(블럭지정) > -> zo(펼치기) , zc(다시닫기) ---------------------------------------------------------------------- set ft=php windows set bg=dark set sw=2 set ts=2 set nobackup set nu set ai colors darkblue set fdm=marker set guifont=굴림체:h16:b:cHANGEUL vimrc set nu set bg=dark set ai set fdm=marker 레지스터 저장 방법 shift + v (블럭 설정) "ay 레지스터 a에 저장 :register vi 편집기 sh 잠시..