블로그 이미지
fiadot_old

칼퇴근을 위한 게임 서버 개발 방법론에 대한 심도있는 고찰 및 성찰을 위한 블로그!

Rss feed Tistory
Technical Article/펌 2004. 7. 19. 04:03

영어공부도하고 MS정보도 익히고픈 개발자님들께..

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력해주세요.

Technical Article/펌 2004. 7. 6. 11:55

Reduce C/C++ Compile Time With distcc

Reduce C/C++ Compile Time With distcc

Posted by CmdrTaco on Monday July 05, @05:58PM
from the one-for-the-power-users dept.
An anonymous reader writes "Some people prefer the convenience of pre-compiled binaries in the form of RPMs or other such installer methods. But this can be a false economy, especially with programs that are used frequently: precompiled binaries will never run as quickly as those compiled with the right optimizations for your own machine. If you use a distributed compiler, you get the best of both worlds: fast compile and faster apps. This article shows you the benifits of using distcc, a distributed C compiler based on gcc, that gives you significant productivity gains."

[출처 : /. ]



나도 함 써보까...흐흐
,
Technical Article/펌 2004. 7. 6. 10:49

MSSQL Developer Edition

Developer Edition은 개발자가 SQL Server 상에서 모든 유형의 응용 프로그램을 작성할 수 있도록 설계되었습니다. 이 에디션에는 Enterprise Edition의 모든 기능이 포함되어 있지만 프로덕션 배포가 금지되는 특수한 개발 및 테스트 최종 사용자 사용권 계약(EULA)이 적용됩니다. 이 에디션은 저렴하고 다양한 플랫폼에서 실행되며 프로덕션 사용을 위해 SQL Server 2000 Enterprise Edition으로 업그레이드할 수 있다는 점에서 응용 프로그램을 개발 및 테스트하는 독립 소프트웨어 공급업체(ISV), 컨설턴트, 시스템 통합업체, 솔루션 공급자, 기업 개발자 등에 가장 이상적인 에디션입니다.

이 에디션은 SQL Server 2000 Windows CE Edition(SQL Server CE)을 다운로드 및 설치할 수 있는 권한을 정식 사용자에게 제공하는 유일한 SQL Server 2000 에디션입니다. 또한 Developer Edition 정식 사용자는 SQL Server 2000 Developer Edition 구입 비용 외에 추가 비용 없이 원하는 만큼의 장치에 SQL Server CE 기반 응용 프로그램을 재배포할 수 있는 권한이 있습니다
,
Technical Article/펌 2004. 7. 5. 15:36

SQL 날짜로..

year(Date 필드명) >= '1' Month(Date 필드명) >='30'
,
Technical Article/펌 2004. 7. 5. 10:56

[김익환]SW 개발에서 가장 중요한 문서

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력해주세요.

Technical Article/펌 2004. 6. 29. 09:32

서버에 추가해야할 기능

1. 헤더/패킷 분리(이통사별)
2. 패킷 암호화/복호화 (DES, MD5, SEED중 하나로..)
3. Stored Procedure 적용 - DB
4. IP차단 및 IP를 통한 로그추적
5. DOS방지
6. 스크립(Lua로 변경)
7. Accept -> AcceptEx로 변경
8. Memory Pool (Session, Packet, File에 적용)
9. NT Service로 등록
10. 서버 체커(문제발생시 SMS전송)
,
Technical Article/펌 2004. 6. 25. 17:01

최상위 객체에서의 임계영역 초기화에 대해서...

서버를 다시 짜면서 최상위 객체를 정의하는데

이전에 한걸 보니 생성자에서 Critical Section 초기화를 하는 부분이 보였다.

전체 객체에서 lock이 필요한게 아닐텐데...

과연이게 효과적일까? 하다가... 시험해보기로 했다.

1. 이전에 짰던거 처럼 최상위 객체에서 초기화를 하고,
1차 상속받은 클래스에서 lock, unlock을 해주는 코드



2. 최상위 클래스에서는 아무것도 없고, 1차 상속받은 클래스에서
초기화를 해주고 2차상속에서 처리하는 코드



단지 최종 객체만을 비교한다면 둘의 성능차이가 없겠지만...

타입1에서 최상위 객체를 상속받은 2개의 클래스와
타입2에서 최상위 객체 하나를 상속받고 1차 클래스를 상속받은 클래스

2개를 비교해면 좀 다르다.

1차 테스트



2차 테스트



이외에도 여러번 상속시 생성자와 파괴자의 아무 내용이 없을때의 테스트도 했는데 거의 차이는 없었지만 상속을 할수록 느려지는 결과를 보였다.

결론...
lock이 필요없는 코드라도 초기화가 한두번만 된다면 작업의 편의를 위해서 최상위객체를 상속받아 Critical secition의 초기화를 빼줄 필요가 없다.
,
Technical Article/펌 2004. 6. 24. 00:42

C++ delete쓸때 NULL체크 하지말자!!!

[16.7] Do I need to check for NULL before delete p?
No!

The C++ language guarantees that delete p will do nothing if p is equal to NULL. Since you might get the test backwards, and since most testing methodologies force you to explicitly test every branch point, you should not put in the redundant if test.

Wrong:
if (p != NULL)
delete p;

Right:
delete p;

http://www.parashift.com/c++-faq-lite/freestore-mgmt.html#faq-16.7





단, 클래스에서 new delete를 재정의해야만 쓸수있는 Brew같은 플랫폼에서는 NULL체크를 해주어야 된다.

delete 오버라이딩할때 널체크를 해줘서 널체크를 빼 주는것도 나쁘지 않을듯...

p.s 예전에 올렸던건데 혹시나 아직 못보신 분들을 위해서...
,
Technical Article 2004. 6. 22. 17:37

외부프로그램 실행하기

SHELLEXECUTEINFO fia_shellInfo;
memset(&fia_shellInfo, 0x00, sizeof(SHELLEXECUTEINFO));


fia_shellInfo.cbSize = sizeof(SHELLEXECUTEINFO);
fia_shellInfo.lpFile = "lzma.exe";
fia_shellInfo.lpDirectory = pszLzMaFilePathForShell;
fia_shellInfo.fMask = SEE_MASK_NOCLOSEPROCESS | SEE_MASK_NO_CONSOLE;
fia_shellInfo.lpVerb = "open";
fia_shellInfo.lpParameters = pszParam;
// fia_shellInfo.nShow = SW_HIDE;


if ( ::ShellExecuteEx(&fia_shellInfo) )
{
WaitForSingleObject(fia_shellInfo.hProcess, INFINITE);
}




WaitForSingleObject할때 fMask에 SEE_MASK_NOCLOSEPROCESS 줘야함~

실행후 파일삭제하는 루틴이 실행되는데...

안기다려주니까 바보됨 ㅡㅡ;
,
Technical Article/펌 2004. 5. 7. 12:02

DB 에서 쿼리문 작성시 팁

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력해주세요.

TOTAL TODAY