블로그 이미지
안녕1999

카테고리

전체 (3067)
자바스크립트 (20)
안드로이드 (14)
WebGL (4)
변비 (17)
정치,경제 (35)
C언어,ARM (162)
컴퓨터(PC, Note Book, 윈.. (41)
전자회로, PCB (27)
유머,안웃긴,GIF,동영상 (118)
국부론60 (71)
모듈(PCB) (3)
건강 (2)
FreeCAD (25)
PADS (43)
퇴직,퇴사,구직,취업 활동 (3)
C# (86)
엑셀 (8)
워드 (0)
LabView (6)
레고 (30)
FPGA (0)
Total
Today
Yesterday

달력

« » 2025.6
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

공지사항

최근에 올라온 글

PC성능이 좋아져도, 체감속도는 느린 이유
 
10년전 PC성능에 비하면, 현재의 PC는 2~10배이상 성능이 향상되었습니다.
그럼에도, PC가 계속 느린이유는 무엇일까요?
 
- 운영체제, 프로그램이 덩치가 커졌다.
- 예전보다 소프트웨어의 기능이 향상되고, 복잡해졌다.
- 예전보다 더 많은 기능을 사용한다.
 
맞는 말이긴 합니다만, 그중에 한가지 원인에 대해 설명드리려고합니다.
 
운영체제, 프로그램은 왜 덩치가 계속 커지는가?
 
- 기능 추가, 성능향상
- 그래픽 이미지, 도움말등 부가 데이터 증가
- Class 사용
 
Class는 C++언어에서 사용하는 용어입니다.
10년전에는 C언어로 작성된 프로그램도 많았습니다.
점점 PC사양이 좋아져서, 프로그램 제작에 C++언어를 많이 사용합니다.
 
C++언어의 장점은 Class같은 편리한 기능을 사용할 수 있습니다.
Class는 자동으로 초기화되고, 자동으로 파괴되는 "데이터+코드"입니다.
 
C언어로 프로그램을 작성하다보면, 초기화를 안해주거나, 사용후 파괴시키지 않아서
버그(오동작)이나, 메모리 부족현상이 가끔 발생합니다.
너무 크고 복잡한 프로그램에서는 원인 찾기가 매우 힘들어집니다.
 
Class로 작성하면, 이 2가지가 거의 대부분 자동으로 해결됩니다.
또한 Class는 "상속"이라는 개념이 있어, Class를 여러단계로 쉽게 확장시킬 수 있습니다.
 
Class가 장점이 큰 반면, 단점도 있습니다.
"매번 초기화를 합니다."
경우에 따라서, 초기화가 필요 없는곳에서도, 무조건 초기화가 됩니다.
또한, 파괴가 필요없는 곳에서도, 무조건 파괴됩니다.
초기화코드와 파괴 코드가 무조건 호출됩니다.
 
C언어에서는 사람이 필요에따라 초기화와 파괴를 합니다.
따라서, 불필요하다면, 안합니다.
 
이에 비해 Class는 무조건 초기화+파괴 코드가 호출되어 속도가 느려집니다.
매주 자주 사용하는 기능에 Class 초기화+파괴를 많이 사용한다면,
매우 느린 프로그램이 됩니다.
 
아래 코드를 1초에 10번 호출한다고하면, CString은 초기화+파괴를 2번씩합니다.
void func1(CString str)
{
	CString a,b;
 
	a=str;
	b=str;
	...
}


Posted by 안녕1999
, |

최근에 달린 댓글

글 보관함