'Develop'에 해당되는 글 74건

  1. WPF 성능 최대화 2009.05.14
  2. [펌]문서화 자료 찾다 찾은 링크 2009.04.15
  3. [펌]Doxygen 자료 링크 2009.04.15

WPF 성능 최대화

from Develop/WPF 2009. 5. 14. 09:43

WPF 성능 최대화
이번시간에는 WPF Application을 구현 할 때 성능을 최대화 할 수 있는 몇가지 방법에 대해서 소개해 드리겠습니다.

 속성 권장사항
 Brush
아래는 WPF에서 사용하는 Brush객체 중 속도가 가장 빠른 것에서 가장 느린 순서로 나열 되어 있습니다. 사용 용도에 맞게 Brush를 선택하여 사용하시면 보다 나은 성능을 발휘 할 수 있습니다.

SolidColorBrush -> LinearGradientBrush  -> ImageBrush -> DrawingBrush(캐시됨) ->
VisualBrush(캐시됨) -> RadialGradientBrush -> DrawingBrush(캐시되지 않음) -> VisualBrush(캐시되지 않음) 
 
ClipToBounds
Viewport 또는 Grid 의 영역에 맞게 명시적으로 자를 필요가 없는 상황이라면 ClipBounds 속성을 False로 설정하는 것이 좋습니다. WPF에서는 자체적으로 안티얼라이싱을 수행하며 이를 자르기 위해서는 매우 속도가 느립니다. ClipToBounds는 기본적으로 활성화 되어 있기 때문에, 명시적으로 자를 필요가 없는 상황이라면 ClipBounds속성을 False로 설정하는 것이 좋습니다. 

 IsHitTestVisible 
마우스 적중 테스트를 수행할 때 고려할 필요가 없는 객체는 항상 IsHitTestVisible 속성을 False로 설정하는 것이 좋습니다.  

 Opacity
Brush를 사용하여 요소의 Fill 또는 Stroke를 설정하는 경우 객체 자체의 Opacity 속성을 설정하는 것보다 Brush의 Opacity 값을 설정하는 것이 더 좋습니다. 객체의 Opacity 속성을 수정하면 WPF에서 임시 화면을 만들기 때문에 속도가 느립니다. 

 ScrollBarVisibility
가능하면 HorizontalScrollBarVisibility 및 VerticalScrollBarVisibility 속성을 Auto로 설정 하지 않는 것이 좋습니다. 이러한 속성은 RichTextBox, ScrollViewer 및 TextBox 개체에 대해 정의되고 ListBox 개체의 연결 속성으로 정의됩니다. 데이터가 추가되거나 삭제될때 마다 ScrollBar에 대한 연산이 필요하므로 가능하면 Disabled, Hidden 또는 Visible로 명시적으로 설정하는것이 좋습니다.
 
 BitmapEffect  
BitmapEffect는 영향을 받는 모든 내용이 하드웨어 가속 없이 렌더링됩니다. 최상의 성능을 위해서는 BitmapEffect를 사용하지 않는 것이 좋습니다.

,

 www.clien.net의 xman님의 글을 무단 발췌함!
 그분의 취지가 구닥다라 노가대 코더 탈출.. 생산성 향상 임으로
 그 뜻에 그게 반하지 않는다고 판단하였음.

 

 파일 폴더 비교 프로그램
 비교상태에서 틀린 부분을 옮기거나 간단한 수정도 됨
 "Beyond Compare" - http://www.scootersoftware.com

  유사 오픈 소스 프로젝트 http://winmerge.sourceforge.net/

 

 코드의 줄, 칸을 맞추어 주는 프로그램
 이런 것을 Code Beautifier 라고 부릅니다.

 "SourceStyler C++" -  http://www.ochre.com

 소스 코드를 플로차트로..
" SourceCode to Flowchart" - http://www.fatesoft.com

 프로그램 상에서는 순서도 그림이 이상하지만
  Word, Visio 등으로 변환할 수 있습니다.
  이때는 그림이 괜찮더군요.
  이런 종류를 CASE(Computer Aided Software Engineering)

  문서화

 "Doxygen" - http://www.stack.nl/~dimitri/doxygen/

  말 그대로 Document Generator 입니다.
 하지만 무슨 인공지능이 있는것도 아니고 소스코드를 알아서 문서화하지는
 않겠죠. 소스코드를 작성할 때 주석등을 일정한 형태의 Tag(? )를 달아 그것을 참고로 문 서가 되는 형태입니다. GNL 프로젝트로 소스도 공개되고 있고
어떤형태로 사용하든지 공짜인것 같습니다. 
 문서형태가 다양해서 Html, rtf, Latex 등 여러가지 포멧으로 나옵니다.
영문, 한글도 가능하고요. rtf 포멧이 Doc 문서와 거의 호환이 가능해서 문서
화에 가장 좋은 것 같습니다. 그런데 현재 버젼으로는 한글이 rtf로 나오지는
않지만 약간의 편법으로 한글 rtf 문서가 생성될 수 도 있습니다.
이것은 호응이 좋으면 제가 알려 드리죠.
html 문서도 링크도 생성되어 함수 검색도 쉬워지는 장점도 있고, 심지어
목차까지 생성됩니다.
일단 코드를 그냥 변환하면 되기 때문에 코드가 변경되었다고 또 다시 문서를 작성할 필요없이 바로 생성만 하면됩니다. 그래서 별도의 노력없이 그럴듯해보이는 문서가 클릭한방에 생성되기도 합니다.

물론 코드의 주석 작성할 때 노력을 하지 않으면 쓰레기 문서가 양산되겠지만요.
(쓰레기 문서라도 볼만합니다. 기본 함수와 클래스, 연결도 정도는 자동으로 나오니까요)
몇달전부터 Doxygen으로 주석붙이고 있는데 정말 만족스럽더라구요. ^^
게다가 Graphviz를 같이 사용하면 멋진 호출관계 다이어그램까지 만들어줍니다

 ( Source Insight+Araxis Merge+ClearCase)

 편집기 
  MFC를 사용하시는 분들은 MS Visual Studio 를 사용하시겠고.
  UltraEdit 나 TextPad 등을 사용하시나요?

   Source Insight - http://www.sourcedyn.com

저의 경우는 윈도우즈 용이 아니기 때문에
VI -> TextPad -> UltraEdit -> Source Insight 로 변경했습니다.
VI 경우는 UNIX를 쓸 때 만 썼고 그당시 방향키가 없는것이 크게 당황
했는데 또 쓰다보니 적응도 되더라고요.

현재는 Source Insight 를 사용하고 있는데 여러 면에서 만족스럽습니다.
Explorer에서 이전 페이지를 다음 페이지를 가는것 처럼 코드를 왔다갔다
하기도 편하고 함수나 변수를 마우스로 찍으면 이동하지 않고도 아래에
그 내용이 보이기도 합니다. (전 이기능이 가장 맘에 듭니다.) 함수/변수의 콜 관계도 쉽게 볼수 있고요.

S/W 작성하다 보면 라인수가 얼마냐는 이야기를 많이 듣게 됩니다.
그럴때 어떻게 하시나요?

흥 웃으시면서 Editor 가장 아래까지 가서 라인수를 알려주신다고요?

화일이 하나도 아닌데 그렇게 하면 힘드시겠죠?
주석도 있고 빈라인도 있는데 말이죠.

Line Counter http://noeld.com/programs.asp?cat=misc#lcounter

저는 위의 프로그램을 씁니다.
beggarware 라고 하는데 상업적으로 쓰면 연락해 달라고 하는데
이걸 돈 주고 사면 좀(?) 아까울것 같아요. 프로그램 크기가 84kbyte 밖에
안되고 프롬프트에서 작동합니다.

C/C++/C# 를 지원하고

lc  /s /v > result.txt

이런 방식으로 사용하면 하위 폴더까지 알려 줍니다.
여러개 찾아봤는데 이렇게 간단하면서 꼭 필요한 정보를
표시하는것이 별로 없더군요.

 

 하이퍼 터미널.

 Hyper Terminal은 Windows 기본인데 무슨 소리냐 하시는 분이 있는데

저의 경우 Hyper Terminal 을 쓰면 문제가 위로 올라가 버린 데이터들이
깨져서 보이지 않는 문제가 있었습니다. 물론 설정에는 500 라인 어쩌구
하는데 딱 화면에 보이는것만 괜찮고 위로 스크롤하면 데이터가 깨져서
볼수가 없었습니다.

물론 데이터맨을 깔 수 도 있지만 S/W 단속 때문에 깔수도 없고해서
알아보니 HyperTerminal 뜰때 나오는 회사(http://www.hilgraeve.com)
에 가면 6.3 버젼을 다운 받을 수 있습니다.

원래 Windows에 깔려있는것이 5.x 이지요.

 

-----------------------------------------------
 doxygen 관련 홈페이지 모음.

http://www.doxygen.org/index.html
: Doxygen 홈페이지

http://www.stack.nl/~dimitri/doxygen//manual.html
: Doxygen 홈페이지에 있는 매뉴얼

http://www.codeproject.com/macro/kingstools.asp
: KingsTools <= Visual Studio .NET 에서 설치 가능한 DoxyGen 자동화 툴

http://www.gpgstudy.com/gpgiki/DoxygenTutorial
: 류광님의 Doxygen Tutorial

http://www.viper.pe.kr/wiki/wiki.php/Doxygen%20%C0%B8%B7%CE%20%B9%AE%BC%AD%20%C0%DA%B5%BF%C8%AD%C7%CF%B1%E2
: Doxygen 설치 및 설정하기

http://www.redwiki.net/wiki/wiki.php/doxygen/%BC%D2%BD%BA%C1%D6%BC%AE%BA%D9%C0%CC%B1%E2
: Doxygen 사용법

http://www.pie.pe.kr/moniwiki/wiki.php/Doxygen
: Doxygen 사용법


,

[펌]Doxygen 자료 링크

from Develop/VC 2009. 4. 15. 10:46

문서화 도구인 Doxygen 에 대한 자료를 수집, 정리한다.

기본적으로 C/C++ , java 등을 지원한다. PHP , C# 등도 지원하는듯(확인필요)

1 관련 사이트


2 인터넷 문서

그외의 언어 별 특색을 정리하는 것이 좋을 듯

3 예제문서

실제 활용하여 제작된 문서들을 정리한다.(언어별로 분류하는것이 좋은가?)

3.1 C

,