마이크로소프트의 속내는 알다가도 모르겠다. 거의 2년 가까이 잘 사용해오던 제품 이름을 느닷없이 바꿔 버렸기 때문이다. MS가 타일 모양의 사용자조작환경(UI)을 뜻하는 ‘메트로 UI’의 ‘메트로’라는 이름을 더이상 사용하지 않기로 했다. 해외 IT 업계 소식을 전하는 더버지가 미국 현지시각으로 8월2일 전했다.


이유는 아직 오리무중이다. MS의 공식적인 답변은 “개발 단계의 코드명이기 때문”이라지만, 유럽의 다른 업체 이름과 같아 다툼의 여지가 있기 때문이라는 추측도 나오고 있다. MS는 ‘메트로 UI’라는 이름 대신 ‘윈도우8 스타일 UI’이라는 이름으로 부를 예정이다.

△ ‘메트로 UI’라는 이름은 MS 제품 전반에 걸쳐 이용된 이름이다. ‘윈도우8′(왼쪽)과 ‘윈도우즈폰8′

더버지가 전한 내용을 보면, MS는 내부적으로 개발자들에 더이상 ‘메트로’라는 이름을 사용하지 말 것을 권고한 것으로 알려졌다. 한국MS도 같은 내용의 지침을 받았다. 사실상 ‘메트로’라는 이름이 공식적으로 폐기된 셈이다. MS가 MS의 e메일 계정 브랜드인 핫메일에 메트로 UI를 적용하고, ‘아웃룩닷컴’으로 새 단장해 발표한 지 불과 이틀 만의 일이다.


아웃룩닷컴 뿐만이 아니다. MS는 이미 모바일기기용 운영체제(OS) ‘윈도우폰7′을 출시할 당시인 2010년 가을부터 타일 모양의 UI를 ‘메트로 UI’라고 불렀다. 이후 MS의 차세대 운영체제(OS) ‘윈도우8′에도 메트로 UI를 적용했고, MS의 모든 제품을 메트로 UI로 바꾸기 시작했다. 지난 7월 발표된 ‘MS 오피스 2013′에서도 메트로 UI라는 이름을 쉽게 발견할 수 있다.


MS의 마음이 갑자기 바뀐 이유는 무엇일까. MS 대변인은 해외 IT 매체 벤처비트와의 인터뷰를 통해 “‘메트로’라는 이름을 다양한 제품과 제품 개발 주기에 걸쳐 이용했지만, 상용 제품 출시가 가까워진 만큼 사용자와 기업에 적용할 수 있는 상업적인 이름을 사용할 예정이다”라고 밝혔다. 개발 단계의 코드명은 폐기하고, 앞으로 상업용 이름을 다시 정하겠다는 얘기다.


일견 수긍이 가는 얘기지만, 자세히 뜯어보면 뚱딴지같은 소리다. 지금까지 ‘메트로’라는 이름을 갖고 출시된 제품은 개발 단계의 미완성 제품이라는 뜻이기 때문이다. 윈도우폰7과 ‘윈도우폰7.5(망고)’ 등이 ‘메트로’라는 이름을 달고 출시된 바 있다.


MS가 독일의 유명 유통체인을 운영하고 있는 업체 이름 때문에 법정 다툼의 여지를 우려한 것은 아닌지 추측이 나오는 것은 이 때문이다. 독일 뒤셀도르프에 있는 ‘메트로 AG’라는 이름을 가진 그룹 때문이다. 독일 메트로 AG는 미국 ‘월마트’나 프랑스 ‘까르푸’ 등과 같은 체인형 마트를 운영하는 업체다. MS가 ‘메트로’라는 이름을 갖고 유럽에 제품을 출시하면, 이름 때문에 곤욕을 치를 수도 있을 것이라는 분석이다. 그렇다고 유럽 쪽에서는 다른 이름을 쓰고, 다른 나라에선 ‘메트로’ 이름을 유지하는 것도 곤란하다. 결국 ‘메트로’ 이름을 포기하고 새 이름을 찾는 것으로 방향을 바꾼 것으로 풀이된다.


MS의 결정 때문에 2년여 동안 익숙하게 부르던 메트로 UI를 ‘메트로’라고 부를 수 없게 됐다. 홍길동이 형을 형이라고 부르지 못하게 됐을 때 심정이 이와 같았을까. 이제부터는 메트로 UI를 새 윈도우8 스타일 UI로 불러야 한다.


※※ 그래픽 이퀄라이저, 파라메트릭 이퀄라이저 ※※


그래픽 이퀄라이저와 파라메트릭 이퀄라이저의 기본 개념은 거의 같지만 제품의 사용 방법과 용도가 조금 다르다고 볼 수 있다.

(그림 1) 그래픽 이퀄라이저의 조정 손잡이 위치와 재생 주파수 관계

가장 큰 차이는 기본 사용법으로 그래픽 이퀄라이저는 그림 1 처럼 미리 지정된 주파수를 조정해 각 손잡이의 곡선이 실제 재생되는 주파수와 동일하기 때문에 이름도 그래픽 이퀄라이저로 정했다.

파라메트릭 이퀄라이저는 그림 2 처럼 조정 손잡이들이 배열해 있고 주파수를 설정하는 스위치 옆에는 해당 주파수의 상승 하강을 조정하는 스위치가 붙어있다.

(그림2) 파라메트릭 이퀄라이저의 조정

주로 믹서기의 이퀄라이저부에 구비 되어있다. 특히 그림에서 보듯 Q값이라는 것이 있는데 이 Q값, 즉 좌우 폭을 조정 할 수 있는 Q값 조정 스위치가 있는 것도 많다.

파라메트릭 이퀄라이저는 믹서기 등에 설치되어 각 채널의 음색을 가감하여 변화시킬 때 주로 사용하며 그래픽 이퀄라이저는 전체적인 사운드에서 넘치거나 부족한 부분을  조정하는 용도로 주로 사용한다.

이 두 이퀄라이저의 접속 방법은 전 회에 다 설명했 으므로 생략한다.

[출처: 03. 이퀄라이저의 종류에는 어떤 것이 있는가?]



Windows 7 설치 후 IDE에서 AHCI로 변경방법


Windows 7 에 이미 AHCI 드라이버가 포함되어있어 약간의 레지스트리를 변경만 하면 된다.


변경방법


1. 윈도우 키 + R 을 동시에 눌러 실행 창을 연다


2. regedit 를 입력하고 확인을 클릭한다.


3. 레지스트리 편집기 창이 나타나면 아래 위치로 이동한다


HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\msahci


4. Start 를 더블클릭한후 기본 값 3 을 0 으로 바꾼후 재부팅한다.


5. 컴퓨터 초기 부팅시 CMOS 로 진입하여 디스크 설정부분을 AHCI로 변경 저장 후 Windows 7을 부팅한다.

블루스크린 오류코드(Blue Screen Error Code) 


블루스크린오류코드.mht


확실치는 않아도 참고용으로 올려 드립니다~~~


블루스크린 오류코드(Blue Screen Error Code)

05: INVALID_PROCESS_ATTACH_...

A5: ACPI_BIOS_ERROR

0A: IRQL_NOT_LESS_OR_EQUAL

B4: VIDEO_DRIVER_INIT_FAILURE

12: TRAP_CAUSE_UNKNOWN

BE: ATTEMPTED_WRITE_TO_READ...

1A: MEMORY_MANAGEMENT

C1: SPECIAL_POOL_DETECTED_...

1E: KMODE_EXCEPTION_NOT...

C2: BAD_POOL_CALLER

23: FAT_FILE_SYSTEM

C4: DRIVER_VERIFIER_DETECTED...

24: NTFS_FILE_SYSTEM

C5: DRIVER_CORRUPTED_EXPOOL

27: RDR_FILE_SYSTEM

C6: DRIVER_CAUGHT_MODIFYING_

2E: DATA_BUS_ERROR

C7: TIMER_OR_DPC_INVALID

35: NO_MORE_IRP_STACK_

C9: DRIVER_VERIFIER_IOMANAGER

3F: NO_MORE_SYSTEM_PTES

CB: DRIVER_LEFT_LOCKED_PAGES

44: MULTIPLE_IRP_COMPLETE_

CE: DRIVER_UNLOADED_WITHOUT

4E: PFN_LIST_CORRUPT

D1: DRIVER_IRQL_NOT_LESS_OR

50: PAGE_FAULT_IN_NONPAGED

D8: DRIVER_USED_EXCESSIVE_

51: REGISTRY_ERROR

E3: RESOURCE_NOT_OWNED

58: FTDISK_INTERNAL_ERROR

EA: THREAD_STUCK_IN_DEVICE

5A: CRITICAL_SERVICE_FAILED

ED: UNMOUNTABLE_BOOT_

6F: SESSION3_INITIALIZATION_

F2: HARDWARE_INTERRUPT_

76: PROCESS_HAS_LOCKED_

F3: DISORDERLY_SHUTDOWN

77: KERNEL_STACK_INPAGE_

F4: CRITICAL_OBJECT_TERMI

79: MISMATCHED_HAL

FC: ATTEMPTED_EXECUTE_

7A: KERNEL_DATA_INPAGE

C000009A: STATUS_INSUFF

7B: INACCESSIBLE_BOOT

C0000135: UNABLE TO LO

7E: SYSTEM_THREAD_

C0000142: DLL Initialization

7F: UNEXPECTED_KERNEL_

C0000218: UNKNOWN_HARD_

80: NMI_HARDWARE_FAILURE

C000021A: STATUS_SYSTEM_

8E: KERNEL_MODE_EXCEPTION

C0000221: STATUS_IMAGE_

9C: MACHINE_CHECK_

C0000244

9F: DRIVER_POWER_STATE_

C000026C

DEADDEAD: MANUALLY_INITIATED

기타 오류 코드

0x1000007E

0x1000008E

▲처음으로

블루스크린이란?

윈도우 NT 계열의 운영체제(NT,2000,XP,2003)에서 볼 수 있는 오류이며 하드웨어 문제 때문에 발생하는 경우가 많다. 과거부터 죽음의 파란화면이라 하며 영어로는 Blue Screen Of Death라 표현하고 줄여서 BSOD라고 부르기도 한다.

블루스크린은 그 현상 자체가 오류가 아니고 윈도우 커널모드에서 발생한 오류에 대한 원인과 해결책을 제시해 주는 일종의 모니터링 도구에 속한다.

참고로 유저모드에서 발생한 오류를 모니터하고 자세한 내용을 기록하는 도구는 닥터왓슨이 그 역할을 담당하고 있다.

표현형식은 STOP 0 x0000007B 형식으로 표현하며 줄여서7B 또는0x7B 라고 표현하기도 한다.

▲처음으로

블루스크린 GENERAL CHECK LIST

1. 이벤트뷰어를 확인한다. 시스템과 응용프로그램 항목에서 원인이 될 만한 사항이있는지 주의깊게 확인 한다. 부팅이 전혀 안되는 경우엔 ERD COMMANDER를 이용해 확인할 수 있다.

2. 새로 장착한 하드웨어가 있으면 제거하고 오류를 재확인한다.

3. 가능한 모든 방법을 총동원하여 하드웨어의 진단을 실시한다. 신뢰할 만한 진단 프로그램을 사용해 본다.

4. 장치드라이버와 바이오스를 최신버전으로 업데이트 한다.

5. 드라이버 업데이트 직후 BSOD가 발생하면 구버전의 드라이버로 다시 설치해준다. 구형의 시스템에 최신의 장치(그래픽카드, 랜카드, 사운드카드, 메인보드 etc)를 사용하는 경우 발생 할 수 도 있다.

6. 시스템 내부의 장치들이 확실히 장칙되었는가를 확인하며 전기접점을 가진 부품은 접점의 청소도 함께 실시한다.(메모리, 그래픽카드, 사운드카드, 랜카드, etc)

7. 인터넷을 통하여 시스템의 주요 부품이 다른 PC에서도 현재의 오류와 동일한 오류를 일으킨 자료가 있는지 찾아본다. 부품 제조회사 홈페이지와 마이크로소프트의 하드웨어 호환성 리스트(HCL)도 확인한다.

8. 바이러스와 스파이웨어 검사를 철저히 실행한다.

9. 최근에 설치한 응용프로그램들을 하나씩 제거해 보며 오류를 재확인해 본다.

10. 바이오스 셋업 메뉴에서 메모리관련 설정들을 하나씩 변경해본다. Cache옵션, Shadow옵션, 타이밍 옵션 등의 설정을 하나씩 변경해 본다.

▲처음으로

0x00000005: INVALID_PROCESS_ATTACH_ATTEMPT

원인

윈도우XP SP2, 2003 서버, XP 타블렛PC 2005 에디션에서 바이러스 백신, 방화벽 프로그램, 이와 유사한 기능을 하는 프로그램 때문에 발생 할 수 있다.

해결

참고

Windows XP 서비스 팩 2 또는 Windows Server 2003에서 "Stop 0x05 " Stop 오류가 발생한다

▲처음으로

0x0000000A: IRQL_NOT_LESS_OR_EQUAL

원인

1. 프로세서 및 메모리 관리나 데이터 입출력 하드웨어 제어 등의 IRQL 인터럽트 요청 레벨이 너무 높을 때
발생하는 오류이다
.

2. 메모리접근을 위한 커널 모드가 퍼미션을 가지지 못할 때 생기는 오류이다.

3. 일반적으로 이 메시지는 하드웨어나 소프트웨어 호환성 문제 때문에 생긴다.

해결

1. 드라이버나 펌웨어를 설치하는데 실패할 때 발생한다. 문제를 해결하기 위해 실패한 드라이버를 삭제하거나 드라이버 롤백 기능을 사용한다.

2. 윈도우 XP를 업그레이드하는 동안 이 오류가 나타나면 호환성부족 드라이버나 바이러스를 체크 해본다.

참고

Windows NT의 "Stop 0x0A" 메시지 문제 해결

Windows XP에서 Stop 0x0000000A 오류 해결

Windows XP를 업그레이드하는 동안 "Stop 0x0000000A " 오류 메시지가 나타난다

같은 파티션에서 Windows NT 4.0과 이중 부팅(Dual Boot)할 때 STOP: 0x0000000A 오류 발생

컴퓨터를 종료하려고 하면 Windows XP가 다시 시작된다

Windows 2000에서 Driver Verifier를 사용하여 장치드라이버 문제를 해결하는 방법

STOP 0x0A, 0x01E, and 0x50 가 발생 가능한 화면 해상도

AC Power에서 DC Power로 변환시 발생하는 "STOP 0x0000000A" 오류 메세지

빠른 사용자 전환 시 "Stop 0x0000000A" 오류 메시지가 발생한다.

Hewlett-Packard 5100C ScanJet에서 "Fatal System Error" 가 발생한다.

컴퓨터를 시작할 때 STOP 0x4E, STOP 0x1A, STOP 0x50, and STOP 0xA 오류가 발생한다.

윈도우2000 계열에서 발생하는"Stop: 0x0000000A (00000063, 0000001c, 00000000, parameter4)" 오류

▲처음으로

0x00000012: TRAP_CAUSE_UNKNOWN

원인

Microsoft에서도 원인이 될 만한 특별한 점을 제시하지 못하는 오류 중 하나다.

해결

위의 블루스크린 General Check List에 따라 문제해결을 시도해 본다.

참고

class=nmsw_a_org style="BORDER-RIGHT: blue 1px solid; BORDER-TOP: blue 1px solid; BORDER-LEFT: blue 1px solid; BORDER-BOTTOM: blue 1px solid"

윈도우2000에서 Sound Blaster 드라이버 때문에 오류가 발생한다.

▲처음으로

0x0000001A: MEMORY_MANAGEMENT

원인

하드웨어와 관련된 오류중 하나다. 윈도우 설치 중 이 오류가 발생하면 메모리 용량부족, 하드디스크 공간 부족여부를 확인해야한다.

해결

참고

컴퓨터를 시작할 때 STOP 0x4E, STOP 0x1A, STOP 0x50, and STOP 0xA 오류가 발생한다.

▲처음으로

0x0000001E: KMODE_EXCEPTION_NOT_HANDLED

원인

1. 커널 오류 중 하나이며 0×A오류와 거의 같다

2. 메모리 부족 때문에 발생하는 오류이다.

3. 잘못된 드라이버를 설치하거나 메모리와 IRQ 충돌 시 이런 문제가 나타난다

4. 허용되지 않거나 알수 없는 CPU 명령어가 윈도우 커널이 인식할 경우 발생 할 수 있다.

해결

1. 바이러스 백신이나 멀티미디어 응용프로그램 백업프로그램등과 같이 필터프로그램을 사용하는 소프트웨어를 업데이트한다.

2. 원격 제어프로그램의 win32k.sys 파일이 손상되었을 경우나 다른 회사의 원격제어 프로그램을 설치할 경우에 발생 될 수 있다.

3. 안전모드로 접근 못하는 경우 Recovery Console을 이용하여 문제를 해결한다.

4. 시스템 펌웨어의 호환성부족으로 발생 할 수 있으며 바이오스 업그레이드로 문제를 해결해 본다.

5. 블루스크린 General Check List

참고

▲처음으로

0x00000023: FAT_FILE_SYSTEM

원인

1. FAT 방식의 드라이브를 읽거나 기록시 발생하는 오류. 하드웨어적인 문제, 제어신호의 오류가 원인이된다.

2. 단편화가 심한 경우, 과도한 파일 입출력, 레이드 소프트웨어, 바이러스 백신과의 문제로도 발생한다.

해결

1. CHKDSK, Defrag를 실시한다.

2. Virus 백신,스파이웨어 제거툴, 뱡화벽 프로그램, 백업 프로그램을 사용중지.

3. 최신버전의 서비스 팩, 각종 저장장치 드라이버의 최신버전으로의 업데이트를 실시.

참고

▲처음으로

0x00000024: NTFS_FILE_SYSTEM

원인

NTFS파일 시스템 드라이버들을 쓰거나 읽는데 필요한 드라이버 파일인 ntfs.sys 가 깨지거나 삭제되었을 경우 발생한다.

해결

1. SCSI나 ATA 하드웨어드라이버의 부조화로 발생하는 에러이다. 스카시 방식인 경우 termination 문제일 가능성이 높으며 케이블을 체크한다.

2. Event viewer에서 시스템 로그 안에 SCSI FASTFAT 과 관련된 에러사항을 체크한다.

3. 해당 제품 제조회사에서 제공하는 하드웨어 진단 프로그램과 진단 소프트웨어로 테스트 해본다.

참고

▲처음으로

0x00000027: RDR_FILE_SYSTEM

원인

원인이 확실히 밝혀지지 않은 오류다.

해결

(커널의)메모리 관리가 문제가 돨 경우가 있으며 메모리를 추가함으로서 해결되는 경우도 있다.

참고

▲처음으로

0x0000002E: DATA_BUS_ERROR

원인

1. 시스템 패리티 에러나 메모리 모듈, Level2 cache 나 비디오 메모리 손상으로 발생되는 에러이다.

2. 바이러스로 인해 발생 할 수 있다.

해결

1. 드라이버를 잘못 설치한 경우 발생할 수 있다. 파일이름을 보여주면 제거하거나 롤백 기능을 사용하여 문제를 해결한다.

2. 램의 물리적인 손상일 경우가 많으므로 데이터가 주소에 제대로 접근하지 못하는 경우가 많다. 이럴 경우는 램을 교체해본다.

3. 크랙된 응용프로그램을 설치한 경우에 발생할 수 있다.

참고

▲처음으로

0x00000035: NO_MORE_IRP_STACK_LOCATIONS

원인

장치드라이버 또는 램의 결함으로 인해 발생 할 수 있는 문제다.

해결

MSDN 기술자료를 참고

참고

STOP 0x00000035 When Using TDITrace from the Windows NT Resource Kit

style="BORDER-RIGHT: white 1px; BORDER-TOP: white 1px; BORDER-LEFT: white 1px; BORDER-BOTTOM: white 1px"

Problems Changing Mouse in Windows NT with IntelliPoint 2.0

▲처음으로

0x0000003F: NO_MORE_SYSTEM_PTES

원인

1. 이 에러는 여러가지 원인에 의해 발생 할 수 있다. 주로 PTEs(page table entries)-시스템의 입출력수행의 과도현상, PTEs (메모리 공간에 대한 정보)가 부족하거나 파손되는 경우에 발생 할 수 있는 에러이다.

2. 잘못된 드라이버 설치 시 발생 할 수 있다.

3. 응용프로그램들이 요구하거나 이용할 수 있는 충분한 크기의 메모리 블록이 부족한 경우에 발생하는 에러 이다.

해결

1. 최근에 설치한 장치 드라이버나 응용프로그램을 제거해 본다.

2. 저장장치 관련 응용프로그램이나 장치드라이버를 업데이트 한다.

3. 자세한 문제 해결법

참고

▲처음으로

▲처음으로

0x0000004E: PFN_LIST_CORRUPT

원인

memory management Page File Number list 손상 시 발생하는 오류다. 손상된 램 모듈 또는 bad memory descriptor lists를 장치드라이버가 생략하고 샐행 될 때 발생한다.

해결

class=nmsw_a_org style="BORDER-RIGHT: blue 1px solid; BORDER-TOP: blue 1px solid; BORDER-LEFT: blue 1px solid; BORDER-BOTTOM: blue 1px solid"

"STOP 0x0000004E PFN_LIST_CORRUPT" 오류 메시지 문제를 해결하는 방법

참고

class=nmsw_a_org style="BORDER-RIGHT: blue 1px solid; BORDER-TOP: blue 1px solid; BORDER-LEFT: blue 1px solid; BORDER-BOTTOM: blue 1px solid"

컴퓨터를 시작할 때 STOP 0x4E, STOP 0x1A, STOP 0x50, and STOP 0xA 오류가 발생한다.

▲처음으로

0x00000050: PAGE_FAULT_IN_NONPAGED_AREA

원인

1. 요청된 데이터가 메모리에 상주되어 있지 않을 때 발생하는 에러이다.

2. 호환이 안 되는 소프트웨어 설치 시(원격 엑세스, 바이러스 등) 에러를 일으키는 원인이 된다.

3. 결함이 있는 메모리(메인 메모리, L2 캐시 메모리,video RAM)

해결

1. 잘못된 드라이버 설치 시 에러를 발생시킬 수 있다. 드라이버를 삭제하고 업데이트된 드라이버를 재설치한다.

2. 만약 제조회사에서 드라이버를 찾지 못한다면 비슷한 종류의 드라이버로 교체 해 본다.

참고

▲처음으로

0x00000051: REGISTRY_ERROR

원인

레지스트리 또는 설정관리자와 관련된 오류다. 파일시스템 또는 하드웨어 문제 때문에 레스스트리 파일을 읽거 나 쓸때 발생하는 I/O 오류다. 메모리 관리오류가 원인이 되는 경우도 있다.

해결

class=nmsw_a_org

"STOP 0x00000051 REGISTRY ERROR" 오류 메시지 문제를 해결하는 방법

참고

▲처음으로

0x00000058: FTDISK_INTERNAL_ERROR

원인

결함허용 저장장치의 데이터 캐쉬의 문제 때문에 발생하는 오류.

해결

재부팅 후에도 오류가 지속되면 블루스크린 GENERAL CHECK LIST 에 따라 처리한다.

참고

▲처음으로

0x0000005A: CRITICAL_SERVICE_FAILED

원인

마지막으로 성공한 구성으로 부팅 시 윈도우 필수 서비스가 실행되지 않아 발생하는 오류다.

해결

1. 최근에 장착한 하드웨어 제거 후 재 부팅한다.

2. 호환되지 않는 하드웨어를 점검한다.

3. 메모리 덤프를 분석하여 원인이 되는 장치를 찾아본다.

참고

▲처음으로

0x0000006F: SESSION3_INITIALIZATION_FAILED

원인

윈도우 부팅 4단계에서 필요한 프로세스를 생성하지 못해 발생하는 오류다. 이 오류는 장치 드라이버 또는 주요 시스템 파일의 손상 때문에 발생 할 수 있다.

해결

윈도우 부팅시 발생하는 STOP 0x0000006F 오류 해결법

참고

디스크 관리자에서 시스템 디스크 또는 부팅 디스크가 "동적 디스크 읽을 수 없음"으로 표시된다

▲처음으로

0x00000076: PROCESS_HAS_LOCKED_PAGES

원인

이 오류는 장치 드라이버가 I/O 조작 후 잠긴 페이지를 해제하지 못해 발생하는 오류다.

해결

최신버전의 서비스 팩을 설치하면 해결가능하다. 또는 여기에서 레지스트리 패치를 다운받아 설치해 본다.

참고

Stop Error 0x00000076 or 0x000000CB When You Quit Your Backup Software

▲처음으로

0x00000077: KERNEL_STACK_INPAGE_ERROR

원인

1. 이 에러는 페이징(가상 메모리) 파일로부터 요구된 커널 데이터의 페이지가 메모리에서 읽어 들이거나 발견되지 않았을 때 생기는 오류이다.

2. 디스크 데이터 충돌이나 바이러스 감염에 의해서도 생기는 오류이다.

해결

1. 0xC000009D, or STATUS_DEVICE_NOT_CONNECTED 메시지는 결함 있는 파워케이블, 스카시 터미네이션, HDD 컨트롤러 문제일 가능성이 높다.

2. B127, or STATUS_DEVICE_DATA_ERROR 메시지는 하드디스크의 배드 블럭, 섹터로 요청된 데이터를 찾지 못할 때 나타난다.

3. 0xC000009D, or STATUS_DEVICE_NOT_CONNECTED 메시지는 결함 있는 파워케이블, 스카시 터미네이션, HDD 컨트롤러 문제일 가능성이 높다.

4. 0xC000016A, or STATUS_DISK_OPERATION_FAILED는 결함 있는 하드디스크의 베드섹터일 때 나타날 수 있다.

5. 0xC0000185, or STATUS_IO_DEVICE_ERROR, 결함 있는 파워케이블 ,스카시 터미네이션 ,하드디스크 컨트롤러 두 가지 디바이스장치가 동일한 시스템 리소스를 사용해서 생기는 오류이다.

참고

▲처음으로

0x00000079 or MISMATCHED_HAL

원인

1. 하드웨어추상화계층(Hardware Abstraction Layer)-입출력 인터페이스, 인터럽트 제어, 다중 프로세서 통신을 구현하는 데 필요한 하드웨어 종속적인 세부 사항을 처리하는 루틴과 커널 타입이 맞지 않아 생기는 오류이다.

2. ACPI 펌웨어 설정이 변경되었을 때 자주 일어나는 오류이다.

3. 이 에러는 주로 Ntoskrnl.exe Hal.dll 파일이 손상되었을 경우에 일어난다.

4. 듀얼 프로세서 또는 하이퍼 쓰레딩 프로세서의 설정 파일이 맞지 않아 발생할 수 있는 오류다.

해결

1. 복구 콘솔에서 두 파일을 복구시켜준다.

2. ACPI 기능을 disable 시켜 준 후 IRQ를 재설정해준다.

참고

Win XP Resource Kit

▲처음으로

0x0000007A: KERNEL_DATA_INPAGE_ERROR

원인

페이지 파일에서 커널데이터를 찾지 못하여 메모리로 로드하지 못해서 생기는 오류다.

해결

디스크 결함, 디스크콘트롤러 드라이버의 손상, 바이오스, 하드웨어 문제때문에 발생 할수 있다.

참고

▲처음으로

0x0000007B: INACCESSIBLE_BOOT_DEVICE

원인

1. 부팅하면서 시스템 파티션을 엑세스하지 못할 때

2. 잘못된 디바이스 드라이버가 설치되거나 업그레이드 될 때

3. 바이러스 감염에 의해서 발생 될 수 있다.

해결

1. 입출력시스템이나 컨트롤러 등의 드라이버 장치가 잘못 잡혀 있는지 확인한다.

2. 파일시스템이 부트 디바이스의 데이터를 인식하지 못했을 때는 복구콘솔에서 복구를 시도한다.

3. 새로운 디스크를 추가하거나 파티션설정을 다시 할 경우나 새로운 디스크 컨트롤러를 업그레이드할 때 boot.ini 부트 매니져 정보가 변경될 경우 생긴다. 이럴 경우 boot.ini 파일을 편집하거나 부트 매니져 파라미터를 조절한다.

4. 드라이버와 펌웨어를 업데이트한다.

참고

▲처음으로

0x0000007E: SYSTEM_THREAD_EXCEPTION_NOT_HANDLED

원인

윈도우가 잘못된 쓰레드를 생성하여 발생하는 오류다. 원인은 다양할 수 있다.

해결

하드웨어 호환성, 손상된 장치 드라이버 또는 시스템 서비스 점검, 바이러스, 응용프로그램오류 등을 점검해야 한다.

참고

▲처음으로

0x0000007F: UNEXPECTED_KERNEL_MODE_TRAPED

원인

1. 일반적으로 운영체제상의 커널모드(프로그램실행에 필요한 메모리 관리, 프로세서 관리 데이터 입출력, 하드웨어 제어를 수행)에서 발생하는 에러이다.

2. 과다한 CPU 오버클럭킹으로 인한 열 발생 때문에 오류가 발생한다.

해결

1. 모든 클럭과 버스 스피드 설정을 처음 설정값으로 변경시켜준다.

2. 크랙된 프로 그램을 쓰는 경우 발생 할 수 있다. 삭제해 본다.

3. 호환성이 부족한 응용프로그램을 인스톨할 경우 발생하는 에러이다.

4. 업데이트를 통하여 해결하거나 패치를 통하여 해결한다.

5. STOP 0x0000007F 오류의 일반적인 원인

참고

Windows가 응답하지 않고 "Stop Error 0x7F" 오류 메시지가 나타난다

▲처음으로

0x00000080: NMI_HARDWARE_FAILURE

원인

원인을 찾기 힘든 오류 중 하나다.

해결

1. 변경된 적이 있는 장치 드라이버 파일이나 하드웨어를 이전으로 되돌려본다.

2. 램모듈에 결함이 있는지 철저히 점검한다.

3. 바이러스검사와 하드디스크 손상을 진단해 본다.

4. CHKDSK를 실행시켜 파일시스템의 이상을 진단한다.

5. 하드웨어장장착상태와 전기적인 접점을 철저히 확인한다.

참고

How to Troubleshoot a STOP 0x00000080 NMI_HARDWARE_FAILURE Error Message

▲처음으로

0x0000008E: KERNEL_MODE_EXCEPTION_NOT_HANDLED

원인

하드웨어 호환성에 관련된 오류다.

해결

1. 주요 장치드라이버를 재설치 한다.

2. 바이오스를 업그레이드 한다.

참고

▲처음으로

0x0000009C: MACHINE_CHECK_EXCEPTION

원인

원인을 명확히 밝히기 어려운 오류중 하나다. 많은 경우 과열, 하드웨어 손상에 기인한다.

해결

오류 메시지: STOP: 0x0000009C(0x00000004, 0x00000000, 0xb2000000, 0x00020151) ...

참고

Stop 0x0000009C 화면 이해 및 문제 해결

▲처음으로

▲처음으로

0x000000A5: ACPI_BIOS_ERROR

원인

ACPI 바이오스에서 발생 하는 오류다. 운영체제수준에서 조치할 수 있는 오류가 아니다.

해결

Windows 2000을 설치한 후에 "STOP 0x000000A5"

참고

“Stop error 0xA5” error message when you dock a Win 2000-based portable computer to a docking station while the computer is running

▲처음으로

0x000000B4: VIDEO_DRIVER_INIT_FAILURE

원인

그래픽카드 드라이버의 손상 등의 문제로 윈도우가 그래픽모드로 진입 할 수 없는 오류다.

해결

안전모드로 부팅하여 장치드라이버를 점검하고 이전 드라이버로 복원을 시도해 본다.

참고

▲처음으로

0x000000BE: ATTEMPTED_WRITE_TO_READONLY_MEMORY

원인

장치 드라이버가 읽기전용으로 지정된 메모리 공간에 쓰기를 시도할 경우 나타난다. 대부분 잘못된 드라이버, 시스템서비스, 펌웨어를 설치한 후 나타난다.

해결

문제의 원인이 될 만한 요소를 사용중지, 제거, 롤백해 본다.

참고

▲처음으로

0x000000C1: SPECIAL_POOL_DETECTED_MEMORY_CORRUPTION

원인

장치드라이버 파일이 허락되지 않은 메모리공간(special memory pool)에 데이터를 쓰는 경우 발생하는 오류

해결

최신버전의 드라이버로 업그레이드한다.

참고

Windows 2000에서 Driver Verifier를 사용하여 장치 드라이버 문제를 해결하는 방법

▲처음으로

0x000000C2: BAD_POOL_CALLER

원인

커널모드 프로그램(프로세스) 또는 장치드라이버 파일이 잘못된 메모리 조작을 수행한 경우 발생한다. 주로 잘 못된 장치 드라이버나 버그있는 응용프로그램 때문에 발생한다.

해결

"Stop 0xC2" 또는 "Stop 0x000000C2" 오류 메시지를 디버깅하는 방법

참고

▲처음으로

0x000000C4: DRIVER_VERIFIER_DETECTED_VIOLATION

원인

이 오류는 Driver Verifier 가 찾아낸 치명적결함을 가진 일반 버그체크코드를 보여준다. 몇몇 파리메터들도 함께 보여준다.

해결

Windows 2000에서 Driver Verifier를 사용하여 장치 드라이버 문제를 해결하는 방법

참고

Error Message When You Use the Driver Verifier Utility to Monitor a Driver

▲처음으로

0x000000C5: DRIVER_CORRUPTED_EXPOOL

원인

대부분 장치드라이버로 인한 오류다.

해결

최근에 설치한 장치가 정확히 설치되었는지 점검하고 드라이버를 업데이트 한다.

참고

▲처음으로

0x000000C6: DRIVER_CAUGHT_MODIFYING_FREED_POOL

원인

장치드라이버 파일이 freed memory pool에 접근을 시도해서 발생하는 오류

해결

장치 드라이버를 교체한다.

참고

Windows 2000에서 Driver Verifier를 사용하여 장치 드라이버 문제를 해결하는 방법

▲처음으로

0x000000C7: TIMER_OR_DPC_INVALID

원인

장치드라이버의 잘못된 동작이 원인이 되어 발생하는 오류.

해결

Windows2000에서 DriverVerifier를 사용하여 장치 드라이버문제를 해결하는 방법

참고

▲처음으로

0x000000C9: DRIVER_VERIFIER_IOMANAGER_VIOLATION

원인

제목에서 원인을 추측할 수 있다. 드라이버 Verifier의 I/O매니져가 보여주는 메세지다.

해결

MSDN article

참고

Windows 2000에서 Driver Verifier를 사용하여 장치 드라이버 문제를 해결하는 방법

▲처음으로

0x000000CB: DRIVER_LEFT_LOCKED_PAGES_IN_PROCESS

원인

0x00000076 오류메세지 대신 나타날 수 있는 메시지. 블루스크린에 나타나는 드라이버 이름을 주의하여 살펴 봐야 한다

해결

참고

▲처음으로

▲처음으로

0x000000D1: DRIVER_IRQL_NOT_LESS_OR_EQUAL

원인

잘못된 장치드라이버를 설치한 후 나타날 수 있는 에러이다. 호환되지 않거나 손상된 램, 잘못된 가상메모리로 인해 발생 하기도 한다.

해결

1.드라이버 롤백기능이나 시스템 복원을 이용해서 이전 드라이버나 윈도우 상태로 복구한다.

2.바이러스 백신 소프트웨어, 백업 프로그램, 멀티미디어 소프트웨어, DVD 관련 프로그램 등을 제거해 본다.

3. RAM 문제나 손상된 가상 메모리 관리자에 대한 오류 메시지

참고

▲처음으로

0x000000D8: DRIVER_USED_EXCESSIVE_PTES

원인

1.주로 PTEs(page table entries)-시스템의 입출력수행의 과도현상 PTEs (메모 리 공간에 대한 정보)가 부족하거나 파손되는 경우에 발생 할 수 있는 에러이다.

2.응용프로그램들이 요구하거나 이용할 수 있는 충분한 크기의 메모리블록이 부족 한 경우에 발생하는 에러이다.

3.장치드라이버가 과도한 양의 커널메모리를 요청할 때 나타난다.

해결

1. 응용프로그램의 드라이버를 업데이트 해본다.

2. 윈도우XP PTEs 수를 늘리기 위해 registry entry, system pages를 제공한다
[PTEs를 늘리기 위한 방법]
실행-열기-regedit
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\
Session Manager\Memory Management에서

pagefoolsize의 값:0
systempages의 값 중
128M 메모리 값: 40000
256M 메모리 값: 110000으로 변경

참고

Win XP Resource Kit article

▲처음으로

0x000000E3: RESOURCE_NOT_OWNED

원인

NTFS 파일시스템 드라이버의 잘못된 동작에 기인한 오류다.

해결

최신버전의 서비스팩을 설치해야 한다.

참고

▲처음으로

0x000000EA: THREAD_STUCK_IN_DEVICE_DRIVER

원인

일반적으로 주로 비디오 어댑터에 문제가 발생할 때 나타나는 오류이다. 특히 드라이버를 (비디오 드라이버)를 새로 설치한 후에 나타나는 현상으로 드라이버가 잘못 잡히거나 못 잡을 때 나타나는 에러이다.

해결

최신 드라이버로 업데이트 한다.

참고

0x000000EA: THREAD_STUCK_IN_DEVICE_DRIVER

▲처음으로

0x000000ED: UNMOUNTABLE_BOOT_VOLUME

원인

최신 사양의 ATA 하드디스크에 잘못된 케이블을 장착한 시스템에서 윈도우 업그레이드 시볼 수 있는 오류다. 간혹 정상적인 시스템에서도 나타날 수 있다.

해결

Windows XP로 업그레이드하는 동안 "STOP 0x000000ED" 오류 메시지가 나타난다
Win XP Resource Kit

참고

캐싱이 활성화된 IDE 드라이브의 볼륨이 마운트되면 Stop 0x000000ED 오류 메시지가 나타난다

▲처음으로

0x000000F2: HARDWARE_INTERRUPT_STORM

원인

인터럽트 충돌에 의해 발생하는 메시지이다.

해결

같은 IRQ를 쓰는 장치를 삭제하고 장치를 다시 잡는다.

참고

Win XP Resource Kit

▲처음으로

0x000000F3: DISORDERLY_SHUTDOWN

원인

메모리 부족으로 인한 종료 실패 오류다.

해결

1.가상메모리 양을 충분히 늘려본다.
2.너무 많은 양의 메모리나 가상메모리를 요구하거나 종료를 거부하는 프로그램 혹은 드라이버를 찾아본다.

참고

MSDN article

▲처음으로

0x000000F4: CRITICAL_OBJECT_TERMINATION

원인

윈도우 핵심 프로세서 중 하나가 종료되어 나타나는 오류다. 그 결과로 윈도우에서 아무것도 할 수 없는 상황이 된다.

해결

이벤트뷰어에서 원인이 될 만한 사항을 조사한다.

참고

PRB: Connecting a Hard Disk Drive in Slave Only Mode Leads to System Halt During Resume From Standby

▲처음으로

▲처음으로

0x1000007E: SYSTEM_THREAD_EXCEPTION_NOT_HANDLED

원인

0x0000007E 와 본질적으로 같은 오류다.

해결

참고

MSDN article

▲처음으로

0x1000008E: KERNEL_MODE_EXCEPTION_NOT_HANDLED

원인

0x0000008E 와 동일한 오류다.

해결

참고

MSDN article

▲처음으로

0xC000009A: STATUS_INSUFFICIENT_RESOURCES

원인

윈도우 커널의 메모리 사용과 관련된 오류다.

해결

메모리가 사용 가능한데도 NT가 리소스 부족 오류를 보고한다

참고

▲처음으로

0xC0000135: UNABLE TO LOCATE DLL

원인

윈도우가 DLL 파일을 로드하는데 실패한 상태를 의미하는 오류다. 파일의 손상이나 제거, 레지스트리가 관련된 문제일 수 있다.

해결

1.DEPENDENCY WALKER로 손상되거나 사라진 모듈을 찾아본다.
2.레지스트리 복구나 시스템복원을 시도한다.

참고

시작 시 블루 스크린 중지 메시지 C0000135가 나타난다
Windows XP에서 손상된 레지스트리 복구

▲처음으로

0xC0000142: DLL Initialization Failure

원인

응용프로그램 실행 시 초기화에 실패한 경우 발생한다. 오류의 원인이 되는 모듈의 추적이 가능하다.

해결

DEPENDENCY WALKER로 손상되거나 사라진 모듈을 찾아본다

참고

Windows XP에서 Easy CD Creator를 실행하면 오류 메시지 발생
STOP 0xC0000142 in User32.dll Occurs on Restart or Upgrade of Windows NT 4.0
STOP: 0xC0000142 User32.dll Message on Restart After Upgrade to Windows NT 4.0
Users Are Automatically Logged Off When Attempting to Log on to Terminal Services

▲처음으로

0xC0000218: UNKNOWN_HARD_ERROR

원인

레지스트리에 설정된 중요파일의 로딩에 실패로 인해 발생하는 오류다. 하드디스크의 손상 또는 관련 하드웨어 의 손상이 원인이 될 수 있다. 또는 레지스트리 데이터가 메모리로 로딩되는 동안 디스크를 사용할 수 없는 상황 이거나 메모리에 패리티 오류가 발생한 오류일 가능성도 있다.

해결

1.시스템에 누전이 심하면 발생 할 수 있다. 접지해 본다.
2.오래된 메인보드에서 간혹 볼 수 있다.
3.하드디스크 손상 또는 케이블을 점검한다.
4.메모리의 결함을 점검한다.
5.
Stop 0xC0000218 오류 문제를 해결하는 방법.

참고

Windows XP가 시작될 수 없도록 방해하는 손상된 레지스트리를 복구하는 방법
레지스트리 손상 문제를 해결하는 방법

▲처음으로

0xC000021A: STATUS_SYSTEM_PROCESS_TERMINATED

원인

1.윈도우 커널모드의 주요기능(Winlogon 또는 Client Server Runtime Subsystem (CSRSS))을 사용할 수 없는 상태로 전환되어 발생하는 오류다. 위의 주요기능이 실행되지 않으면 윈도우는 정상기능이 불가능해진다.
2.관리자 계정에서 사용자의 폴더 및 파일 접근권한을 변경한 후에도 발생할 수 있 다.

해결

Win XP Resource Kit

참고

GoBack으로 인해 Stop 오류 C000021a 발생
Internet Explorer 유지 관리 정책으로 인해 Winlogon에서 액세스 위반이 발생할 수 있다

▲처음으로

0xC0000221: STATUS_IMAGE_CHECKSUM_MISMATCH

원인

잘못된 장치드라이버, 손상된 시스템 파일, 디스크 오류, 메모리결함 등의 이유로 발생 할 수 있다.

해결

Win XP Resource Kit

참고

Error Message: STOP: C0000221 Unknown Hard Error or STOP: C0000221
Err Msg: STOP: C000026C 장치 드라이버를 로드할 수 없음
"중지: C0000221 알 수 없는 하드 오류" 또는 "중지: C0000221 " 오류 메시지 발생

▲처음으로

0xC0000244

원인

A “Stop 0xc0000244” Error Occurs When You Audit Policy Changes If CrashOnAuditFail Is Turned On

해결

참고

관련된 자료가 없습니다

▲처음으로

0xC000026C

원인

장치 드라이버와 관련된 문제다.

해결

Err Msg: STOP: C000026C 장치 드라이버를 로드할 수 없음

참고

0xDEADDEAD: MANUALLY_INITIATED_CRASH1

원인

사용자가 커널디버거나 키보드를 이용하여 의도적으로 재현한 블루스크린.

해결

참고

 

Windows 8 그래픽의 뛰어난 하드웨어 가속 성능

 

컴퓨터 그래픽의 기본 원칙은 고성능입니다. 개인 컴퓨팅의 초창기에는 대부분의 추가 그래픽 카드가 CAD/CAM 및 게임 같은 특수 응용 프로그램에만 초점을 맞추었습니다. 심지어 모든 그래픽 성능을 인터페이스 및 경험 개선에 사용해야 한다는 의견도 있었습니다. 최초의 PC용 그래픽 카드 중 하나인 S3 Graphics의 “Windows Accelerator”는 화면의 창을 더 빠르게 움직여서 사용자 경험에 집중했습니다. 그래픽 하드웨어의 발전에 따라 개발자들이 하드웨어 상호 작용에 사용하는 방법 역시 발전했습니다.

DirectX는 개발자들이 PC의 그래픽 하드웨어를 사용하여 텍스트, 도형 및 3-D 장면을 그려서 화면에 표시할 수 있는 일반 응용 프로그램 프로그래밍 인터페이스 또는 API를 제공하는 Windows의 일부입니다. 또한 시간이 지나면서 DirectX는 기능 및 성능이 모두 발전했습니다. 초창기에는 DirectX가 주로 게임에만 주로 사용되었습니다. 하지만 응용 프로그램의 발전으로 그래픽 중심의 사용자 경험을 제공하면서 보다 나은 성능과 풍부한 시각적 효과를 제공하기 위해 많은 응용 프로그램에서 DirectX를 사용하기 시작했습니다.

Windows 8의 그래픽 경험에 대한 계획

우리는 Windows 8 그래픽 작업을 계획할 때 사용자가 앱 및 Windows 자체와 상호 작용할 수 있는 새롭고 시각적으로 풍부한 방법을 개발하기로 했습니다. 또한 Metro 스타일 앱을 만들 수 있는 새로운 플랫폼을 개발하고 이전보다 훨씬 다양한 하드웨어를 목표로 삼기로 했습니다. 뛰어난 그래픽 플랫폼을 가지고 작업을 시작하기는 했지만 이러한 목표를 달성하려면 해야 할 일이 많았습니다. 우리는 다음과 같은 4가지 주요 목표를 세웠습니다.

  1. 모든 Metro 스타일 경험이 부드럽고 신속하게 렌더링되도록 합니다.
  2. 모든 Metro 스타일 앱에 사용 가능한 하드웨어 가속 플랫폼을 제공합니다.
  3. DirectX에 새 기능을 추가하여 멋진 시각적 경험을 제공합니다.
  4. 지금껏 경험할 수 없었던 가장 광범위한 그래픽 하드웨어를 지원합니다.

이러한 각각의 목표는 Windows 8 개발의 서로 다른 측면을 다루지만 그래픽 플랫폼의 뛰어난 성능과 기능에 의존한다는 공통점이 있습니다.

성능을 위한 계획

Windows의 그래픽 성능은 운영 체제와 CPU, GPU(graphics processing unit) 및 관련 디스플레이 드라이버로 구성된 하드웨어 시스템에 따라 좌우됩니다. 새로운 Metro 스타일 앱을 위한 뛰어난 경험을 제공하기 위해서는 소프트웨어 플랫폼과 하드웨어 시스템의 뛰어난 성능을 보장해야 했습니다.

과거에는 다양한 벤치마크 및 앱을 사용하여 DirectX의 성능을 측정했습니다. 이러한 방식은 주로 3D 게임에서 사용되었습니다. 지금도 게임이 매우 중요하지만 이러한 기존의 그래픽 성능 측정 방식이 그래픽 중심의 2D 주류 앱에 필요한 모든 정보를 제공하지는 못했습니다.

그래서 작업 진행 상황을 추적할 수 있는 시나리오 중심의 테스트 및 메트릭을 새로 만들었습니다. 우리가 사용하는 메트릭은 다음과 같습니다.

1. 프레임 속도

우리는 프레임 속도를 FPS(초당 프레임 속도)로 표시합니다. 이 메트릭은 게임 벤치마크에서 광범위하게 사용되며, 비디오 콘텐츠 및 기타 앱에서도 중요한 요소입니다. 화면에 애니메이션이 부드럽게 표시되는 프레임 속도는 60FPS입니다. 대부분의 컴퓨터 화면이 60Hz에서 새로 고침을 수행하기 때문에 이 속도를 목표로 삼았습니다. 이 프레임 속도라면 Windows에서 '손가락 동작과 일치'하는 터치 조작을 통해 매우 부드러운 애니메이션을 제공할 수 있습니다.

2. 결함 횟수

프레임 속도가 중요한 메트릭이지만 전체 성능을 나타내지는 않습니다. 예를 들어, 10분 동안 벤치마크를 실행하여 평��� 60FPS가 나왔다고 하면 얼핏 듣기에 완벽하다고 생각할 수 있습니다. 하지만 테스트의 최저 프레임 속도가 얼마인지는 알 수 없습니다. 예를 들어, 처리량이 많은 부분에서 프레임 속도가 일시적으로 10FPS까지 떨어졌다면 애니메이션이 원활하게 실행되지 않습니다. 결함 횟수 메트릭은 렌더링이 1/60초를 초과하여 프레임 속도가 감소한 횟수를 측정합니다. 동시에 발생하는 프레임 누락 횟수도 측정합니다. 이 테스트의 목적은 애니메이션을 실행하는 동안 프레임이 누락되지 않게 하는 것입니다.

3. 최초 프레임까지 걸리는 시간

사용자들은 앱이 신속하게 실행되기를 기대합니다. 따라서 DirectX 초기화 속도가 빨라야 합니다. '최초 프레임까지 걸리는 시간'이란 앱을 탭하거나 클릭하여 실행한 순간부터 화면에 앱의 첫 번째 프레임이 나타날 때까지 걸리는 시간을 말합니다. 이 메트릭을 측정하기 위해 그래픽 시스템을 분석하고 최적화할 수 있는 간단한 앱을 개발하여 그래픽 장치를 초기화하고, 필요한 메모리를 할당하는 등의 작업에 걸리는 시간을 측정했습니다. 이 테스트를 통해 DirectX 설정 시간을 대폭 줄일 수 있습니다.

4. 메모리 사용량

그래픽 구성 요소에서 사용하는 메모리 양이 많을수록 앱에서 사용할 수 있는 메모리 양이 줄어듭니다. 시스템 메모리의 대부분을 앱에서 사용할 수 있다면 최상의 앱 성능을 경험하는 동시에 더 많은 앱을 실행할 수 있습니다. 앱에서는 시스템 메모리와 GPU 메모리를 모두 사용합니다. GPU 메모리는 주로 이미지, 기하 도형 및 텍스트를 그리는 등의 렌더링 작업에 사용됩니다. CPU를 사용하는 그래픽 작업이 있기 때문에 시스템 메모리도 사용합니다.

메모리 사용량의 특징을 파악하기 위해 다음과 같은 시나리오에서 시스템이 사용하는 메모리를 측정했습니다.

  • 앱이 유휴 상태. 즉, 아무 작업도 하지 않으며 화면에 새 정보를 렌더링하거나 표시하지 않습니다.
  • 앱이 화면에 정보 표시. 이 시나리오는 간단한 그리기의 기본 메모리 사용량을 나타냅니다.
  • 텍스처 생성. GPU에서 이미지 개체를 대규모로 만드는 데 사용된 메모리를 나타냅니다.
  • 꼭지점 버퍼 생성. 기하 도형을 생성하는 메모리 오버헤드를 나타냅니다.
  • GPU 데이터 업로드. GPU에 데이터를 업로드하는 작업과 관련된 메모리 오버헤드를 측정합니다.

다양한 유형의 앱 및 시나리오에 걸쳐 메모리 사용량을 측정한 결과 DirectX 및 디스플레이 드라이버를 더욱 최적화할 수 있었습니다.

5. CPU 사용량

대부분의 그래픽 작업은 GPU 외에 CPU까지 사용합니다. 예를 들어, 앱이 무엇을 그릴지 계산할 때 이러한 계산은 일반적으로 CPU에서 수행됩니다. 작업에서 CPU를 많이 사용할수록 CPU가 다른 작업에 할당할 수 있는 사이클이 줄어들기 때문에 CPU 사용량을 이해하는 것이 중요합니다. 그래픽 성능과 시스템 전반의 응답성을 높이기 위해 CPU와 GPU 사이에 작업 균형을 효율적으로 유지하는 것이 중요합니다.

이러한 벤치마크 및 메트릭은 원활한 사용자 경험과 앱을 제공하고 성능을 높이는 데 많은 도움이 됩니다. 또한 주류 앱을 이해하는 데도 많은 도움이 됩니다. 물론 우리는 지금도 산업 벤치마크, 게임 및 기타 성능 측정 방법을 사용하고 있습니다.

하드웨어 가속 주류 그래픽

주류 그래픽을 살펴보는 방법은 다양합니다. 우리는 사용자에게 탁월한 성능과 경험을 제공하기 위해 Metro 스타일 앱과 데스크톱 앱의 다양한 예를 연구하여 그래픽 하드웨어가 사용되는 방식을 파악했습니다. 특히, Internet Explorer 9, Windows Live 메일Windows Live Messenger는 DirectX를 매우 효과적으로 사용합니다. 이러한 앱은 DirectX를 활용하여 작업을 깔끔하게 처리하므로 다른 앱이 나아갈 방향을 제시하는 좋은 본보기입니다. 이에 따라 주류 앱을 빠르고 멋지게 보이도록 만들기 위해 많은 투자를 했습니다.

텍스트 성능 개선

텍스트는 Windows에서 가장 많이 사용되는 그래픽 요소이기 때문에 텍스트 렌더링 성능을 개선하면 사용자 경험을 향상시킬 수 있습니다. 고품질 고성능 텍스트 디스플레이는 웹 페이지, 이메일 프로그램, 인스턴트 메시지 및 기타 읽기용 앱에 많은 도움이 됩니다.

Metro 스타일 디자인 언어는 풍부한 타이포그래피를 선보이고 다양한 Metro 스타일 경험은 뛰어난 가독성을 제공하는 데 초점을 두고 있습니다. DirectWrite는 고품질 타이포그래피를 제공하고, 렌더링에 사용되는 글꼴 데이터를 초고속으로 처리하고, 업계 최고의 전역 텍스트를 지원합니다. 우리는 Metro 스타일 앱의 기본 텍스트 렌더링을 최적화하여 보다 나은 성능과 효율성을 제공함으로써 Windows 8의 텍스트 성능을 지속적으로 개선하는 한편, 타이포그래피 품질 및 전역 텍스트 지원을 유지하고 있습니다.

아래의 막대 차트는 이 작업의 결과로 개선된 성능을 표시한 것으로, 다음 텍스트 시나리오에 대한 측정값이 포함되어 있습니다.

  • 웹 페이지 또는 Word 문서에서 볼 수 있는 단락 형태의 본문 크기 텍스트 형식으로 가득한 화면 렌더링
  • 단추 레이블 또는 메뉴 같은 사용자 인터페이스 컨트롤에서 볼 수 있는 본문 크기의 텍스트로 가득한 화면 렌더링
  • Metro 스타일 앱의 제목이나 웹의 블로그 글 및 뉴스 기사 제목에서 볼 수 있는 제목 크기의 텍스트로 가득한 화면 렌더링

 

터치 스크린에서 장문의 문서를 스크롤할 때 성능이 개선되었다는 것을 확연하게 느낄 수 있습니다. 또한 문자 렌더링 시간이 감소하여 CPU 사이클에 여유가 생긴 만큼 빈번하게 발생하는 터치 입력을 처리하거나 좀 더 복잡한 문서 레이아웃을 표시하는 등의 다른 작업을 수행할 수 있습니다.

기하 도형 렌더링 성능 개선

텍스트 외에 2D 기하 도형 렌더링 성능도 획기적으로 개선되었습니다. 기하 도형 렌더링은 아래의 예와 같이 테이블, 차트, 그래프, 다이어그램, 사용자 인터페이스 요소 등을 만드는 데 사용되는 핵심 그래픽 기술입니다. Windows 8의 경우 Metro 스타일 앱 및 Internet Explorer 10 기반의 웹 페이지에 사용되는 HTML5 Canvas 및 SVG 기술의 성능이 집중적으로 개선되었습니다.

Windows 8의 날씨 앱은 기하 도형을 사용하여 과거의 기온 및 강수량 데이터 그래프를 표시합니다.

Direct2D는 기하 도형을 그릴 때 앱에서 2D 형상(예: 사각형, 타원, 경로)으로 그려야 하는 항목, 형상의 크기 및 위치, 브러시 색상 및 스트로크 스타일을 포함한 렌더링 스타일에 대한 지침을 가져옵니다. 그런 다음 그러한 지침을 일련의 삼각형 및 명령으로 전환한 후 Direct3D로 보내 원하는 결과를 생성합니다. 이 전환 과정을 '공간 분할(tessellation)'이라고 합니다.

Windows 8의 기하 도형 렌더링 성능을 개선하기 위해 두 가지 방법으로 공간 분할(tessellation)과 관련된 CPU 사용량을 줄이는 작업에 집중했습니다.

첫 번째로, 사각형, 선, 모서리가 둥근 사각형, 타원 등의 간단한 기하 도형을 렌더링할 때 공간 분할(tessellation) 구현을 최적화했습니다. 아래는 이러한 성능 개선의 효과를 보여 주는 차트입니다.

두 번째로, 불규칙 기하 도형(예: 지도의 지리적 경계)의 렌더링 성능을 개선하기 위해 'TIR(Target Independent Rasterization)'라고 하는 새로운 그래픽 하드웨어 기능을 사용하고 있습니다.

TIR은 Direct2D가 공간 분할(tessellation)에 사용하는 CPU 사이클을 줄이기 때문에 시각적 품질의 희생 없이 보다 신속하고 효율적으로 GPU에 그리기 지침을 제공합니다. TIR은 DirectX 11.1을 지원하는 Windows 8용으로 설계된 새 GPU 하드웨어에서 사용할 수 있습니다.

아래는 TIR을 지원하는 DirectX 11.1 GPU의 다양한 SVG 파일에서 앤티앨리어싱된 기하 도형을 렌더링할 때 성능이 얼마나 개선되는지를 보여 주는 차트입니다.

우리는 그래픽 하드웨어 파트너와 긴밀하게 협력하여 TIR을 설계했습니다. 그러한 협력 덕분에 성능을 획기적으로 개선할 수 있었습니다. DirectX 11.1 하드웨어는 이미 시장에 출시되었으며 보다 다양한 TIR 지원 제품을 제공하기 위해 파트너와 협력하고 있습니다.

이미지 렌더링

이미지는 사용자 인터페이스, 웹 페이지 및 기타 앱 콘텐츠를 포함한 다양한 시나리오에서 광범위하게 사용됩니다. 웹 사이트에서는 일반적으로 그림을 위한 JPEG과 PNG 및 GIF 파일을 사용하여 단추 그래픽 같은 사용자 인터페이스 요소를 효율적으로 저장합니다.

또한 Windows에서는 디지털 사진 작업도 매우 빈번하게 이루어지고 있으며, Windows 사용자가 PC에서 디지털 사진을 보고 조작하는 횟수가 가파르게 증가하고 있습니다.

JPEG, GIF 및 PNG 형식을 사용한 이미지 및 사진 작업의 성능이 여러 모로 개선되었습니다.

JPEG의 경우 다음과 같이 성능이 개선되었습니다.

  • 모든 CPU 아키텍처의 SIMD 사용량을 확장하여 보다 신속하게 이미지 디코딩
  • 보다 신속한 Huffman 디코딩 및 인코딩

PNG의 경우 다음과 같은 성능이 개선되었습니다.

  • 모든 CPU 아키텍처의 SIMD 사용량을 확장하여 보다 신속하게 이미지 디코딩
  • zlib 구현을 최적화하여 보다 신속하게 이미지 인코딩 및 디코딩

그 외에도 픽셀 형식 변환과 이미지 배율을 개선했습니다. 그 결과 모든 앱의 이미지 디코딩 및 렌더링 속도가 향상되었습니다.

아래는 테스트 앱을 사용하여 다양한 이미지를 디코딩 및 렌더링하는 시간을 측정한 비디오입니다. Windows 8에서 64장의 이미지를 렌더링하는 시간은 4.38초에 불과하며, Windows 7의 7.28초에 비해 40% 빠른 것으로 나타났습니다.

렌더링 및 표시

더욱 다양한 시나리오를 지원하도록 DirectX를 개선하는 과정에서 앱이 콘텐츠를 렌더링하여 표시하는 방식을 최적화하는 작업에도 많은 시간을 투자했습니다. 3D 게임이 콘텐츠를 그리는 방식과 Internet Explorer 같은 주류 앱이 콘텐츠를 그리는 방식 간에 몇 가지 큰 차이점이 있습니다. 아래의 게임 비디오를 예로 들겠습니다. 이런 게임에서는 전체 화면이 신속하게 바뀝니다. '카메라'가 차량 주위를 이동할 때 구름이 하늘을 가로지르고, 엔진에서 연기가 피어 오르는 장면을 생생하고 현실감 있게 표현하려면 앱에서 매 프레임마다 전체 화면을 다시 그려야 합니다.


다른 미디어 플레이어로 보려면 이 비디오를 다운로드하세요.
고화질 MP4 | 저화질 MP4

이제부터는 아래 웹 페이지를 예로 들겠습니다. 이 웹 페이지에는 텍스트와 비디오가 모두 포함되어 있습��다. 비디오가 재생되는 동안 브라우저는 비디오만 포함하는 창의 일부를 업데이트해야 합니다. 사용자가 페이지를 위로 스크롤할 경우 페이지 위쪽의 새로운 텍스트만 렌더링하면 됩니다. 나머지 텍스트는 이미 렌더링되었기 때문에 이동하기만 하면 됩니다.

매 프레임마다 전체 화면을 다시 그릴 필요가 없는 앱을 개선하기 위해 DirectX에서 화면의 일부만 다시 그리는 방식과 스크롤 방식을 최적화했습니다. 이 작업은 앱의 효율성과 성능을 개선할 뿐만 아니라 중복 그리기가 감소하므로 그래픽 데이터를 메모리에 복사하는 시간이 줄어들고, 전력 소비를 줄여서 배터리 수명을 연장합니다.

전체 플랫폼 개선

이 모든 변경 작업은 매우 신속하고 부드러운 Windows 렌더링 경험을 제공하는 데 도움을 줍니다. 주로 DirectX의 기능에 대해 설명했지만 이러한 작업은 기본적으로 전체 플랫폼 하드웨어 가속을 개선합니다. Metro 스타일 플랫폼은 DirectX를 기반으로 개발되었기 때문에 모든 앱이 시스템의 그래픽 하드웨어를 최대한 활용할 수 있습니다.

Direct2D 및 Direct3D를 사용하여 멋진 시각적 경험 생성

Direct2D 효과

최근 들어 이미지에 스타일 효과를 적용하는 사용자 경험이 점점 보편화되고 있습니다. 스타일 효과는 앱 영역을 강조하고, 화면의 특정 부분에 관심을 집중시키고, 화면을 멋지게 표현하는 데 도움을 줍니다. 우리는 Windows 8에서 개발자들이 이러한 유형의 효과를 간편하게 앱에 적용할 수 있는 그래픽 기능을 개발하고자 노력했습니다. 그러한 노력의 일환으로 이미지 처리가 유용할 수 있는 두 주요 영역을 살펴보았습니다.

  • 사용자 인터페이스 이미지
    Metro 스타일 경험은 동적 시각적 요소를 사용합니다. 우리는 Metro 스타일 앱이 실시간으로 이미지를 처리하도록 만들고자 했습니다. 3D 전환 효과에서 원근 변환, 흐리게 하는 효과 및 사용자 인터페이스 요소의 강조까지 이 범위에 포함됩니다.
  • 사진
    사진을 처리하는 앱은 다양한 이미지 처리 기능이 필요할 때가 자주 있습니다. 노출, 밝기 및 대비 조정, 생동감 및 선명함 적용, 고급 곡선 사용 그리고 렌즈 보정은 앱에 디지털 사진의 품질을 높이는 효과를 제공합니다.

이러한 유형의 경험을 제공하기 위해 모든 이미지에 고품질 하드웨어 가속 효과를 적용할 수 있는 새로운 API 모음인 'Direct2D 효과'를 추가했습니다. Direct2D 효과는 다음과 같은 장점이 있습니다.

  • 다양한 앱의 요구 사항을 만족하는 최적 품질의 이미지 효과 렌더링을 제공합니다.
  • 효과는 하드웨어 가속이며 다양한 그래픽 하드웨어에서 작동합니다.
  • 간단한 API를 사용하여 최소의 프로그래밍으로 멋진 효과를 적용할 수 있습니다.
  • 다양한 기본 효과를 제공합니다.
  • 채널당 최대 32비트에 달하는 대형 이미지 크기를 지원합니다.
  • 사용자 지정 효과를 기본 효과 또는 다른 사용자 지정 효과와 결합할 수 있습니다.

Direct2D 효과는 Windows 8의 새로운 사용자 경험 중 일부를 지원합니다. 예를 들어, 시작 화면의 타일을 탭할 때 해당 타일은 3D 원근 변환 효과를 사용하여 올바른 방향으로 '기울어집니다'. 또한 플랫폼의 나머지 부분도 지원합니다. 예를 들어, Direct2D 효과를 사용하여 SVG 필터 효과 및 CSS 3D 전환이 구현됩니다.

공통 기반이 되는 Direct3D 11.1

개발자가 새로운 경험을 제공할 수 있도록 지원하기 위해 Direct2D 효과 같은 새로운 기능을 추가하는 작업 외에도 기존 DirectX 기능을 간편하게 사용할 수 있는 방법을 살펴보았습니다.

또한 수년에 걸친 개발 과정을 통해 DirectX에 다양한 기능을 추가했습니다. Direct3D 9에서는 비디오 디코딩의 하드웨어 가속이 프로그래밍 가능한 셰이더와 함께 제공되었습니다. Windows 7에서는 Direct2D를 추가하여 Direct3D 10을 기반으로 구축했습니다. 그 당시 GPU에서 고성능 계산을 수행하는 새로운 시스템인 DirectCompute도 개발했는데 이 시스템은 Direct3D 11의 일부가 되었습니다. 이러한 업데이트 덕분에 DirectX는 그래픽 및 GPU 계산과 관련된 매우 포괄적인 기능을 갖게 되었지만 비디오, 2D 그래픽, 3D 그래픽, 텍스트 및 DirectCompute를 함께 사용하는 앱을 개발하기가 점점 어려워졌다는 부작용도 발생했습니다.

Windows 8에서는 새 Direct3D 11.1 API가 2D 그래픽 및 텍스트, 이미지 처리, 3D 그래픽 및 계산, 비디오의 기반이 되었습니다. 새 API 덕분에 단일 화면에 다양한 유형의 콘텐츠를 조합하는 작업이 훨씬 간단해졌습니다. 단일 API가 렌더링과 관련된 모든 GPU 리소스를 관리하기 때문입니다. 또한 이로 인해 앱 코드에 다중 그래픽 장치 관리 개체를 생성하는 작업과 관련된 중복성이 제거되므로 메모리 사용량이 감소합니다. 그 외에도 Direct3D 11.1은 앱에서 이기종 그래픽 하드웨어의 다양한 기능에 액세스할 수 있는 일관적인 방법을 제공합니다. 앱에서 어떤 기능을 사용할 수 있는지 확인한 후 그 기능만 사용하도록 유도하는 매커니즘을 제공합니다. 따라서 GPU가 태블릿에 긴 배터리 수명을 제공하도록 설계되었든 고성능 게임용 데스크톱 PC에 적합하게 설계되었든 앱에서 GPU의 기능을 최대로 활용할 수 있습니다.

다양한 그래픽 하드웨어

사람들은 Windows 시리즈가 출시될 때마다 그래픽 플랫폼과 그래픽 하드웨어 기능이 더욱 풍부해지고 강력한 성능을 제공할 것이라고 기대합니다. 그래픽 하드웨어 업계에서 더욱 빠르고 강력한 GPU를 지속적으로 개발하고 있기 때문에 아직까지는 이러한 기대에 어긋나지 않고 있습니다. 하지만 휴대용 저전력 장치의 등장으로 다양한 하드웨어가 보급된 Windows 7부터 사람들의 기대가 변하기 시작했습니다.

Windows 8을 개발 중인 현재, 새로운 고성능 그래픽 카드와 다양한 저전력 휴대용 장치가 속속 개발되면서 다양한 하드웨어에 대한 추세가 지속되고 있으며 점차 속도가 빨라지고 있습니다. Windows 8은 1W의 전력을 소모하여 항상 연결 상태를 유지하는 태블릿에서 총 1,000W 이상의 전력을 사용하는 다중 그래픽 카드가 장착된 고성능 시스템까지 그 어느 때보다도 다양한 하드웨어를 지원합니다. 이러한 다양성은 새로운 설계 방향을 모색하는 계기가 되었습니다.

시각적으로 뛰어난 고성능 경험을 제공한다는 우리의 목표는 변함 없습니다. 휴대성이 뛰어난 장치의 경우 기본 전원으로 배터리를 사용하기 때문에 배터리 수명을 최대한 늘려야 합니다. 이러한 새 폼 팩터의 성능 및 전력 요구 사항을 모두 만족하기 위해 그래픽 하드웨어 파트너 중 상당수가 새로운 GPU 아키텍처를 사용했습니다.

저전력 시스템

'타일 기반 렌더링'은 성능과 긴 배터리 수명을 모두 만족하기 위한 저전력 시스템 설계에서 일반적으로 사용되는 그래픽 아키텍처 중 하나입니다. 그래픽 엔진에서 작지만 성능이 매우 뛰어난 메모리 캐시를 사용하여 렌더링을 수행하는 것이 타일 기반 렌더링 접근 방식의 일반 개념입니다. 그러면 GPU가 전체 화면을 한 번에 렌더링하지 않고 각 타일의 동일한 명령 집합을 반복적으로 처리하여 화면을 섹션(또는 타일)별로 렌더링합니다. 이는 메모리 오프칩을 사용하는 작업을 최소화하여 전력 소모량을 줄이고 성능을 높이기 위함입니다. 메모리 오프칩에 반복적으로 액세스하면 시간이 오래 걸리고 전력 소모량도 많습니다.

이러한 타일 기반 아키텍처의 효율성을 높이기 위해 타일이 렌더링되는 횟수를 최소화할 수 있는 여러 플래그, 힌트 및 새 API를 추가했습니다. 타일 기반 렌더링 아키텍처를 사용하는 그래픽 하드웨어에서 실행 중인 앱의 효율성을 높이기 위해 Metro 스타일 앱 개발 플랫폼에 이러한 요소를 통합했습니다.

그래픽 하드웨어의 전력 소모량을 줄이는 동시에 높은 성능을 구현할 수 있는 또 다른 방법은 낮은 비트 정밀도를 사용하여 그래픽 렌더링 계산을 수행하는 것입니다. 이렇게 하면 GPU가 데이터를 보다 효율적으로 구조화하여 더 많은 데이터를 동시에 처리할 수 있으므로 필요한 전력량이 감소합니다. Windows 8에서는 앱에서 그래픽 계산에 필요한 정밀도 크기를 지정할 수 있는 새 메커니즘이 추가되었습니다. 예를 들어, 이미지 데이터가 구성 요소당 8비트인 다중 이미지 사용자 지정 혼합을 수행하는 경우 기본값인 32비트가 아닌 10비트의 정밀도로 혼합 계산을 수행할 수 있습니다. 정밀도가 낮아지면 화질에는 영향이 없지만 전력 소모량은 감소합니다.

탁월한 성능, 부드러운 렌더링


다른 미디어 플레이어로 보려면 이 비디오를 다운로드하세요.
고화질 MP4 | 저화질 MP4

지금까지 살펴본 것처럼 Windows 8에서 매우 빠르고 부드럽고 생생한 사용자 경험을 구현하기 위해 수많은 작업을 했습니다. 작업 상황을 측정하는 새로운 방법부터 그래픽 플랫폼 사용 최적화 및 새로운 하드웨어 기능에 이르기까지 이제껏 볼 수 없었던 최상의 Windows 그래픽 플랫폼을 개발했습니다. 물론 탁월한 성능과 양안식 3D와 같은 새로운 기능을 지원하는 몰입감이 뛰어난 3D 게임에도 계속 도전하고 있습니다.

고성능 게임용 장치부터 항상 인터넷에 연결되는 가벼운 태블릿에 이르기까지 Windows 8은 단일 운영 체제를 통해 매우 폭넓은 그래픽 하드웨어를 지원합니다. 이 글을 통해 Windows 8의 풍부한 경험이 어떤 방식으로 구현되었는지 이해하는 계기가 되기를 바랍니다.

- Rob Copeland

 

참고: 이 글을 작성하는 데 많은 도움을 주신 Dan McLachlan, Kam VedBrat, Steve Lim, Jianye Lu에게 감사의 말씀을 전합니다.

 

 

 


윈도우 7 체험 지수 - 프로세서(CPU) 점수

 

찾고자 하는 프로세서를 Ctrl + F를 이용해서 찾으세요.

제조사, 상표, 코드네임, 번호 등을 따로 적었기 때문에 한꺼번에 치면 검색이 안 되므로, 되도록 프로세서 번호

(: E6600)로 검색하고, 상표 혹은 코드네임이 맞는지 확인하세요

 

첨부 파일:

윈도우 7 체험 지수 - 프로세서(CPU) 점수.docx

윈도우 7 체험 지수 - 프로세서(CPU) 점수.pdf

 

 

 


CPU 성능 순위 모음



Ctrl + F 로 찾으시면 됩니다~


CPU NamePassmark CPU Mark가격대성능비
Intel Xeon W3690 @ 3.47GHz1117910.35
Intel Core i7 995X @ 3.60GHz10862NA
Intel Core i7 980X @ 3.33GHz1060610.1
Intel Core i7 990X @ 3.47GHz1059710.6
Intel Xeon X5690 @ 3.47GHz10184NA
Intel Core i7 970 @ 3.20GHz995617.17
Intel Xeon X5680 @ 3.33GHz99046.04
Intel Xeon W3680 @ 3.33GHz98808.85
Intel Core i7 2600K @ 3.40GHz964730.63
Intel Xeon X5670 @ 2.93GHz93586.46
Intel Xeon E31280 @ 3.50GHz9350NA
Intel Xeon X5675 @ 3.07GHz93266.3
Intel Xeon E31245 @ 3.30GHz9154NA
Intel Xeon E31275 @ 3.40GHz9142NA
Intel Core i7 2600 @ 3.40GHz888629.63
Intel Xeon W3670 @ 3.20GHz8628NA
Intel Xeon X5660 @ 2.80GHz85927
Intel Xeon X7560 @ 2.27GHz8591NA
Intel Xeon E31235 @ 3.20GHz8261NA
Intel Core i7 2920XM @ 2.50GHz8028NA
Intel Xeon X5650 @ 2.67GHz79707.92
Intel Xeon E31240 @ 3.30GHz7856NA
Intel Xeon X5687 @ 3.60GHz7673NA
Intel Core i7 2820QM @ 2.30GHz762612.71
Intel Core i7 2600S @ 2.80GHz7505NA
Intel Core i7 X 880 @ 3.07GHz7442NA
Intel Core 975 @ 3.33GHz73265
Intel Core i7 2720QM @ 2.20GHz729318.23
Intel Core i5 2500K @ 3.30GHz713632.89
Intel Xeon E5645 @ 2.40GHz7116NA
Intel Core i7 975 @ 3.33GHz70436.75
Intel Xeon W5590 @ 3.33GHz68574.08
Intel Xeon X5677 @ 3.47GHz68084.09
Intel Core i7 965 @ 3.20GHz68076.88
Intel Xeon W3570 @ 3.20GHz67466.19
Intel Xeon W3580 @ 3.33GHz66896.17
Intel Core i7 960 @ 3.20GHz668224.84
Intel Core i7 875K @ 2.93GHz652419.19
Intel Core i5 2500 @ 3.30GHz650330.98
Intel Core i7 880 @ 3.07GHz648311.12
Intel Xeon W 570 @ 3.20GHz6402NA
Intel Xeon W5580 @ 3.20GHz63913.85
Intel Core i7 950 @ 3.07GHz636023.56
Intel Core i5 2310 @ 2.90GHz629534.03
Intel Core i7 2630QM @ 2.00GHz6278NA
AMD Phenom II X6 1100T627831.39
Intel Core i7 2635QM @ 2.00GHz6268NA
Intel Xeon X5667 @ 3.07GHz62454.34
Intel Core i7 940 @ 2.93GHz61528.79
Intel Core i7 870 @ 2.93GHz608520.98
Intel Xeon X3470 @ 2.93GHz607917.62
AMD Phenom II X6 1090T605533.64
Intel Xeon W3565 @ 3.20GHz60509.47
Intel Core i5 2400 @ 3.10GHz604331.81
Intel Xeon E31225 @ 3.10GHz6040NA
Intel Xeon X3460 @ 2.80GHz588516.81
Intel Core i7 930 @ 2.80GHz583624.84
AMD Phenom II X6 1075T582634.27
Intel Xeon L5640 @ 2.27GHz57365.74
Intel Xeon W3550 @ 3.07GHz557917.71
Intel Core i7 860 @ 2.80GHz556412.08
Intel Core i7 920 @ 2.67GHz556314.01
Intel Xeon X5570 @ 2.93GHz55553.92
Intel Core i7 870S @ 2.67GHz5520NA
Intel Core i5 2300 @ 2.80GHz544629.44
Intel Xeon X5560 @ 2.80GHz54234.41
Intel Xeon W3540 @ 2.93GHz53917.71
Intel Xeon X3450 @ 2.67GHz532019.7
Intel Xeon X3440 @ 2.53GHz529422.62
Intel Xeon X3370 @ 3.00GHz527414.43
Intel Xeon X5550 @ 2.67GHz52395.35
Intel Xeon X5492 @ 3.40GHz52233.75
AMD Phenom II X6 1055T519333.51
AMD Opteron 6128514719.8
AMD Phenom II X6 1045T5099NA
Intel Core2 Extreme X9750 @ 3.16GHz5085NA
Intel Core i5 2400S @ 2.50GHz507425.35
AMD Phenom II X6 1065T5074NA
Intel Xeon W3530 @ 2.80GHz506216.08
Intel Xeon E5640 @ 2.67GHz50536.4
Intel Core2 Extreme X9770 @ 3.20GHz50363.6
Intel Xeon X5460 @ 3.16GHz50205.02
Intel Xeon X5482 @ 3.20GHz49883.9
AMD Phenom II X6 1035T4941NA
Intel Xeon W3520 @ 2.67GHz492416.41
Intel Xeon E5630 @ 2.53GHz48428.74
Intel Xeon L3426 @ 1.87GHz471614.49
AMD Phenom II X4 975471526.2
Intel Core i5 2500S @ 2.70GHz4704NA
Intel Xeon X5470 @ 3.33GHz4693NA
Intel Xeon E5530 @ 2.40GHz46598.32
Intel Xeon X5472 @ 3.00GHz46355.49
Intel Xeon X5450 @ 3.00GHz46294.63
Intel Core2 Quad Q9650 @ 3.00GHz461813.58
Intel Core2 Extreme X9650 @ 3.00GHz46044.61
Intel Xeon E5620 @ 2.40GHz459111.77
Six Core AMD Opteron 243145865.63
Intel Core i5 760 @ 2.80GHz456321.86
Intel Core i7 940XM @ 2.13GHz45623.97
Intel Xeon L5520 @ 2.27GHz45135.53
AMD Opteron 6176 SE45082.76
AMD Phenom II X4 970444729.65
Intel Core i7 920XM @ 2.00GHz44163.86
Intel Xeon E5440 @ 2.83GHz43805.48
Intel Xeon E5520 @ 2.27GHz437910.95
Intel Core2 Quad Q9550 @ 2.83GHz437415.21
AMD Phenom II X4 B604331NA
AMD Phenom II X4 B974323NA
Intel Xeon E5540 @ 2.53GHz42985.44
AMD Phenom II X4 965428231.72
Intel Core i5 750 @ 2.67GHz426619.84
Intel Xeon X3350 @ 2.66GHz425013.45
Intel Xeon E5462 @ 2.80GHz42158.45
Intel Xeon E5450 @ 3.00GHz42013.97
Intel Xeon X3360 @ 2.83GHz417713.45
Intel Core2 Quad Q9505 @ 2.83GHz409417.19
AMD Phenom II X4 B554090NA
AMD Athlon II X4 5554069NA
AMD Phenom II X4 154064NA
AMD Phenom II X4 B654056NA
AMD Phenom II X4 404049NA
Intel Core2 Quad Q9500 @ 2.83GHz404822.12
Intel Core2 Quad Q9450 @ 2.66GHz404210.13
Intel Core2 Extreme X9775 @ 3.20GHz40282.18
Intel Core i7 2620M @ 2.70GHz3990NA
Intel Xeon E5430 @ 2.66GHz39858.68
Intel Core i3 2120 @ 3.30GHz398427.5
AMD Phenom II X4 955395134.36
AMD Phenom Ultra X4 245003945NA
Intel Core2 Extreme Q6850 @ 3.00GHz3901NA
Intel Core i5 2510E @ 2.50GHz3896NA
Intel Core2 Extreme @ 2.40GHz3871NA
Intel Core i7 840QM @ 1.87GHz38566.51
Intel Xeon X5365 @ 3.00GHz38442.97
Intel Core i3 2100 @ 3.10GHz384133.99
AMD Phenom II X4 B95382517
Intel Core2 Quad Q9400 @ 2.66GHz382018
Intel Xeon X3430 @ 2.40GHz379818.53
Intel Core2 Extreme Q9300 @ 2.53GHz3778NA
Intel Xeon X3230 @ 2.66GHz377712.16
AMD Phenom II X4 840T3747NA
AMD Athlon X4 6403741NA
AMD Phenom II X4 840373635.58
AMD Phenom II X4 B503732NA
Intel Core i5 2540M @ 2.60GHz371913.28
Intel Xeon E5420 @ 2.50GHz36977.11
AMD Phenom II X4 9733696NA
AMD Phenom II X4 940368135.06
Intel Core2 Quad Q8400 @ 2.66GHz368121.28
Intel Xeon X3330 @ 2.66GHz367417.5
Intel Core2 Extreme Q6800 @ 2.93GHz36713.26
AMD Athlon II X4 645364435.77
Intel Xeon E5507 @ 2.27GHz363512.75
AMD Phenom II X4 B453627NA
AMD Phenom II X4 945362130.18
Intel Xeon X3320 @ 2.50GHz360115.88
Intel Core i5 2520M @ 2.50GHz360014.4
Intel Core2 Quad Q9300 @ 2.50GHz358515.79
AMD Phenom II X4 B353582NA
Intel Core i7 740QM @ 1.73GHz35708.76
Intel Core2 Quad Q8300 @ 2.50GHz355421.81
Intel Core i7 820QM @ 1.73GHz35486.5
Intel Core i5 680 @ 3.60GHz354711.82
AMD Phenom FX 5200 Quad Core3540NA
Intel Core2 Extreme @ 2.26GHz3518NA
AMD Phenom II X4 820349538.84
Intel Core i5 655K @ 3.20GHz349315.39
Intel Core2 Quad Q9100 @ 2.26GHz34759.01
AMD Phenom II X4 B403469NA
AMD Athlon II X4 640346334.63
AMD Phenom II X4 8303460NA
AMD Phenom II X4 925345834.58
Intel Xeon E5410 @ 2.33GHz34258.16
Intel Xeon X5355 @ 2.66GHz34216.98
Intel Xeon E5506 @ 2.13GHz339714.77
AMD Phenom II X4 B253395NA
Intel Core2 Quad Q6700 @ 2.66GHz33864.24
AMD Phenom II X4 05e3379NA
AMD Athlon II X4 635335539.48
Intel Core i5 2410M @ 2.30GHz3335NA
Intel Core i3 2100T @ 2.50GHz332025.74
AMD Phenom II X4 920331630.15
Intel Core i5 661 @ 3.33GHz328814.81
Intel Core i7 720QM @ 1.60GHz32778.4
Intel Core2 Quad Q8200 @ 2.33GHz326814.21
AMD Athlon II X4 630325440.68
AMD Phenom II X4 910323015.82
AMD Engineering Sample3224NA
AMD Phenom 9850B Quad Core3218NA
Quad Core AMD Opteron 2378318917.82
Intel Core i5 670 @ 3.47GHz316410.91
Intel Core i5 660 @ 3.33GHz316214.25
Intel Core i5 650 @ 3.20GHz315016.58
Intel Xeon X5272 @ 3.40GHz31497.32
Intel Core i3 560 @ 3.33GHz313120.87
AMD Phenom II X4 810312226.92
AMD Phenom II X4 910e309316.81
Intel Core i3 550 @ 3.20GHz308725.12
AMD Phenom II X4 B933083NA
Intel Xeon E5504 @ 2.00GHz307912.83
AMD Athlon X3 450306438.79
AMD Phenom 9950 Quad Core306219.5
Intel Xeon X3220 @ 2.40GHz305713.83
AMD Athlon X4 6453055NA
AMD Phenom II X4 805303817.46
AMD Phenom FX 5000 Quad Core3034NA
AMD Phenom II X4 900e3024NA
Intel Core2 Quad Q9000 @ 2.00GHz30057.7
Intel Core i7 2617M @ 1.50GHz2986NA
AMD Athlon II X4 620298333.52
Intel Core2 Quad Q6600 @ 2.40GHz29817.48
AMD Phenom 9850 Quad Core296227.43
Intel Pentium G840 @ 2.80GHz295334.75
Quad Core AMD Opteron 2374 HE295115.53
Intel Xeon E5405 @ 2.00GHz29408.4
AMD Opteron 613429386.32
Intel Xeon L5420 @ 2.50GHz29284.19
AMD Phenom II X4 905e292015.24
AMD Athlon II X3 455292035.18
AMD Athlon II X4 615e291519.93
Intel Xeon E5345 @ 2.33GHz29103.64
AMD Phenom II X3 740290432.63
Intel Core i5 580M @ 2.67GHz286210.53
Intel Core i3 540 @ 3.07GHz283425.77
AMD Athlon II X3 450280135.02
Intel Core i7 640M @ 2.80GHz2800NA
AMD Phenom II X920 Quad Core2790NA
Intel Core i7 620M @ 2.67GHz27888.4
AMD Phenom 9750 Quad Core278628.14
AMD Athlon II X4 610e278021.22
Intel Pentium G850 @ 2.90GHz277629.22
AMD Phenom II N970 Quad Core2762NA
Intel Core i5 M 480 @ 2.67GHz2750NA
AMD Phenom II X4 B15e2744NA
Intel Core i3 530 @ 2.93GHz272920.99
AMD Athlon II X3 445272036.27
Intel Core i5 560M @ 2.67GHz269311.58
AMD Phenom 9750B Quad Core2671NA
Intel Xeon X3210 @ 2.13GHz266712.41
Intel Xeon X5260 @ 3.33GHz26663.13
AMD Athlon II X4 605e266418.89
Intel Core2 Duo E8600 @ 3.33GHz26599.11
AMD Phenom 9650 Quad Core264724.06
AMD Athlon II X4 600e264622.52
Quad Core AMD Opteron 238026406.75
Quad Core AMD Opteron 1356263312.43
Quad Core AMD Opteron 1352263119.35
AMD Phenom II X3 700e2630NA
Intel Core i3 2310M @ 2.10GHz2620NA
Intel Core i5 460M @ 2.53GHz2611NA
AMD Phenom II X3 720260426.3
AMD Athlon II X3 435258936.99
Intel Xeon E5335 @ 2.00GHz258315.07
AMD Athlon II X3 440257126.51
AMD Phenom II X3 715256730.2
AMD Phenom II N950 Quad Core2551NA
AMD Phenom 9550 Quad Core254425.45
Quad Core AMD Opteron 135425078.09
AMD Athlon II X4 6400e2497NA
AMD Phenom 9600B Quad Core249016.92
AMD Phenom II X3 B732489NA
Intel Core i5 540M @ 2.53GHz24846.62
Intel Core i5 450M @ 2.40GHz2468NA
AMD Phenom II N930 Quad Core2467NA
AMD Phenom II X3 B752466NA
AMD Phenom 9600 Quad Core245025.79
AMD Phenom 9450e Quad Core242928.58
Intel Core i3 M 390 @ 2.67GHz2420NA
Intel Core2 Duo E8500 @ 3.16GHz241713.13
AMD Athlon X3 440238227.07
Intel Pentium G620 @ 2.60GHz238131.21
Intel Xeon E3110 @ 3.00GHz236712.94
Intel Core i5 520M @ 2.40GHz23597.22
Intel Pentium G6960 @ 2.93GHz2358NA
Intel Core i5 430M @ 2.27GHz235829.85
Intel Core i3 380M @ 2.53GHz2341NA
AMD Athlon II X3 425233438.27
Intel Xeon L5240 @ 3.00GHz2328NA
AMD Phenom X4 Quad Core GP 96002328NA
AMD Phenom 9350e Quad Core231111.85
Intel Core2 Duo T9900 @ 3.06GHz23015.77
AMD Phenom 9500 Quad Core230025.57
Intel Core2 Extreme X9100 @ 3.06GHz22922.69
Intel Core2 Duo E8435 @ 3.06GHz2283NA
AMD Phenom II X3 705e227314.92
AMD Athlon II X3 415e226721.96
Intel Xeon E5320 @ 1.86GHz22668.85
Pentium Dual Core E5800 @ 3.20GHz226532.92
AMD Phenom II X3 710226226.61
Intel Core2 Duo E8400 @ 3.00GHz225012.57
Intel Core2 T9550 @ 2.66GHz2235NA
Pentium Dual Core E6800 @ 3.33GHz223323.82
AMD Phenom II X2 565222420.22
Intel Core i3 370M @ 2.40GHz2220NA
Intel Core2 Duo T9800 @ 2.93GHz21855.15
Pentium Dual Core E6600 @ 3.06GHz218031.23
AMD Phenom 8850B Triple Core2174NA
Pentium Dual Core E6700 @ 3.20GHz2171NA
AMD Phenom 9150e Quad Core2169NA
Intel Core i7 640LM @ 2.13GHz21666.52
AMD Phenom II P960 Quad Core2164NA
AMD Phenom II X2 5112161NA
AMD Phenom X4 Quad Core GP 95002152NA
AMD Phenom II N870 Triple Core2148NA
AMD Phenom II X2 560214623.36
Intel Core2 Duo E7600 @ 3.06GHz212714.18
Intel Core2 Duo P9700 @ 2.80GHz2118NA
AMD Phenom II P940 Quad Core2098NA
Intel Core i5 2415M @ 2.30GHz2091NA
Intel Xeon W3505 @ 2.53GHz2087NA
Intel Pentium B940 @ 2.00GHz2083NA
AMD Phenom X3 8750208234.71
AMD Phenom II N850 Triple Core2071NA
AMD Athlon II X3 405e206925.87
Intel Core i5 2537M @ 1.40GHz2068NA
Intel Core2 Duo E8335 @ 2.93GHz2059NA
AMD Athlon II X2 265205528.55
Intel Xeon E5310 @ 1.60GHz205512.23
Intel Core i3 350M @ 2.27GHz2049NA
Intel Pentium G6950 @ 2.80GHz203021.31
Pentium Dual Core E6500 @ 2.93GHz202925.37
Intel Core2 Duo T9600 @ 2.80GHz20286.43
Intel Pentium E6700 @ 3.20GHz202216.95
Pentium Dual Core E5700 @ 3.00GHz202128.47
Intel Core2 Duo E7500 @ 2.93GHz201216.77
AMD Phenom 8750B Triple Core2000NA
Intel Core2 Duo E8235 @ 2.80GHz1984NA
AMD Phenom II X2 555198122.51
Intel Xeon 5160 @ 3.00GHz1976NA
Intel Core2 Duo E8300 @ 2.83GHz1975NA
AMD Phenom II P920 Quad Core1973NA
Intel Core i3 330M @ 2.13GHz1964NA
Intel Core2 Duo P9600 @ 2.66GHz1958NA
AMD Athlon II X3 400e195518.2
AMD Phenom 9100e Quad Core1949NA
Intel Core2 Duo E8200 @ 2.66GHz1945NA
AMD Phenom II N830 Triple Core1941NA
AMD Phenom 8650 Triple Core194038.81
Pentium Dual Core E6300 @ 2.80GHz193519.65
Intel Pentium P6300 @ 2.27GHz1927NA
Intel Core2 Duo E6850 @ 3.00GHz192115.62
AMD Athlon II X2 260191929.53
Intel Core2 Duo E7400 @ 2.80GHz191811.84
Intel Core2 Extreme X9000 @ 2.80GHz1917NA
Intel Core2 Duo @ 2.53GHz1913NA
Pentium Dual Core E5500 @ 2.80GHz190625.76
AMD Athlon II X2 4450e1897NA
Intel Core2 Duo T9550 @ 2.66GHz18956.34
Dual Core AMD Opteron 12221892NA
Intel Core2 Duo P8800 @ 2.66GHz18897.22
AMD Phenom II X2 550188722.2
AMD Phenom 8600B Triple Core187935.46
Intel Core2 Duo E8335 @ 2.66GHz1862NA
AMD Phenom 8550 Triple Core1854NA
Intel Xeon W3503 @ 2.40GHz1854NA
Intel Core2 Duo T9500 @ 2.60GHz1848NA
AMD Phenom 8250 Triple Core1845NA
Intel Core2 X6800 @ 2.93GHz18373.68
AMD Phenom II P860 Triple Core1831NA
AMD Athlon II X2 255182528.97
Intel Core2 Duo E7300 @ 2.66GHz1822NA
AMD Phenom II N660 Dual Core1818NA
Intel Core2 Duo E8135 @ 2.66GHz1808NA
AMD Phenom II N640 Dual Core1803NA
AMD Phenom 8450e Triple Core1799NA
Pentium Dual Core E5400 @ 2.70GHz179326.37
Intel Core2 Duo P8700 @ 2.53GHz17926.28
Dual Core AMD Opteron 290179013.26
AMD Athlon 64 X2 Dual Core 6400+1786NA
AMD Phenom 8600 Triple Core178333.65
Intel Core2 Duo P9500 @ 2.53GHz17795.23
AMD Phenom 8450 Triple Core177534.81
AMD Phenom II P840 Triple Core1766NA
AMD Phenom II X2 545176515.69
Intel Core2 Duo T9400 @ 2.53GHz17624.96
AMD Phenom II X2 B551755NA
AMD Turion II N550 Dual Core1742NA
Intel Core2 Extreme X7900 @ 2.80GHz1736NA
Pentium Dual Core E5300 @ 2.60GHz173421.96
Intel Core2 Duo @ 3.00GHz1730NA
AMD Athlon II X2 245e172722.95
AMD Phenom II X2 B531724NA
Intel Core2 Duo E7200 @ 2.53GHz172313.26
Intel Core2 Duo P9600 @ 2.53GHz17146.08
AMD Athlon II X2 250171328.09
AMD Athlon II X2 4400e1712NA
Intel Core2 Duo T9300 @ 2.50GHz17095.57
AMD Phenom II N620 Dual Core1707NA
Intel Xeon 3070 @ 2.66GHz17052.85
Intel Celeron E3400 @ 2.60GHz170434.09
AMD Athlon II X2 2201704NA
Intel Xeon 5150 @ 2.66GHz17042.21
Intel Core2 Duo E8135 @ 2.40GHz1696NA
AMD Athlon II X2 235e169221.31
Intel Core2 Duo E6750 @ 2.66GHz168714.67
Intel Xeon E5503 @ 2.00GHz16858.08
AMD Athlon 64 X2 Dual Core 5800+168418.71
Dual Core AMD Opteron 22201677NA
Intel Celeron E3300 @ 2.50GHz167636.4
AMD Phenom II P650 Dual Core1666NA
Pentium Dual Core E5200 @ 2.50GHz166521.55
AMD Athlon II X2 245166133.23
Intel Celeron E3500 @ 2.70GHz166026.35
Intel Xeon 3065 @ 2.33GHz1658NA
AMD Phenom II P820 Triple Core1654NA
Intel Core2 Duo E6700 @ 2.66GHz165319.95
AMD Turion II Ultra Dual Core Mobile M6601653NA
AMD Athlon X2 2151651NA
AMD Athlon 64 X2 Dual Core 6000+16468.27
Intel Xeon 5148 @ 2.33GHz16423.26
AMD Athlon II X2 B241630NA
Intel Pentium P6200 @ 2.13GHz1629NA
AMD Athlon II X2 240e162821.69
AMD Turion II Ultra Dual Core Mobile M6401627NA
Intel Core i7 620LM @ 2.00GHz1625NA
Intel Core2 Duo P8600 @ 2.40GHz16197.46
Intel Core2 Duo P7550 @ 2.26GHz1618NA
AMD Phenom 8250e Triple Core161734.41
AMD Athlon 7850 Dual Core160832.17
AMD Athlon II X2 2151607NA
Intel Core2 Duo @ 2.66GHz1606NA
AMD Phenom 8400 Triple Core1605NA
AMD Athlon II X2 250e160520.65
AMD Athlon II X2 240160028.08
Intel Core2 Duo P9400 @ 2.40GHz1599NA
Intel Celeron E3200 @ 2.40GHz159730.72
Intel Core2 E6700 @ 2.66GHz1583NA
Intel Core2 Duo P9300 @ 2.26GHz1579NA
AMD Athlon 64 FX 62 Dual Core1579NA
Intel Core i7 640UM @ 1.20GHz1571NA
Intel Core2 Duo P7450 @ 2.13GHz1570NA
Intel Core i5 U 470 @ 1.33GHz1570NA
Intel Core2 Duo P7570 @ 2.26GHz1569NA
Intel Celeron P4600 @ 2.00GHz1568NA
AMD Athlon 7750 Dual Core156722.39
Intel Core2 Extreme X7800 @ 2.60GHz1558NA
Intel Core2 Duo T6600 @ 2.20GHz1553NA
Athlon 64 Dual Core 5000+1550NA
Intel Core2 Duo P8400 @ 2.26GHz15507.84
Pentium Dual Core T4500 @ 2.30GHz1546NA
AMD Athlon 64 X2 Dual Core 5600+154015.25
AMD Turion II Ultra Dual Core Mobile M6201534NA
Dual Core AMD Opteron 12181533NA
Intel Core2 Duo T8300 @ 2.40GHz15336.5
AMD Athlon II X2 B221528NA
Intel Core2 Duo L9600 @ 2.13GHz1528NA
AMD Athlon 64 X2 Dual Core 5400+152728.82
Intel Pentium P6100 @ 2.00GHz1519NA
Intel Xeon 5140 @ 2.33GHz1518NA
Intel Core2 Duo E6600 @ 2.40GHz15074.43
Intel Core2 Duo T7800 @ 2.60GHz14992.47
AMD Turion II P540 Dual Core1499NA
Intel Core2 Duo E4700 @ 2.60GHz149814.98
AMD Turion II P560 Dual Core1495NA
Pentium Dual Core T4400 @ 2.20GHz1493NA
AMD Turion II Ultra Dual Core Mobile M6001492NA
Intel Xeon E5502 @ 1.87GHz14917.19
Intel Core i5 520UM @ 1.07GHz1489NA
AMD Athlon Dual Core 5400B1488NA
Pentium Dual Core E2210 @ 2.20GHz1478NA
AMD Turion II N530 Dual Core1478NA
Dual Core AMD Opteron 22181471NA
AMD Athlon 64 FX 7414692.94
Dual Core AMD Opteron 1851456NA
Intel Core2 Duo E6550 @ 2.33GHz145516.9
Intel Core2 Duo T6670 @ 2.20GHz1453NA
Dual Core AMD Opteron 12201452NA
Intel Pentium E5700 @ 3.00GHz145221.91
Celeron Dual Core T3500 @ 2.10GHz1443NA
Intel Core2 Duo T6500 @ 2.10GHz1431NA
Intel Xeon 3060 @ 2.40GHz14304.78
Intel Core i5 430UM @ 1.20GHz1430NA
AMD Athlon II X2 210e1428NA
AMD Athlon 64 X2 Dual Core 5200+142331.35
AMD Athlon 5200 Dual Core142325.93
AMD Athlon 64 FX 60 Dual Core1417NA
AMD Turion II P520 Dual Core1417NA
AMD Athlon Dual Core 4850B1415NA
Dual Core AMD Opteron 2214 HE1415NA
AMD Athlon 7550 Dual Core141137.14
Pentium Dual Core T4300 @ 2.10GHz1408NA
AMD Athlon Dual Core 5050e1405NA
Intel Pentium P6000 @ 1.87GHz1404NA
Intel Core2 Duo P7350 @ 2.00GHz1397NA
Intel Core2 Duo T7700 @ 2.40GHz13964.52
Intel Xeon 3.73GHz1392NA
Celeron Dual Core T3300 @ 2.00GHz1388NA
AMD Phenom X2 Dual Core GP 77301388NA
AMD Athlon Dual Core 5200B1388NA
Intel Core2 T6600 @ 2.20GHz1385NA
Intel Pentium Dual E2220 @ 2.40GHz138515.22
Intel Core2 Duo E4600 @ 2.40GHz138127.63
Dual Core AMD Opteron 12161368NA
AMD Athlon 7450 Dual Core1368NA
AMD Athlon 64 X2 4600+1365NA
AMD Athlon 64 X2 Dual Core 5000+13617.69
Intel Core2 Duo T8100 @ 2.10GHz13617.5
Dual Core AMD Opteron 22141358NA
AMD Turion II Dual Core Mobile M5201358NA
Intel Core2 Duo T6570 @ 2.10GHz1354NA
Intel Core2 Duo T7600 @ 2.33GHz1343NA
Intel Core2 Duo T6400 @ 2.00GHz133717.32
Intel Core2 Duo P7370 @ 2.00GHz1335NA
AMD Athlon Dual Core 4850e1332NA
Dual Core AMD Opteron 18013277.37
Intel Core2 Duo E6420 @ 2.13GHz13238.33
AMD Athlon II P360 Dual Core1323NA
Intel Pentium D 3.73GHz1318NA
AMD Athlon Dual Core 5000B1317NA
AMD Athlon 64 X2 Dual Core 4800+131429.21
AMD Athlon II P340 Dual Core1307NA
AMD Turion II Dual Core Mobile M5001304NA
AMD Turion X2 Ultra Dual Core Mobile ZM 871301NA
Intel Core2 Duo E6540 @ 2.33GHz1298NA
Athlon Dual Core 4850e1296NA
Dual Core AMD Opteron 280129227.26
Intel Xeon 5130 @ 2.00GHz12873.58
AMD Turion 64 X2 Mobile TL 681283NA
Athlon 64 Dual Core 4400+1282NA
Intel Xeon 3050 @ 2.13GHz12783.65
Intel Core i3 380UM @ 1.33GHz1278NA
AMD Athlon II N350 Dual Core1277NA
AMD Athlon II N330 Dual Core1275NA
Intel Core2 Duo E4500 @ 2.20GHz127411.58
Intel Core2 Duo T7500 @ 2.20GHz12737.6
Intel Core2 Duo E6400 @ 2.13GHz12724.25
Dual Core AMD Opteron 22121270NA
Intel Pentium D 3.46GHz1269NA
AMD Athlon II Dual Core M3401266NA
Pentium Dual Core T4200 @ 2.00GHz1266NA
AMD Turion X2 Ultra Dual Core Mobile ZM 851266NA
AMD Athlon 64 X2 Dual Core 4600+12656.02
Celeron Dual Core T3100 @ 1.90GHz1261NA
Intel 3.73GHz1259NA
AMD Athlon64 X2 Dual Core 4800+1258NA
AMD Athlon II P320 Dual Core1256NA
AMD Athlon Dual Core 4450B1250NA
Intel Core2 Duo L9400 @ 1.86GHz1249NA
Intel Pentium Dual E2200 @ 2.20GHz124713.56
Intel 3.46GHz1245NA
Intel Core2 Duo T7400 @ 2.16GHz1237NA
Dual Core AMD Opteron 12141220NA
Intel Celeron E1500 @ 2.20GHz121824.38
AMD TurionX2 Ultra DualCore Mobile ZM 841212NA
AMD Athlon X2 Dual Core BE 24001211NA
Intel Core2 Duo T5850 @ 2.16GHz1206NA
Intel Core2 Duo T5900 @ 2.20GHz1205NA
Intel Celeron P4500 @ 1.87GHz1205NA
AMD Turion Dual Core ZM 801197NA
AMD Athlon Dual Core 4450e1197NA
AMD Athlon 64 X2 Dual Core 4400+11943.99
AMD Turion X2 Ultra Dual Core Mobile ZM 861191NA
Intel Xeon 5120 @ 1.86GHz11914.49
Intel Core i3 330UM @ 1.20GHz1188NA
AMD Turion 64 X2 Mobile TL 661188NA
AMD TurionX2 Ultra DualCore Mobile ZM 861185NA
AMD Turion X2 Dual Core Mobile RM 761180NA
AMD Sempron Dual Core 2300117935.74
AMD Athlon II Dual Core M3201177NA
Dual Core AMD Opteron 1751169NA
Intel Core2 Duo E4400 @ 2.00GHz11685.87
AMD Athlon II Dual Core M3001167NA
Intel Pentium U5600 @ 1.33GHz1163NA
AMD Turion X2 Ultra Dual Core Mobile ZM 841156NA
Celeron Dual Core T3000 @ 1.80GHz1156NA
AMD Athlon 64 X2 Dual Core 4200+1155NA
Intel Core2 Duo E6320 @ 1.86GHz11534.61
Intel Core2 Duo T7300 @ 2.00GHz1149NA
Athlon Dual Core 4050e1146NA
Intel Core2 Duo T7200 @ 2.00GHz11462.3
Intel Core Duo T2700 @ 2.33GHz1144NA
Intel Pentium Dual T3400 @ 2.16GHz1142NA
Intel Core2 Duo T5800 @ 2.00GHz1138NA
Intel Xeon 3040 @ 1.86GHz11378.12
Intel Core2 Duo U9600 @ 1.60GHz1132NA
Intel Core2 Duo T5870 @ 2.00GHz1132NA
Intel Pentium Dual E2180 @ 2.00GHz11296.27
AMD Turion II Neo K685 Dual Core1128NA
Intel Celeron E1400 @ 2.00GHz112616.09
Intel Core2 Duo E6300 @ 1.86GHz11157.1
Intel Core2 Duo T5750 @ 2.00GHz1115NA
AMD Turion X2 Dual Core Mobile RM 741110NA
AMD Athlon X2 Dual Core BE 23501107NA
AMD Turion X2 Dual Core Mobile RM 701106NA
AMD Athlon II X2 260u1106NA
AMD Turion 64 X2 TL 621105NA
AMD Turion X2 Dual Core Mobile RM 751102NA
Intel Core2 Duo L7700 @ 1.80GHz1100NA
Dual Core AMD Opteron 1701100NA
AMD Athlon 64 X2 Dual Core 4000+1099NA
AMD Turion Dual Core RM 751099NA
Intel Core2 Duo T7250 @ 2.00GHz1098NA
AMD Athlon X2 Dual Core QL 661096NA
Intel Celeron E1600 @ 2.40GHz1096NA
AMD Turion X2 Dual Core Mobile RM 741096NA
AMD Athlon 64 X2 Dual Core BE 2301095NA
AMD Athlon Dual Core 4050e1094NA
Athlon Dual Core 4450e1088NA
AMD Turion X2 Ultra Dual Core Mobile ZM 821087NA
AMD Athlon X2 Dual Core QL 651081NA
Dual Core AMD Opteron 12121078NA
AMD Turion X2 Dual Core Mobile RM 771073NA
Intel T1700 @ 1.83GHz1072NA
AMD Turion X2 Ultra Dual Core Mobile ZM 801064NA
Intel Core2 Duo E4300 @ 1.80GHz1058NA
Intel Pentium Dual T3200 @ 2.00GHz1051NA
AMD Athlon 64 X2 Dual Core 3800+1048NA
AMD Turion 64 X2 Mobile TL 641042NA
AMD Athlon X2 Dual Core QL 641039NA
Intel Pentium Dual T2410 @ 2.00GHz1037NA
AMD Turion X2 Dual Core Mobile RM 721037NA
Intel Pentium Dual E2160 @ 1.80GHz102735.43
AMD Athlon X2 Dual Core BE 23001024NA
AMD Turion 64 X2 Mobile TL 621024NA
Intel 1500 @ 2.00GHz1024NA
Intel Core2 Duo T5550 @ 1.83GHz1017NA
Intel Pentium E6600 @ 3.06GHz101310.35
AMD Athlon 64 X2 Dual Core 3600+1011NA
AMD Athlon Neo X2 Dual Core 6850e1011NA
Intel Core2 Duo L9300 @ 1.60GHz1010NA
Intel Core2 Duo T5600 @ 1.83GHz10073.73
Intel Core2 Duo T7100 @ 1.80GHz10024.58
Intel T2600 @ 2.16GHz1000NA
Intel Core2 Duo T5670 @ 1.80GHz997NA
Intel T1500 @ 1.86GHz997NA
Intel Pentium D 3.60GHz995NA
AMD Athlon X2 Dual Core QL 62992NA
AMD Turion 64 X2 Mobile TL 6098865.87
AMD Turion 64 X2 TL 60985NA
AMD Athlon II X2 250u982NA
Dual Core AMD Opteron 165981NA
Intel SU4100 @ 1.30GHz981NA
Intel SU7300 @ 1.30GHz977NA
AMD Athlon 64 X2 Dual Core BE 2350975NA
Intel Core2 Duo U9400 @ 1.40GHz970NA
Intel Xeon 5110 @ 1.60GHz9676.49
Dual Core AMD Opteron 265963NA
Intel Core Duo T2500 @ 2.00GHz9608
AMD Turion X2 Dual Core Mobile RM 70957NA
AMD TurionX2 Ultra DualCore Mobile ZM 80956NA
Intel Core Duo T2600 @ 2.16GHz954NA
Intel 3.40GHz953NA
Intel Pentium Dual T2390 @ 1.86GHz947NA
AMD Turion II Neo K625 Dual Core944NA
Intel Core2 Duo T5450 @ 1.66GHz940NA
AMD Turion 64 X2 Mobile TL 58937NA
Intel T2500 @ 2.00GHz937NA
Intel Celeron U3600 @ 1.20GHz932NA
Intel Pentium D 3.40GHz931NA
Intel Pentium U5400 @ 1.20GHz926NA
AMD Athlon 64 X2 Dual Core TK 57921NA
Intel Core2 Duo T5500 @ 1.66GHz9214.68
Intel T1600 @ 1.66GHz919NA
Intel Core2 Duo P7500 @ 1.60GHz914NA
Intel Core2 Duo L7500 @ 1.60GHz910NA
Intel Core2 Duo L7400 @ 1.50GHz910NA
AMD Athlon X2 Dual Core QL 60909NA
Intel SU2300 @ 1.20GHz908NA
Intel T1400 @ 1.73GHz907NA
Intel Celeron U3400 @ 1.07GHz906NA
AMD Athlon 64 X2 TK 55906NA
Intel Pentium Dual E2140 @ 1.60GHz9058.3
AMD Sempron 14590424.22
Intel Core2 Duo T5470 @ 1.60GHz903NA
AMD Athlon 64 X2 Dual Core TK 42902NA
Intel Celeron E1200 @ 1.60GHz89412.59
Intel Pentium Dual T2370 @ 1.73GHz894NA
Intel Pentium D 3.20GHz892NA
AMD Turion 64 X2 Mobile TL 5689010.6
AMD Athlon X2 Dual Core 6850e889NA
AMD Athlon II Neo K345 Dual Core888NA
Intel Core2 Duo T5300 @ 1.73GHz887NA
Intel 3.20GHz887NA
AMD Turion 64 X2 TL 58887NA
Intel Core Duo T2450 @ 2.00GHz887NA
Intel T2400 @ 1.83GHz88231.5
Intel Core Duo T2400 @ 1.83GHz88055
AMD Sempron Dual Core 2100875NA
Intel Celeron 925 @ 2.30GHz875NA
AMD Turion X2 Dual Core L510871NA
Intel Core2 L7400 @ 1.50GHz868NA
Intel 1300 @ 1.66GHz857NA
Intel Core Duo T2350 @ 1.86GHz854NA
AMD Athlon 64 X2 Dual Core TK 55854NA
AMD Athlon Neo X2 Dual Core L335853NA
Intel Core Duo L2500 @ 1.83GHz843NA
Intel 3.00GHz842NA
AMD Turion 64 X2837NA
Intel Core2 Duo T5250 @ 1.50GHz836NA
Intel Core2 Duo T5200 @ 1.60GHz835NA
AMD Turion Neo X2 Dual Core L625829NA
Intel Pentium Dual T2330 @ 1.60GHz829NA
AMD Athlon Neo X2 Dual Core L325824NA
AMD Athlon X2 Dual Core 3250e814NA
AMD Athlon II Neo N36L Dual Core813NA
Intel T2130 @ 1.86GHz813NA
AMD Athlon 64 X2 Dual Core TK 53813NA
Intel Pentium D 3.00GHz812NA
Intel Xeon 3.20GHz807NA
Intel T2300 @ 1.66GHz803NA
Intel Core Duo T2250 @ 1.73GHz796NA
Intel Core Duo T2300 @ 1.66GHz791NA
Intel T2250 @ 1.73GHz790NA
Intel Core2 Duo T5270 @ 1.40GHz789NA
Dual Core AMD Opteron 1210788NA
Intel L2400 @ 1.66GHz787NA
AMD Turion 64 X2 Mobile TL 52786NA
Intel Core Duo L2400 @ 1.66GHz782NA
Intel Core2 Duo U9300 @ 1.20GHz782NA
AMD Athlon II Neo K325 Dual Core779NA
AMD Turion 64 X2 Mobile TL 50773NA
Intel Pentium Dual T2310 @ 1.46GHz769NA
Intel Xeon 3.80GHz764NA
AMD Sempron 14076320.08
Intel Celeron 900 @ 2.20GHz761NA
AMD Athlon 64 X2760NA
Intel T2080 @ 1.73GHz759NA
Intel T2050 @ 1.60GHz756NA
Intel Core2 Duo U7700 @ 1.33GHz754NA
AMD Athlon 64 FX 57753NA
AMD Athlon LE 1660752NA
Intel Pentium D 2.80GHz741NA
AMD Opteron 25273327.38
AMD E 350732NA
Intel L2300 @ 1.50GHz724NA
Intel T2060 @ 1.60GHz717NA
AMD V160713NA
Intel Atom D525 @ 1.80GHz712NA
Intel Core2 U7700 @ 1.33GHz703NA
AMD Athlon LE 1640702NA
AMD G T56N699NA
Intel Pentium 4 3.73GHz696NA
Intel Core2 Duo L7300 @ 1.40GHz693NA
Intel Core2 Duo U7600 @ 1.20GHz686NA
AMD Athlon 64 FX 556851.14
AMD V140683NA
AMD Athlon 1640B67713.54
Intel Core2 Duo L7100 @ 1.20GHz675NA
Intel Pentium D 2.66GHz675NA
AMD Athlon X2 Dual Core L310672NA
Intel Core2 U7600 @ 1.20GHz672NA
AMD Opteron 246663NA
Intel 3.80GHz661NA
Intel Atom D510 @ 1.66GHz661NA
Intel Atom K510 @ 1.66GHz658NA
AMD Athlon 64 FX 53656NA
AMD Athlon 64 4000+6543.48
Intel Atom N570 @ 1.66GHz645NA
Intel Xeon 3.00GHz643NA
AMD Athlon II 170u642NA
AMD Athlon LE 1620641NA
AMD V120639NA
Intel Pentium 4 3.80GHz639NA
Intel 3.60GHz636NA
Intel Celeron 570 @ 2.26GHz633NA
Intel Atom 330 @ 1.60GHz633NA
Intel Celeron M 585 @ 2.16GHz628NA
AMD Opteron 150624NA
Intel Celeron 450 @ 2.20GHz623NA
AMD Athlon 64 3800+6122.66
AMD Sempron LE 130061124.45
Intel Pentium 4 3.46GHz610NA
AMD Sempron M120610NA
AMD Athlon 64 3300+606NA
Intel Core2 Duo U7500 @ 1.06GHz606NA
AMD Athlon 64 3600+601NA
AMD Opteron 148596NA
AMD Athlon 64 3700+59411.88
AMD Athlon LE 1600593NA
Intel Core Duo U2500 @ 1.20GHz591NA
Intel SU2500 @ 1.20GHz587NA
Intel Xeon 3.60GHz586NA
Intel Celeron D 430 @ 1.80GHz585NA
Intel Pentium 4 3.60GHz585NA
Intel Pentium M 2.26GHz585NA
Intel Core2 U7500 @ 1.06GHz583NA
Intel Celeron 560 @ 2.13GHz5808.66
AMD Athlon 64 3400+580NA
Mobile AMD Athlon 64 4000+575NA
AMD Turion 64 Mobile ML 42572NA
AMD Turion 64 Mobile ML 44568NA
AMD Sempron M100567NA
AMD Athlon 64 3500+5675.73
Intel Xeon 3.40GHz567NA
Intel Atom N550 @ 1.50GHz562NA
Intel Celeron 440 @ 2.00GHz560NA
AMD Athlon II 160u550NA
Intel U2400 @ 1.06GHz550NA
AMD Sempron LE 125054918.94
Intel Pentium 4 3.40GHz549NA
Intel Celeron M 575 @ 2.00GHz548NA
AMD Athlon II Neo K145545NA
Intel Celeron 550 @ 2.00GHz544NA
Intel Celeron M 540 @ 1.86GHz542NA
AMD Athlon XP M539NA
Mobile AMD Sempron 3800+538NA
Intel Core Duo U2400 @ 1.06GHz535NA
AMD Athlon 64 3200+5313.79
AMD Opteron 1465308.83
AMD Athlon TF 36530NA
AMD Turion 64 Mobile ML 40528NA
AMD Turion 64 Mobile MT 40527NA
AMD Turion 64525NA
AMD Turion 64 Mobile MK 38525NA
Intel Pentium M 2.13GHz524NA
Intel Pentium 4 3.20GHz524NA
Mobile AMD Athlon 64 3200+523NA
Intel Xeon 2.80GHz521NA
AMD Sempron LE 1200521NA
Intel T1400 @ 1.83GHz519NA
AMD K7516NA
AMD Turion 64 Mobile MT 37514NA
AMD Opteron 144514NA
Intel Celeron 430 @ 1.80GHz51312.83
AMD K7 processo512NA
AMD Sempron 3300+511NA
Intel Pentium M 2.10GHz511NA
Intel Celeron 540 @ 1.86GHz508NA
Mobile AMD Athlon 64 3700+508NA
AMD Sempron 3600+506NA
AMD Sempron SI 42504NA
Intel Core2 Solo U3500 @ 1.40GHz503NA
Intel Pentium M 2.00GHz503NA
AMD Athlon XP 3200+499NA
AMD Sempron 3500+498NA
AMD Turion 64 Mobile ML 37496NA
AMD Athlon II Neo K125494NA
Intel Celeron M 450 @ 2.00GHz493NA
VIA Nano U3100 (1.6GHz Capable)491NA
Intel Pentium 4 3.00GHz491NA
AMD Athlon 64 3000+49112.28
Intel Xeon 3.06GHz490NA
Mobile Intel Pentium 4 3.33GHz489NA
Intel Celeron 530 @ 1.73GHz4897.3
AMD Athlon 2850e488NA
AMD Sempron LE 1150487NA
AMD Athlon 3100+485NA
AMD Turion 64 Mobile MK 36480NA
AMD Athlon 3000+480NA
AMD Sempron 3400+47819.92
AMD Athlon XP 3100+477NA
AMD Athlon 2800+4774.77
Intel Pentium M 1.86GHz476NA
AMD Athlon QI 46473NA
Mobile AMD Sempron 3600+473NA
Intel Pentium 4 3.06GHz472NA
AMD Athlon XP 2700+4725.57
Mobile Intel Pentium 4 3.46GHz472NA
Mobile AMD Athlon 64 3400+472NA
AMD Athlon XP 3000+469NA
AMD Turion 64 Mobile MT 32468NA
AMD Sempron 3800+468NA
Intel Celeron 743 @ 1.30GHz466NA
AMD Athlon XP 2900+465NA
AMD Athlon 64 2800+4654.65
Intel Pentium M 1.80GHz463NA
AMD Athlon XP 2800+462NA
Intel T1350 @ 1.86GHz461NA
AMD Sempron 3100+460NA
Intel Celeron 420 @ 1.60GHz4573.26
AMD Sempron SI 40456NA
AMD C 50451NA
AMD Athlon 64 FX 51451NA
AMD Turion 64 Mobile ML 34449NA
Mobile AMD Athlon 64 3000+449NA
Intel Pentium M 1.73GHz448NA
Intel Celeron M 530 @ 1.73GHz448NA
AMD Sempron 3200+44622.3
AMD Sempron LE 1100445NA
Mobile AMD Sempron 3500+445NA
AMD Sempron 3000+444NA
AMD Athlon XP 2600+44319.24
Intel SU2700 @ 1.30GHz442NA
Mobile Intel Pentium 4 3.20GHz442NA
Mobile AMD Sempron 3300+441NA
Intel Celeron 723 @ 1.20GHz441NA
Intel Celeron M 440 @ 1.86GHz438NA
AMD Turion 64 Mobile ML 32436NA
Intel Pentium M 1.70GHz435NA
Intel Celeron M 723 @ 1.20GHz433NA
AMD Athlon XP 2400+43018.1
AMD Athlon prosussor428NA
Mobile AMD Sempron427NA
Mobile AMD Athlon 64 2800+425NA
Intel Celeron D 3.46GHz425NA
Intel Celeron M 520 @ 1.60GHz424NA
Mobile AMD Sempron 3100+422NA
AMD Sempron 2800+421NA
AMD Engineering Sample xx420NA
AMD Turion 64 Mobile MT 28419NA
Intel Celeron M 1.70GHz419NA
Intel Celeron 3.33GHz418NA
Mobile AMD Sempron 3000+417NA
Intel Xeon 2.66GHz417NA
Mobile AMD Athlon XP M 2600+416NA
Intel Pentium 4 2.80GHz416NA
AMD Turion 64 Mobile MT 30416NA
Mobile AMD Sempron 3400+415NA
Intel Celeron D 3.33GHz412NA
Mobile AMD Athlon 2500+412NA
AMD Athlon XP 2500+409NA
Intel T1300 @ 1.66GHz409NA
Mobile AMD Athlon XP M 2800+408NA
Intel Pentium 4 2.60GHz408NA
Intel Pentium M 1.60GHz408NA
AMD Sempron 2600+40610.15
AMD Turion 64 Mobile ML 30406NA
Mobile Intel Pentium 4 3.06GHz406NA
AMD Duron p406NA
Intel Pentium 4 2.93GHz405NA
Intel Celeron M 1.60GHz405NA
Intel Celeron M 430 @ 1.73GHz404NA
AMD Athlon 2650e404NA
Intel Celeron M 420 @ 1.60GHz403NA
Mobile AMD Athlon 4 2400+403NA
Mobile AMD Sempron 2600+402NA
Intel Celeron 3.20GHz399NA
AMD Athlon TF 20399NA
Mobile AMD Athlon 64 2700+398NA
Intel Celeron D 3.60GHz3966.95
AMD Athlon Proswssor396NA
Intel Celeron D 3.20GHz394NA
Intel Pentium M 1.50GHz393NA
AMD Turion 64 Mobile MT 34392NA
Mobile AMD Athlon XP M 2500+391NA
AMD Athlon Pros}ssor391NA
Intel 3.33GHz391NA
Mobile AMD Athlon XP M 3000+390NA
Intel Celeron D 220 @ 1.20GHz389NA
Mobile AMD Sempron 2800+388NA
VIA Nano U2250 (1.6GHz Capable)388NA
AMD Athlon Neo MV 40388NA
Intel Celeron M 1.50GHz388NA
Mobile AMD Sempron 3200+388NA
AMD Athlon XP 2200+387NA
AMD Turion 64 Mobile ML 28386NA
Intel Atom Z550 @ 2.00GHz385NA
Intel Pentium M 1700MHz383NA
AMD K7381NA
Intel Xeon 2.40GHz38041.99
Intel Celeron D 3.06GHz376NA
Mobile AMD Athlon XP M (LV) 2200+373NA
AMD Sempron 210U373NA
Mobile AMD Athlon XP M 2200+370NA
AMD Athlon XP 2100+370NA
AMD Athlon XP rrsossor369NA
Intel Celeron 3.06GHz369NA
Intel Celeron 2.93GHz368NA
AMD Sempron 2400+368NA
AMD Sempron367NA
Intel Celeron M 410 @ 1.46GHz365NA
Intel Pentium M 1.40GHz364NA
AMD Sempron 2500+363NA
Intel Celeron M 1.40GHz363NA
Turbo 3000+363NA
Mobile AMD Athlon XP M 2400+361NA
AMD Athlon XP 2000+3619.03
Intel Pentium M 1600MHz361NA
Pentium 4357NA
Intel Atom N470 @ 1.83GHz355NA
Intel Celeron M 1500MHz354NA
AMD E 240353NA
Intel Pentium M 1500MHz350NA
Intel Celeron 215 @ 1.33GHz349NA
Intel Atom Z540 @ 1.86GHz349NA
Intel Pentium III S 1400MHz349NA
Mobile AMD Athlon 43472.25
AMD Athlon XP 1900+346NA
AMD Athlon XP 1700344NA
AMD Athlon MP 1700+343NA
AMD Athlon XP342NA
Intel Atom D410 @ 1.66GHz3420.54
Intel Celeron M 1.30GHz342NA
Intel Atom N475 @ 1.83GHz342NA
Mobile Intel Pentium 4 2.80GHz339NA
Mobile AMD Athlon XP M 1900+337NA
Intel Celeron 2.80GHz337NA
Intel Pentium 4 2.66GHz336NA
AMD Sempron 2300+335NA
Intel Pentium III family 1400MHz335NA
AMD Sempron 2200+33511.17
Mobile AMD Athlon XP M 2000+333NA
AMD Athlon 2500+33314.62
AMD Athlon XP 1800+3325.63
Mobile AMD Athlon XP M (LV) 2000+330NA
Intel Celeron 220 @ 1.20GHz330NA
VIA C7 D 1800MHz329NA
Intel Celeron M 1400MHz328NA
Intel Core Solo U1500 @ 1.33GHz327NA
Intel Celeron 2.66GHz327NA
Mobile AMD Athlon 1800+327NA
Intel Pentium M 1.30GHz326NA
Mobile AMD Athlon XP M 1700+324NA
AMD V105324NA
AMD Athlon322NA
Intel Core2 Solo U2100 @ 1.06GHz320NA
Intel Celeron 2.53GHz320NA
Intel Pentium M 1400MHz320NA
Intel Atom N455 @ 1.66GHz319NA
Intel Pentium M 1.20GHz319NA
Turbo 3400+X Comb Featuring VIG4 Sempron 2200+318NA
Intel Atom N450 @ 1.66GHz318NA
AMD Athlon 1500+317NA
Intel Atom 230 @ 1.60GHz315NA
Intel U1400 @ 1.20GHz315NA
Mobile Intel Pentium 4 M 2.60GHz315NA
Intel Pentium 4 2.40GHz314NA
Intel Atom N280 @ 1.66GHz314NA
Intel Pentium 4 2.53GHz313NA
Mobile AMD Athlon XP M 1800+312NA
AMD Athlon XP 1700+311NA
Intel Core2 Solo U2200 @ 1.20GHz311NA
Intel Celeron M 1300MHz311NA
Mobile Intel Pentium 4 2.66GHz310NA
Mobile AMD Athl309NA
Intel Celeron 1400MHz308NA
Mobile Intel Celeron 1333MHz308NA
Intel Pentium M 1300MHz306NA
Intel Atom N270 @ 1.60GHz304NA
Intel Pentium 4 2.50GHz304NA
Intel Pentium III S 1266MHz303NA
AMD Athlon L110302NA
VIA C7 1500MHz302NA
Intel Celeron 2.70GHz302NA
Intel Atom D425 @ 1.80GHz297NA
Intel Atom Z530 @ 1.60GHz296NA
AMD Athlon XP 1600+295NA
Intel Pentium M 1.10GHz295NA
Intel Celeron 2.60GHz291NA
AMD Geode NX 1750291NA
VIA C7 M 1600MHz290NA
Intel Celeron 1333MHz290NA
Mobile AMD Athlon XP M (LV) 1500+288NA
Intel Celeron 1300MHz287NA
686 Gen287NA
Intel Pentium III 1200MHz285NA
Mobile Intel Pentium III M 1133MHz284NA
Intel Celeron 2.40GHz282NA
Intel Celeron 2.50GHz282NA
AMD Athlon XP 1500282NA
Intel Pentium 4 2.26GHz281NA
Intel Celeron 1133MHz281NA
Intel Celeron M 1200MHz280NA
AMD Athlon 4279NA
AMD Athlon MP 1800+279NA
Intel Pentium 4 2.20GHz279NA
Mobile Intel Celeron 1200MHz279NA
AMD Athlon XP 1500+278NA
Intel Pentium III Mobile 1200MHz278NA
Mobile Intel Pentium 4 M 2.40GHz277NA
Intel Pentium M 1200MHz277NA
AMD Athlon Prosowwor277NA
Mobile Intel Pentium 4 2.30GHz2766.34
Mobile Intel Pentium III M 1200MHz275NA
AMD Duron272NA
Intel Celeron 2.26GHz272NA
Intel Xeon 2.00GHz272NA
Mobile Intel Celeron 2.50GHz269NA
Intel Celeron 1200MHz269NA
Intel Core Solo U1400 @ 1.20GHz267NA
VIA C7 M 6300MHz266NA
Intel Pentium III Mobile 1066MHz265NA
Mobile Intel Pentium III M 1333MHz265NA
VIA Esther 1500MHz265NA
Mobile AMD Athlon XP M 1600+265NA
Mobile Intel Celeron 2.40GHz264NA
Intel Pentium M 1100MHz263NA
Intel Pentium III Mobile 1133MHz262NA
Mobile Intel Pentium 4 2.40GHz262NA
Intel Celeron 1066MHz260NA
Mobile Intel Pentium 4 M 2.20GHz257NA
Intel Celeron 2.13GHz257NA
Mobile Intel Pentium 4 M 2.50GHz256NA
Intel Celeron 2.20GHz256NA
Intel Celeron 1000MHz254NA
Intel SU1300 @ 1.06GHz252NA
Mobile Intel Celeron 2.20GHz251NA
AMD Opteron 248250NA
Intel Pentium 4 Mobile 2.00GHz249NA
Intel Atom Z520 @ 1.33GHz249NA
Mobile Intel Pentium III M 1000MHz248NA
Intel Pentium 4 2.00GHz247NA
Intel Pentium M 1000MHz244NA
Mobile AMD Duron243NA
Intel Pentium III Mobile 1000MHz242NA
Intel Celeron 2.30GHz241NA
Mobile Intel Pentium 4 M 2.00GHz240NA
Intel Celeron 1100MHz240NA
Mobile Intel Celeron 2.00GHz239NA
Intel Pentium 4 Mobile 1.90GHz234NA
Intel Celeron 2.10GHz234NA
Intel Celeron 2.00GHz233NA
AMD C 30231NA
AMD Athlon MP230NA
Intel Celeron M 900MHz230NA
Intel Celeron M 1.00GHz228NA
Intel Pentium 4 1.90GHz228NA
Mobile Intel Pentium 4 M 1.90GHz228NA
Mobile Intel Pentium III M 933MHz227NA
Intel Pentium M 900MHz226NA
Intel Pentium III Mobile 933MHz221NA
Mobile Intel Pentium 4 M 1.80GHz221NA
VIA Nehemiah220NA
Intel Pentium 4 Mobile 1.80GHz218NA
Intel Atom Z515 @ 1.20GHz218NA
Intel Pentium 4 1.80GHz215NA
Intel Pentium III Mobile 866MHz214NA
Mobile Intel Pentium 4 M 1.70GHz213NA
Intel Pentium 4 1800MHz212NA
Mobile Intel Pentium III M 866MHz211NA
Mobile Intel Celeron 1.80GHz208NA
VIA C7 M 1200MHz208NA
Intel Celeron 1.80GHz207NA
Intel Pentium 4 Mobile 1.70GHz207NA
Intel Pentium 4 Mobile 1.60GHz204NA
Intel Pentium 4 1700MHz203NA
Intel Pentium 4 1.70GHz202NA
Intel Pentium III Mobile 800MHz201NA
Intel Pentium 4 Mobile 1.50GHz197NA
Mobile Intel Celeron 1.70GHz196NA
Mobile Intel Pentium 4 M 1.60GHz195NA
Intel Pentium 4 1600MHz195NA
Intel Celeron 1.70GHz194NA
Pentium III194NA
Intel Pentium 4 1.60GHz191NA
Mobile Intel Celeron 1.60GHz188NA
Intel Atom Z510 @ 1.10GHz1864.13
Mobile Intel Celeron 1.50GHz186NA
Intel Celeron M 800MHz184NA
Intel Pentium 4 1500MHz175NA
Intel Pentium 4 1.50GHz171NA
Mobile Intel Celeron 1.20GHz170NA
Intel Pentium 4 1.40GHz165NA
Intel Pentium 4 1400MHz165NA
Intel 800MHz164NA
VIA C7 M 1000MHz164NA
Intel Pentium 4 1300MHz163NA
Intel Celeron M 600MHz151NA
Intel Pentium 4 Mobile 1.40GHz148NA
Mobile AMD Athlon XP M 1400+137NA
Intel Pentium III Mobile 750MHz103NA
Intel 600MHz90NA



구글 크롬 (Google Chrome) 업데이트: 21.0.1180.60



업데이트 전


업데이트 후


변경점:

- HTML5 getUserMedia API(플러그인 없이 카메라나 마이크 같은 웹 앱에 접속할 수 있게 해주는 기술) 탑재

- 더욱 강화된 구글 클라우드 프린트 연동

- 게임패드 지원 범위 확대

- 고해상도 맥 레티나 디스플레이 대응

- 최신버전(11,3,31,222)의 어도비 플래시 플레이어 내장

- 다수의 보안 취약점 해결


언어의 기초사항

 

1. 자바 주석문
1) C, C++ 언어 스타일의 주석문
자바 언어는 주석문을 자바 source 코드 내에 프로그램에 수행에 불필요한 코드를 삽입할 수 있습니다.
주석문을 사용하면 source 코드를 설명하는 코멘트를 첨가할 수 있습니다.

C 스타일 주석, 여러 줄에 걸쳐서 사용할 수 있습니다. 형태는 다음과 같습니다.
/* */

C++ 스타일 주석, 한 줄을 주석으로 사용할 때 편리합니다. 형태는 다음과 같습니다.
//

2) javadoc 주석문
javadoc 주석문을 사용하면 해당 class의 상속관계를 표현하는 계층도나 class 멤버들에 대한 설명 등을 html 파일 형태로 제공하는 문서(document)를 만들 수 있습니다. 이러한 문서는 다음과 같이 source프로그램을 javadoc명령에 의해 실행시켜 생성합니다.

javadoc Hello.java

다음은 javadoc 명령 실행시 생성되는 html 파일들의 리스트입니다.

Loading source file Hello.java...
Constructing Javadoc information...
Building tree for all the packages and classes...
Building index for all the packages and classes...
Generating overview-tree.html...
Generating index-all.html...
Generating deprecated-list.html...
Building index for all classes...
Generating allclasses-frame.html...
Generating index.html...
Generating packages.html...
Generating World.html...
Generating serialized-form.html...
Generating package-list...
Generating help-doc.html...
Generating stylesheet.css...
index.html이나 index-all.html 또는 Hello.html 파일을 열어서 보면 해당 source 파일의 상속관계, 구성 멤버들에 대한 정보를 알 수 있습니다.

2. 자바 source file 구조
1) 파일 이름 만들기
자바 파일 이름은 반드시 .java 확장자로 끝나야 합니다. (jav 또는 JAVA가 되지 않게 꼭 주의하셔야 합니다.)
그리고 만약 source 안에 public인 top level class가 있다면 파일 이름은 반드시

public인 class 이름 .java

로 하셔야 합니다.

public class Hello {
public static void main(String[] args) {
System.out.println("Hello World");
}
}

위와 같은 경우 저장할 파일 이름은 반드시 Hello.java로 하여야만 하는 것입니다.

public class Hello {
public static void main(String[] args) {
System.out.println("Hello World");
}
}

class World {
void print() {
System.out.println("World");
}
}


위의 source 파일 이름은 Hello.java 이겠지요?
자바는 컴파일된 후 실행 파일 이름이 .class의 형태로 나옵니다.
따라서 위의 source 프로그램이 컴파일되면 Hello.class 와 World.class 두 개의 파일이 만들어집니다.
물론 이때 Java interpreter와의 실행에는 main 메소드를 가지고 있는 Hello.class를 사용하여야만 하겠지요.

public class Hello {
public static void main(String[] args) {
System.out.println("Hello World");
}
}

public class World {
void print() {
System.out.println("World");
}
}

위와 같은 source 프로그램 코딩은 잘못된 것입니다. 왜냐하면 public은 두 개인데 파일은 하나 밖에 만들 수 없으니까요. 만약 두 class 모두 다 꼭 public이어야만 한다면 파일을 따로 만들어야만 합니다.

class Hello {
public static void main(String[] args) {
System.out.println("Hello World");
}
}

class World {
void print() {
System.out.println("World");
}
}

위의 source 프로그램과 같이 public인 class가 하나도 없는 경우라면 파일 이름은 어떤 class의 이름을 사용하여도 상관없습니다.

class Hello {
public static void main(String[] args) {
System.out.println("Hello World");
}
}

public class World {
void print() {
System.out.println("World");
}
}

위의 source 파일같은 경우 Hello.java로 저장하면 오류가 발생합니다. public이 있는 World.java로 저장하여 컴파일하고 실행시에는 main 메소드를 가진 Hello로 실행합니다.

2) 소스 파일의 기본 구조
source 파일의 구조는 문장에 따라서 순서가 정해져 있습니다.
package 선언문
import 문
class 정의문

즉, 위와 같이 3개의 top level element는 순서에 의해 사용되어야만 하는 것입니다.

이 중 package, import 문장은 꼭 사용하지 않을 수도 있지만, 필요에 따라 source 안에 사용해야 한다면 반드시 위의 순서에 따라 주어야 합니다.

package my.firstpack;
import java.awt.*;
import java.util.*;

public class Hello {
public static void main(String[] args) {
System.out.println("Hello World");
}
}

4. Keyword 와 Identifier
1) Keyword 리스트
C 프로그래머를 위한 몇가지 주의사항은

C에서 많이 쓰셨던 sizeof operator가 자바에는 없다는 것입니다. 이 operator는 자바에서 더 이상 존재의 의미가 없기 때문에 빠지게 된 것.

NULL, TRUE, FALSE 같이 C에서 keyword는 아니지만 #define 문으로 정의해서 사용하던 단어들이 자바에서는 소문자로 바뀌어서 null, true, false와 같은 keyword로 사용됩니다.

자바는 goto, const 같은 단어들을 실제로 구현은 안했지만 keyword로 등록 시켜놓았습니다.

2) Identifier를 만드는 규칙
자바 identifier는 class 이름, 메소드 이름, 변수 이름, 문자 label 등에 사용됩니다.

자바는 일반 문자, 숫자, 그리고 특수 문자('_' 와 '$')등을 조합하여 identifier를 만들 수 있습니다. 이때 반드시 첫번째 문자는 숫자가 아닌 단어로 시작해야 하며 특수 문자도 첫번째 문자로 올 수 있습니다.

자바 keyword는 identifier로 사용할 수 없습니다. 그러나, keyword를 포함하는 단어는 identifier로 사용할 수 있습니다. identifier는 공백을 포함할 수 없습니다.

자바는 ASCII코드를 넘어선 Unicode를 지원하기 때문에, 일반 문자로 'a'-'z', 'A'-'Z' 뿐만 아니라 한글도 사용할 수 있게 되어 identifier를 한글로 만들 수도 있습니다.

그리고 identifier들은 case sensitive하고 실제 maximum length에 대한 제한은 없습니다.


5. 코딩 Convention
1) class 이름과 interface 이름 정하기
class나 interface의 이름은 첫번째 문자를 항상 대문자로 시작해야 합니다. 만약 두 단어 이상으로 만들어져 있으면 단어 사이를 대문자로 연결합니다. class 이름은 보통 명사로 만듭니다.
class 이름 예 : Button, Frame, Applet, Thread, MenuBar
interface 이름 예 : Runnable, LayoutManager, AppletContext

2) 메소드 이름과 변수 이름 정하기
메 소드 이름과 변수 이름은 문장처럼 여러 단어가 올 수 있는데, 항상 첫 번째 문자는 소문자로 시작하고 단어와 단어의 연결은 뒷 단어를 대문자로 시작합니다. 메소드 이름은 보통 동사로 시작합니다. 변수 이름은 보통 명사로 되어있습니다.
메소드 이름 예 : getImage(), getDocumenttBase(), setBackground()
변수 이름 예 : height, width, pointSize

3) 상수 이름 정하기
Primitive Data Type 변수에 값을 할당하기 위해 사용하는 상수는 모두 대문자로 표시하고 단어 사이는 _(underscore)로 연결합니다. Reference Data Type일 경우는 대소문자를 다 사용합니다.
Primitive Data Type 상수 예 : BOLD, ITALIC, CROSSHAIR_CURSOR
Reference Data Type 상수 예 : black, darkGray, UndefinedProperty

6. Data Type(데이터형)과 Literal
1) Primitive Data Type (기본 데이터형)
자바에는 Primitive Data Type과 Reference Data Type(참조 데이터 형 = Object Reference Data Type)이라는 두 가지의 Data Type이 있습니다.

Primitive Data Type의 종류에는 boolean, char, byte, short, int, long, float, double 등 8개가 있습니다. Primitive Data Type 으로 선언된 변수는 실제 값을 갖게 됩니다.

이와는 달리 Reference Data Type으로 선언된 변수는 어떤 값이 저장되어 있는 메모리의 주소를 갖게 됩니다.즉, 블럭 구조로 여러 다른 Data Type의 값들을 모아놓은 곳의 base address를 갖게 되고, 이 정보를 바탕으로 여러 값을 얻어낼 수 있으므로 Reference(참조)라는 말을 붙인 것입니다. Reference Data Type에는Array(arrary), class, interface가 있습니다.

자바의 모든 Primitive Data Type들은 Java Virtual Machine(JVM)을 따르기 때문에platform에 따라 크기가 바뀌지 않습니다. 대표적인 경우가 int입니다. C 언어에서는 platform에 따라 int크기가 다양하게 바뀐다는 것을 알고 계시죠? 하지만 자바는 그렇지 않다는 것입니다. 아마도 이 점이 sizeof가 필요 없는 이유 중 하나일 것입니다.

boolean Data Type
자 바는 C에는 없는 boolean Data Type이 존재합니다. boolean Data Type으로 선언된 변수는 true와false 두 가지 값만을 가질 수 있습니다. true와 false는 반드시 소문자로 코딩해야한다는 점을 잊지 마십시오.

char Data Type
자바의 char Data Type은 ASCII를 지원하지 않고 2 byte Unicode를 지원하기 때문에 16 bit의 양의 정수로 표현 되어집니다.
즉, 실제 가질 수 있는 값의 범위는 0 부터 2^16 - 1 까지인 것입니다. (unsigned라는 뜻이지요.)

byte, short, int, long (Integral) Data Type
모든 Integral Data Type은 signed입니다. 즉, 2's complement 방식으로 표현되는 것이지요.unsigned integral type은 지원하지 않습니다. Integral Data Type들의 표현 값의 범위는 다음과 같습니다 :


float, double (Floating point) Data Type
Floating point Data Type은 IEEE754 Spec.에 따라 표현되어 있고 역시 platform에 상관없이 구현되어 있습니다. float Data Type은 32 bit 크기의 실수를 표시할 수 있으며, double Data Type은64 bit 크기의 실수를 표현할 수 있습니다

2) 사용되는 literal
boolean literal
literal은 소문자인 true, false 두 가지 종류 밖에 없습니다.

boolean isFull;
boolean beOk = false;

isFull = true;

char literal
char data type에 대한 literal은 C에서와 마찬가지로 single quotes에 둘러싸인 문자로 표현됩니다.그리고 코딩시 입력하기 어려운 문자 값을 넣기 위한 escape sequence를 자바도 '\n' 형식으로 지원합니다.

char ch1 = '\n';
char ch2 = '\r';
char ch3 = '\t';
char ch4 = '\u88ab'; // Unicode 표현

char ch5;

ch5 = 'a';

여기서 특이하다면 '\u' 라고 할 수 있는데, \u 뒤에는 2 byte Unicode 즉, 4개의 hexa value가 올 수 있습니다. '\u88ab'의 의미는 실제 Unicode 88ab번의 문자라는 것 입니다.

Integral literal
Integral Data Type으로 선언된 변수가 가질 수 있는 Integral literal은 C와 마찬가지로 decimal, octal, hexa 의 3가지 표현으로 나타나집니다.


그리고 위의 숫자들과 같이 특별한 suffix가 없으면 모두 int type으로 간주합니다. 만약 int 크기가 아닌 long 크기를 표현하고 싶다면 숫자 뒤에 l 또는 L을 붙여주면 됩니다.

Floating point literal
만약 어떤 숫자 literal이 decimal point(.) 나 expornent part(e, E)를 사용하여 표현되어 지거나 또는 suffix로 f, F, d, D 중 하나를 포함하고 있으면 Floating point literal로 처리되게 됩니다. suffix를 사용함에 있어 f 나 F 없이 사용된 literal은 무조건 double(64 bit) 크기로 인식이 되어버립니다.


String literal
자바의 String Data Type은 class로 만들어져 있는 Reference Data Type 이지만 연속적인 문자열을 표시하기 위한 literal이 제공되고 있습니다. 물론 unicode로 만들어지고 double quotes를 사용하여 둘러싸게 되어 있습니다.

String msg = "이 문자열은 테스트용 입니다.";

7. 변수 선언 : 기본 개념
1) 자바의 변수 선언
메 모리상의 데이터를 프로그램에서 접근하기 위해서는 실제 데이터를 나타내는 변수가 있어야 합니다. 변수를 이용하여 프로그래머는 메모리상에 데이터를 저장하고 반대로 저장된 데이터를 불러와 사용하기도 합니다. 즉, 변수는 프로그래머가 메모리상의 데이터에 접근하기 위한 방법이며 데이터와 1 : 1 대응됩니다.

변수를 사용하려면 먼저 변수 선언이라는 절차가 필요합니다. 변수 선언이란 자바가상머신(JVM)에게 데이터를 저장하기 위한 메모리를 할당하라는 의미입니다. 그러기 위해선 데이터 타입이 필요합니다. 데이터 타입에 따라 그 데이터가 필요로 하는 크기만큼의 메모리를 할당합니다. 두 번째로는 변수를 다른 변수와 구별할 수 있는 이름이 있어야 합니다. 이것을 변수명이라 합니다.

자바에서는 변수 선언시 다음과 같은 구조를 가집니다.
데이터 형 변수이름;

예를 들어, 논리형 데이터를 갖는 itsTrue라는 변수를 선언한다면 아래와 같은 문장으로 표현합니다.

boolean itsTrue;

이 때, 데이터 형은 자바에서 정해진 타입 중의 하나로 선언하고 변수이름은 변수이름의 coding convention에 따라 정의할 수 있습니다.

2) Primitive Data Type 변수 선업법
Primitive Data Type들은 C에서와 마찬가지로 선언과 동시에 자신의 크기에 맞는 메모리 할당이 동시에 일어납니다.

3) Referance Data Type 변수 선언법
boolean, char, byte, short, int, long, float, double과 같은 Primitive Data Type은 이에 대한 정보가 컴파일러에 내장되어 있어 선언과 함께 정의된 만큼의 메모리를 생성하게 됩니다.

하지만 Array, class, interface 등과 같이 그때 그때마다의 정의에 따라 메모리 할당에 필요한 정보가 달라지는 Reference Data Type으로 선언될 변수는 선언과 생성이 분리되어 있습니다. C와 비교해 보자면pointer 처럼 선언 후 따로 memory 할당을 해줘야 한다는 것이지요. 물론 할당에 관련된 기능이 따로 있습니다.C++처럼 new라는 operator를 사용해서 dynamic하게 heap으로부터 할당해서 쓰게 되어 있습니다.

import java.util.*;

class TestVar {
public static void main(String[] args) {
String msg; // 라인 1.

msg = new String("sample 1"); // 라인 2.
}
}
String은 class type입니다. 그러므로 라인 1번으로는 선언만 이루어진 것이지요. 따라서 라인 2번과 같이 String object를 만드는 (메모리 할당) 작업이 병행되어야 합니다.

import java.util.*;

class TestVar {
public static void main(String arg[]){
String msg = new String("sample 2");
}
}
위와 같이 선언과 생성이 한줄로 표현될 수도 있습니다. 앞서 Reference Data Type으로 선언된 변수는 어떤 값이 저장되어 있는 메모리의 주소를 갖는다고 했던 것 기억 나시죠? 이 개념은 마치 C에서의 pointer 개념과 거의 유사한 것으로 분명한 차이점은 C에서의 pointer 변수는 arithmetic 연산이 가능했던 반면 자바의 Reference Data Type 변수는 이러한 연산이 불가능하다는 것입니다.

import java.util.*;

class TestVar {
public static void main(String arg[]){
String msg = "sample 3";
}
}
특별히 String은 위의 예문과 같이 new를 사용하지 않고 literal만으로도 내부에서 필요한 object가 만들어지게 되어 있습니다.

import java.util.*;

class TestVar {
public static void main(String arg[]){
Date today = new Date();

System.out.println("Today is:" + today);
}
}
위와 같이 class type인 Date로 변수를 선언하고 생성하면 시스템에 의해 오늘의 날짜 값이 변수에 저장되게 됩니다.

8. Array에 관하여
1) Array 선언법
선 언은 컴파일러에게 "이 변수는 Array type이다"라는 것을 알려주는 것이겠죠? 선언시 Array 표시 기호로는 C처럼[]를 사용합니다. 그리고 아시다시피 Array는 특정 type의 element들을 연속적으로 갖는 것이기 때문에 반드시 그element의
type이 무엇인지 알려 주어야만 합니다.

int intArray[];
위의 선언문은 int type의 element를 갖는 Array에 대한 것 입니다. 코드에서 보는 것처럼 C와 비슷한 방식으로 선언이 이루어 집니다. 하지만 다른 점은 [] 안에 몇 개의 element가 와야할지 크기 지정을 하지 않는다는 것입니다. 왜냐하면 크기에 대한 정보는 선언할 때 필요한게 아니라 메모리를 생성할 때 필요하기 때문입니다. 즉, 선언에서는 단지"어떤 어떤 type의 Array이다." 라는 것만 알려주는 것입니다.

double [] dArray, otherArray;
위와 같이 [] 표시 기호를 꼭 변수 뒤가 아닌 앞쪽에 붙여도 상관 없습니다. 단, 이렇게 선언하면 dArray뿐만 아니라 뒤에 연속적으로 나오는 변수명도 Array로 취급됩니다. 따라서 위와 같은 경우 otherArray 변수도double type element를 갖는 Array로 선언된 것으로 취급되는 것입니다. 하지만 다음과 같은 선언은 변수msgArray는 Array이지만 str은 단지 String class type 변수일 뿐입니다.

String msgArray[], str;
반드시 주의하실 것은 선언할 때 [] 안에 절대 size 정보를 주지 말아야 한다는 것입니다. 잊지 마세요!!!

2) Array 생성법 (메모리 할당하기)
이 번에는 어떤 type element를 갖는 Array로 선언된 변수에 실질적인 메모리를 할당하는 방법에 대해 알아보겠습니다.이러한 생성 역시 new 연산자를 이용하게 됩니다. 생성된 모든 Array들은 length 라는 member 변수를 갖게 되는데, 이 member 변수 length에는 element가 몇 개 생성되었는지에 대한 정보가 저장됩니다. sizeof연산자가 필요없는 또 다른 이유라 할 수 있겠죠.

다음은 선언과 함께 new operator를 사용하여 arrary을 생성하는 예문입니다.

int intArray[] = new int[100];
이와 같이 element 갯수에 대한 정보는 new 연산자를 사용 할 때 지정하게 됩니다. 위의 경우 선언과 생성이 완료되면 intArray[0]부터 intArray[99]까지 총 100개의 element를 int type 변수로 사용할 수 있는 것이지요. 이 때 intArray.length에는 100의 값이 저장될 것입니다.

다음은 선언과 생성을 별도로 코딩한 것입니다.

double [] dArray, otherArray;

dArray = new double[100];
otherArray = new double[200];

int i = 5; // 라인 1.
String msgArray[] = new String [i]; // 라인 2.

msgArray[0] = new String("first msg"); // 라인 3.
msgArray[1] = new String("second msg");
msgArray[2] = new String("third msg");
msgArray[3] = new String("forth msg");
msgArray[4] = new String("fifth msg");
앞에서 언급한 것처럼 Array element 갯수는 new 연산자를 사용하는 생성 부분에서 정의되기 때문에, element 갯수에 대한 정보는 위의 예문과 같이 변수화될 수 있는 것입니다.

라인 1과 라인 2의 선언과 생성을 통해 msgArray[0]부터 msgArray[4]까지 5개의 element가 String class type으로 사용할 수 있게 되었습니다. 이 때 (7. 변수 선언 : 기본 개념에서 학습한 바와 같이) String class type은 Reference Data Type이므로 라인 3 이하의 문장들과 같이 String object를 생성하는 작업이 필요함은 이미 다 알고 계시겠죠?

3) Array 초기화

Array는 다음과 같이 한 줄로 선언과 생성, 초기화를 동시에 만들어 낼 수도
있습니다. (잘 익혀두세요!!!)

int intArray[] = {100, 200, 300};
float fArray[] = {1.1f, 2.2f, 3.3f, 4.4f};
String sArray[] = {"hello", "SCJP", "exam"};
이때 Array들은 초기화한 개수만큼 element들이 생성됩니다. 즉, intArray.length는 3의 값을 갖게 되는 것입니다.

또한 다음과 같이 반복문을 이용하여 생성된 Array에 초기값을 할당할 수도 있습니다.

int score[] = new int[3000];

for (int i = 0; i < score.length; i++)
score[i] = i ;
이 평범해 보이는 문장에서 살펴볼 사항은 반복 횟수에 대한 것입니다. 즉, 생성한 Array의 length라는member 변수를 이용함으로써, 만약 나중에 new 문에서 지정한 element의 갯수가 변하더라도 초기화에 사용된 조건문을 일일이 확인 하지 않아도 되니까 그만큼 안전한 프로그램이 될 수 있을 것입니다.

자바는 C처럼 array boundary를 넘어서는 코드를 만들 수 있게 놔두지 않습니다. 물론 컴파일에서는 별 탈이 없겠지만, 실행에서는 array boundary를 벗어나면 이를 잡아내 주게 되어 있습니다.

int score[] = new int[3000];

for (int i = 0; i < 3001; i++)
score[i] = i ;

위와 같은 코드가 컴파일되어 실행된다면 i가 2999일 때 까지는 제대로 잘 실행되어 처리되다가, i가 3000을 갖고score를 access 하는 순간 boundary를 벗어나 다른 메모리 영역을 침범하는 것이 아니라 바로

ArrayIndexOutOfBoundsException

이라는 예외(exception)를 발생시켜 이를 처리 할 수 있게 해주는 것입니다. (예외(exception)에 대한 자세한 내용은 7장에서 다룹니다.)

4) 다차원 Array
자바에서도 2차원 이상인 arrary을 만들 수 있습니다.

int twoDimArray[][] = new int[4][10] ;

이러한 선언과 생성은 twoDimArray[0][0]부터 twoDimArray[3][9]까지 4 by 10의 정사각형을 연상시키는 40개의 element를 만들 것입니다. 그런데 만약 2차원 arrary을 사용함에 있어 각각의 크기를 다르게 하고 싶다면 어떻게 해야 할까요?

int twoDimArray[][]; // 라인 1.

twoDimArray = new int[4][]; // 라인 2.

twoDimArray[0] = new int[5]; // 라인 3.
twoDimArray[1] = new int[10]; // 라인 4.
twoDimArray[2] = new int[3]; // 라인 5.
twoDimArray[3] = new int[7]; // 라인 6.

for (int i = 0; i < twoDimArray.length; i++)
for (int j = 0; j < twoDimArray[i].length; j++)
twoDimArray[i][j] = 0;
라인 2에서는 element 갯수가 4개인 2차원 Array를 생성한 것이고 라인 3,4,5,6에서는 이렇게 생성된 각 element가 필요로 하는 만큼의 Array를 생성하는 것입니다.

for 문으로 이루어지는 초기화 작업에서 각각의 반복 횟수로 사용된 값들을 의미있게 살펴보세요.twoDimArray.length는 4가 될 것이고 twoDimArray[0].length는 5 twoDimArray[1].length는 10 twoDimArray[2].length는 3 twoDimArray[3].length는 7이 될 것입니다. 이렇게 하면 2차원 Array를 꼭 정사각형이 아닌 dynamic한 형태로 사용할 수 있겠죠?

9. class 기본 개념
1) main 메소드 정의하는 법
자바에서의 메소드는 독립적으로 호출될 수 없으며 반드시 객체의 일부로서만 호출이 가능합니다. 그러나 예외적인 메소드가 있는데 바로 main 메소드입니다. 이 메소드는 자바 프로그램을 실행할 때 자바가상머신(JVM)에서 호출되는 최초의 메소드입니다.

java 실행할 class이름
의 명령으로 class를 실행할 때 자바가상머신(JVM)에서 class 이름으로 지정된 class에 포함된main 메소드를 호출합니다.(앞서 살펴본 바와 같이 애플릿의 경우는 조금 다릅니다.) 따라서, 여러 개의 class로 이루어진 프로그램의 경우 반드시 시작 class, 즉 java 명령으로 실행할 때에 필요한 이름의 class에는 main 메소드가 있어야 합니다.

C나 C++과 달리 자바에서는 모든 프로그램이 class scope내에서만 정의됩니다. 그러므로 자바에서는 main 메소드도 한 class의 메소드로 정의하게 되어 있습니다. main 메소드의 선언은 다음과 같은 형식으로 정해져 있습니다.

public static void main(String arg[])

만약 main의 선언 중 무엇인가가 틀려서 맞지 않으면 컴파일 때는 문제가 없으나 실행할 때 main의 선언이 잘못되었다는 error가 나오게 됩니다. 예문을 한번 살펴볼까요?

public class HelloWorld {
public static void main(String arg[]) {
System.out.println(" Hello World!");
}
}

앞서 언급한 것처럼 HelloWorld라는 class의 메소드로 main 메소드가 정의되어 있습니다. 이때,

main 메소드를 public으로 선언한 것은 interpreter와 같이 실행 시킬 때 외부에서도 main을 참조할 수 있게 하기 위함이고, static은 HelloWorld라는 instance를 생성하지 않고도 main을 참조하게 해주며 (이것의 자세한 내용은 5장 3절 4. static modifier에서 다룹니다.) void는 return value가 없음을 뜻하는 것입니다.
main 안의 출력 함수인 println()은 System class 안에 있는 out 멤버 변수의 형(type)인 PrintStream object에 포함된 메소드로서 ()안에 포함된 내용을 출력합니다.

main 메소드의 인수인 String arg[]는 command line에 정의된 문자열을 받아들이는 arrary로 arg라는 이름 대신 다른 이름을 써도 괜찮습니다.

컴파일 완료 후

c:\> java HelloWorld seoul pusan

와 같이 실행시키면 arg[0]에 seoul, arg[1]에 pusan 이라는 문자열이 넘어오는 것입니다.

main 메소드 선언 부분을 보면 String 타입의 arrary이 인자값으로 넘어오는 것을 알 수 있습니다. main메소드의 인자값 args[0]는 자바 interpreter 실행시에 인자로 넘어온 값을 의미합니다. 자바 인자값은 자바interpreter와 시작 class를
제외한 나머지를 모두 인자로 넘겨줍니다.

class ArgTest{
public static void main(String arg[]){ // 라인 1
for(int i=0; i < arg.length; i++){ // 라인 2
System.out.println(arg[i]); // 라인 3
}
}
}
위의 코드는 라인 1의 인자값 arg arrary을 이용하여 라인 3에서 인자의 개수만큼 출력시켜보는 내용입니다.라인 2의 length 변수는 arrary의 크기를 나타냅니다. (7절에서 배웠습니다.) 위의 코드를 작성한 후 컴파일합니다.컴파일 완료 후에 아래와 같이 세가지 방법으로 실행합니다.

java ArgTest 하하하 호호호 // 라인 4
java ArgTest 100 + 200 // 라인 5
java ArgTest // 라인 6

라인 4를 실행하면 라인 1의 arg[] arrary에 "하하하", "호호호" 두개의 String 데이터가 arrary을 이루게 되므로 arg.length는 2가 됩니다. arg[0]에는 "하하하", arg[1]에는 "호호호" String을 할당받습니다.

라인 5의 경우 arg.length는 3이고 arg[0]는 "100", arg[1]는 "+", arg[2]는 "200"의String을 할당받습니다. 이 때, 라인 5의 명령 수행시 입력한 100과 200은 숫자가 아닌 String으로 읽혀오므로 자바 프로그램 내에서 다시 원하는 정수나 실수 타입으로 변환하여 사용해야 함을 주의하십시오.

마지막으로 라인 6의 경우에는 프로그램 실행에 필요한 인자값이 입력되지 않았으므로 arg.length는 0 이고 화면에 출력되는 내용은 없습니다.

2) 변수의 초기화
자바는 크게 두 가지 종류의 변수를 제공하고 있습니다. 하나는 멤버 변수이고 또 하나는 지역 변수입니다. 이 둘은 서로 사용되는 scope도 다를 뿐더러 초기화에 관련된 사항도 많이 다릅니다.

public class TestVar {
int i;
public static void main(String arg[]) {
....
}

int calcSum() {
int j;
....
}
}
예를 들어 위와 같이 TestVar라는 class를 정의할 때 main 메소드나 calcSum 메소드와 동일한 scope에서 정의된 변수 i는 멤버 변수이며, calcSum 메소드에서 정의된 변수 j는 지역 변수입니다.

멤버 변수는 class 안의 어디서든 참조 가능하고 한 class 안에서는 global하게 값이 유지됩니다. (단,static으로 선언된 메소드에서는 non static인 멤버 변수를 access 할 수 없습니다. 자세한 내용은 5장 4절3주제 static modifier에서 설명합니다.) 그리고 멤버 변수가 선언되어 생성된 후 별도로 초기값을 지정하지 않으면 선언한 Data Type에 따라 다음과 같은 default 값을 초기값으로 갖게 됩니다.
Array가 생성될 때 갖는 초기값들과 같은 초기값들이죠?

이와는 달리 지역 변수는 한 메소드 scope 안에 선언된 변수들을 말하는 것으로, 메소드가 호출되었을 때 stack에 생성되었다가 수행이 완료되면 없어지는 성격을 가지고 있습니다. 때문에 지역 변수를 automatic 변수라고도 부릅니다. 이런 지역 변수는 선언되었을 때 멤버 변수와는 달리 시스템에 의해 자동적으로 초기화 값이 주어지지 않습니다. 그래서 자바는 컴파일할 때 초기화를 하지 않고 사용하는 지역 변수는 전부 error로 처리합니다.

public class TestVar {
int sum;

public static void main(String arg[]) {
TestVar t = new TestVar();

System.out.println("SUM=" + t.calcSum(10));
}

int calcSum( int lim ) {
int i = 0; // 라인 1.
int result; // 라인 2.

if (true) {
while (i < lim) {
result = result + i;
i++;
}
}

return result;
}
}
위와 같은 예문을 컴파일하면 지역 error 메세지가 발생할까요? 안 할까요?

이러한 상황의 프로그램에 대해서도 컴파일러는 지역 변수를 초기화하지 않았다는 error 메세지를 발생할 것입니다. 당연하겠죠.하지만, 지역 변수를 선언하고 초기화 하지 않았더라도, 사용을 하지 않으면 컴파일 에러는 발생되지 않습니다.

변수를 선언한다는 것은 사용하기 위한 메모리가 잡히게 되는 것이고, 초기화를 한다는 것은 이를 사용하기 위해 미리 메모리를 정리한다는 의미입니다.

멤버변수는 초기화를 자동적으로 해주니까 문제가 없는데, 지역 변수는 초기화가 자동적으로 되지 않으므로 별도로 사용하기 전에 초기화를 하지 않으면, 그 메모리 영역에 어떤 값이 들어가 있으지 모르겠죠. 이 메모리에 들어있는 정리되지 않은 값, 즉 쓰레기 값을 가지고 동작을 시키려면 어떻게 상황이 발생될 지 모르죠. 이를 막기위해서 초기화되지 않은 지역 변수 사용을 컴파일러가 에러를 발생시키면서 수정하도록 만들어 에러를 미리 방지하는 것입니다.

하지만, 선언만 해놓고 사용하지 않는다면 컴파일시 문제는 없지만 while 구문안의 result = result + i; 라인을 없애보고 컴파일하면 어떻게 되는지, 한 번 테스트 해보세요.

3) 자바의 멤버변수와 지역변수
자바에서는 어디에서 변수를 선언할까요?
자바에서의 변수 선언은 { }으로 묶여있는 곳이라면 어디에서나 가능합니다. C나 C++의 경우 변수 선언 외의 실행문이 나오기 전에 모든 변수가 선언되어야 합니다. 그러나 자바에서의 변수 선언은 어디에서나 가능합니다.

for(int l = 200; l < 500 ; l++){
int j = l * 300;
while ( j < 800){
int k = 500;
}
}
위의 코드를 살펴보면 for문 내에서 int 타입의 변수 l, j가 선언되어 각각 초기화된 후 사용됩니다. 이렇게 { } 내에서 선언된 변수를 지역변수(local variable)이라고 합니다. { } 내에서 선언된 지역 변수는 { } 지역을 벗어나면 자동으로 삭제됩니다.

while(true) {
int var1 = 200;
while (true) {
int var2 = 300;
System.out.println(var1); // 라인 1.
System.out.println(var2); // 라인 2.
break;
}
System.out.println(var1); // 라인 3.
System.out.println(var2); // 라인 4.
}
위의 코드를 살펴보면 라인 1 문장은 라인 1을 포함한 while을 포함한 외부 while 블록에서 선언된 변수var1을 사용하므로 올바른 코드입니다. 라인 2 문장은 라인 2 문장을 포함한 while 블록에서 선언된 변수 var2를 사용하므로 역시 올바른 코드입니다. 라인 3 문장은 라인 3 문장을 포함한 외부 while 블록(첫문장) 내에서 선언된 변수var1을 사용하므로 역시 올바른 코드입니다. 마지막으로 라인 4 문장은 내부의 while 블록에서 선언된 var2가 내부while 블록을 종료하면 더 이상 사용할 수 없는 변수이므로 error가 발생합니다.

class LocalTest{

String s = "member 변수"; // 라인 1

public void m1(){
System.out.println(s); // 라인 2
}

public static void main(String args[]){
String s = "main 메소드의 local 변수"; // 라인 3
System.out.println(s); // 라인 4
System.out.println(new LocalTest().s); // 라인 5
}
}
위의 코드를 살펴보면 라인 1에서 선언되어 초기화된 s 변수가 m1 메소드 내의 라인 2 문장과 main 메소드 내의 라인 5 문장에 의해 사용됩니다. 라인 1의 s 변수는 class가 정의되면서 class { } 내에서 사용할 수 있도록 정의한 것입니다.
이러한 타입의 변수는 class 내에서 멤버 변수(Member Variable)라고 합니다. 그리고 라인 3 문장에 의해main 메소드 내에서도 같은 이름의 변수 s가 선언되어 초기화되었습니다. 라인 3의 s 변수는 main() 메소드 블록 내에서만 사용할 수 있는 변수입니다.

예문에서 살펴보았듯이, 변수가 선언되는 지역에 따라 멤버 변수인지, 지역 변수인지 나눌 수 있습니다. 멤버 변수는 선언된 class 내의 어디에서나 사용될 수 있고 지역 변수는 그 변수가 선언된 블록({ }) 내에서만 사용합니다. 그리고 멤버 변수는 선언과 동시에 자바 컴파일러에 의해 묵시적으롤 초기화값을 할당받습니다. 그러나 지역 변수는 묵시적인 초기화가 이루어지지 않으므로 반드시 프로그래머가 명시적으로 초기화값을 할당하여야 합니다.

각 데이터 타입에 따른 묵시적인 초기화값은 다음과 같습니다.

class LocalTest{

String s ; // 라인 1

public void m1(){
System.out.println(s); // 라인 2
}

public static void main(String args[]){
String s ; // 라인 3
System.out.println(s); //라인 4
System.out.println(new LocalTest().s); //라인 5
}
}
라인 1의 멤버 변수 s 는 라인 2와 라인 5가 실행되면 묵시적으로 null로 초기화되므로 null을 출력합니다. 라인 3의main 메소드의 지역 변수 s는 선언만 하고 초기되지 않았습니다. 지역 변수는 묵시적으로 자동 초기화되지 않으므로 라인 4에서 출력되지 않고 에러가 발생합니다.

10. 매개변수 전달방식
1) 매개변수란?
메소드가 호출 될 때 값을 주어야만 호출 되어지는 것을 쉽게 볼 수 있습니다. 만일, 아래와 같이 선언된 add 메소드가 있다고 가정해 보겠습니다.

int add(int x, int y)
이 메소드를 호출하려면 x, y값을 두개를 넣어 주면 add이라는 메소드는 내부적인 작업을 끝마친 뒤 x와 y를 더해서 return을 하게 됩니다. 이 때 우리는 x, y를 매개 변수라고 합니다. x, y는 add 메소드의 호출과 동시에x, y를 메소드의 내부에서 생성하게 되며 외부에서 넘어오는 값을 중간에서 할당 받게 됩니다. add(1, 2)라고 호출한다면x에는 1이 직접 할당의 방법으로 할당되고 y에는 2가 할당 되어집니다.

int a;
a=8;
......
int add(int x, int y){
return x+y;
}
......
add(1,2);
그럼 언제 매개변수를 사용할까요?

이에 대한 답은 필요하다고 생각 될 때 메소드를 만드는 프로그래머가 만들면 됩니다.

그럼 매개변수는 몇 개까지 사용할 수 있을까요?

이에 대한 답은 역시 필요하다고 생각 될 때 필요한 만큼의 개수까지 사용할 수 있습니다. 즉, 무제한입니다.

메소드의 이름은 매개변수와 결합하여 변수의 역할을 수행하므로 매개변수의 개수와 데이터 형을 맞추지 않으면 메소드는 호출할 수 없습니다. 이 때, 매개변수의 데이터 형은 반드시 지켜야 합니다. 즉, 매개변수는 메소드 내에 만들어지지만 외부로부터 값을 받을 수 있는 유일한 통로입니다.

2) Primitive Data Type 매개변수
다음의 프로그램을 살펴보며 Primitive Data Type 매개변수를 사용할 때 발생되는 결과를 알아보겠습니다.

public class TestParam {
public static void main(String arg[]) {
int ival = 0;
TestParam mainobj = new TestParam(); // 라인 1.

mainobj.effectParam(ival); // 라인 2.
System.out.println("main ival: "+ ival);
}

void effectParam(int ival) {
ival = 300;
System.out.println("sub ival: "+ ival );
}
}
C를 조금이라도 해 본 분들은 이 프로그램의 실행 결과를 예측하실 것입니다. (call by value)

sub ival: 300

main ival: 0
main 메소드에서 0의 값을 가진 ival 변수를 매개변수로 하여 effectParam 메소드를 호출하면 (이미scope가 다르기 때문에) effectParam 메소드에서 사용하기 위한 복사본이 만들어집니다. 즉, effectParam메소드에서 사용하는 ival은 main 메소드에서 전달한 ival의 값을 그대로 갖는 별도의 메모리를 할당하여 사용하는 것으로서effectParam 메소드의
실행이 끝나 return 되면 메모리에서 자동적으로 사라집니다. 그러니 main 메소드의 ival은 당연히 아무 영향도 받지 않게 되는 것이지요.

3) Reference Data Type 매개변수
이번에는 Reference Data Type 매개변수를 사용한 프로그램을 살펴볼까요 ?

public class TestParam {
public static void main(String arg[]) {
Param p = new Param(); // 라인 1.
TestParam mainobj = new TestParam();

p.ival = 100;
mainobj.effectParam(p); // 라인 2.
System.out.println("main ival: "+ p.ival);
}

void effectParam(Param p) {
p.ival = 300;
System.out.println("sub ival: "+ p.ival);
}
}

class Param { // 라인 3.
int ival;
}
자, 여기서는 Param이란 새로운 class를 정의하고(라인 3) Param class의 object를 생성한 후(라인1) 이를 매개변수로 effectParam 메소드를 호출하였습니다.(라인 2) 이와 같은 프로그램의 결과는 어떻게 나올까요?

sub ival: 300
main ival: 300
main 메소드에서 Param class type으로 선언된 p는 new 문에 의해 생성된 Param object의 주소 값을 갖게됩니다.
따라서 이러한 p가 effectParam 메소드에 매개변수로 전달 되는 것은 Param object의 주소 값을 전달하는 것이므로 (effectParam 메소드에서 p가 local 변수이긴 하지만) 결국 main 메소드의 p와 effectParam의p는 동일한 Param object를 point하게 됩니다.

그러므로 effectParam 메소드에서 Param object의 ival을 300으로 바꾼 것은 (비록effectParam 메소드의 실행이 끝나 return 되면 p는 메모리에서 자동적으로 사라진다하더라도) main 메소드의 p가 포인트하고 있는 Param object의 값을
변경한 것이 되는 것입니다.

public class TestParam {
public static void main(String arg[]) {
Param p = new Param();
TestParam mainobj = new TestParam();

p.ival = 100;
mainobj.effectParam(p);
System.out.println("main ival: "+ p.ival);
}

void effectParam(Param p) {
p = new Param(); // 라인 1.

p.ival = 300;
System.out.println("sub ival: "+ p.ival);
}
}

class Param {
int ival;
}
앞에서 살펴 본 프로그램에 라인 1을 추가한다면 어떤 결과가 나올까요? (실제로 만들어 한번 테스트해 보세요.)

sub ival: 300 main ival: 100
이와 같은 결과가 나오는 이유는, p를 매개변수로 전달 받을 때 까지는 main 메소드의 p가 포인트하는 Param object의 주소를 갖고 있었지만, 라인 1을 통해 새로운 Param object를 만들어 이것의 값을 바꾼 것이기 때문입니다. (참고적으로 effectParam 메소드에서 새로 생성한 Param object는 return 되면서 바로Garbage collection의 후보가 된답니다.)

 


JAVA의 정석 2nd Edition (연습문제 풀이)


Cover 페이지


JAVA의 정석.pdf


저작권에 문제가 되면 지체마시고 연락주세요!!!


윈도우7 USER-PE 완전판(나도 컴퓨터 AS 전문가)

 

윈도우7 USER-PE 를 사용하면 컴퓨터 AS(컴퓨터 응급복구, 윈도우 설치등) 전문가가 됩니다.
(실제로 컴퓨터 AS 기사나 컴퓨터 AS 팀장들이 사용하고 있습니다.)

< 완전판 특징 >

1. 유틸 최신버전 업데이트 완료되었고, 더 이상은 고칠데가 없다고 생각합니다.

2. 2012-07-15 일자로 릴리즈된 WanDrv_5.26 드라이버 팩 통합 업데이트

① WanDrv_5.26 [USB 3.0 드라이버 팩 통합] 업데이트
② WanDrv_5.26 [Lan(유선 랜카드) 드라이버 팩 통합] 업데이트
③ WanDrv_5.26 [Wlan(무선 랜카드) 드라이버 팩 통합] 업데이트
 

 



초보오버클럭커의 그래픽 카드 오버 & 오버 안정화 방법

그래픽 카드 오버 클럭  / 오버 클럭 안정화 방법

 출처: 쿨엔조이


1. 그래픽카드 오버 방법


그래픽카드의 오버는 보통 "애프터버너" 라는 프로그램으로 시작합니다.

(밑에 애프터버너가 버그가 많다는 글이 있던뎅ㅠㅠ, 그런분들은 아수스 트윅으로 하시면 됩니다.)


애프터버너(2.2.3 버젼)와 같은 그래픽카드 오버 프로그램을 실행하면, 우선적으로


Core Voltage

Power Limit

Core Clock

Memory Clock


이렇게 4가지 항목이 뜹니다.


* Core Voltage 는 건드리지 않는걸 추천드립니다.

* Power Limit 은 극오버(최대한 오버)를 하는데 필수적으로 올려야 하는 수치 입니다. 

보통 초심자들은 이 수치를 올리지 않아서, 세번째의 Core clock, 네번째의 Memory Clock을 조금밖에 못올리네~ 

뿔딱 그래픽카드이구나~ 라고 잘못된 판단을 내리기 쉽습니다.


* Core Clock 은 그래픽카드의 성능을 올리는 가장 큰 영향을 끼치는 수치입니다. 

애프터버너에서는 현 그래픽카드에서 지정되어 있는 클럭에서, 추가적으로 얼마를 더 올릴껀지를 조절할 수 있습니다. (그래픽카드의 기본 core clock이 900이라면) +50 으로 변경하면, Core Clock이 950이 되고, 

+100으로 올리면 Core Clock이 1000이 됩니다.


* Memory Clock 은 그래픽카드의 성능에 작은 양향을 주는 수치입니다. 

역시 애프터버너에서는 현 그래픽카드에서 지정되어 있는 클럭에서, 추가적으로 얼마를 더 올릴껀지를 조절할 수 있습니다. 그래픽카드의 기본 Memory clock이 6000이라면 +50 으로 변경하면 실제로는 그 2배인 +100이 추가 되어, 

6100이 되고, +500 으로 변경하면 실제로는 그 2배인 +1000이 추가 되어, 7000이 됩니다.


(실제로 높일 수 있는 최대 수치는 그래픽카드마다 다 다르며, 검색을 통해 자신과 같은 그래픽카드를 보유하신분의 

오버 클럭 수치를 보고 적용해보고, 안정화 테스트 해보는게 좋습니다.)


변경이 끝났으면, 하단의 적용(apply)을 눌러줍니다. Apply를 눌어주셔야 그때부터 오버한 수치가 적용됩니다.

그리고 Apply 밑의 영어로 "재부팅해도 이 셋팅이 유지되게 하시겠습니까" 라는 부분 앞에 체크를 해주시면 됩니다.


------------------------------------------------


2. 그래픽카드 오버 안정화 테스트 방법


오버클럭한 수치가 과연 자신의 그래픽카드에게 무리를 주지는 않는지, 

실사용시에 오류가 뜨지는 않을찌 걱정이 되실 껍니다.


그래서 오버클럭을 한 뒤에, 오버한 수치가 안정적인지 테스트를 할 필요성이 생깁니다. 

일반적으로 3D Mark 11이라는 프로그램을 가장 먼저 돌립니다. 3D Mark11 (일명 삼디막)을 돌리기 위해서는 

우선 아래의 4가지를 체크해 두셔야 합니다.


* 수직동기화 끄기

* 바이패스 모니터 인지 아닌지 확인

* 그래픽카드 드라이버의 최신 유무 

* 지포스라면 PhysX 드라이버도 설치


* 수직동기화 끄기 : 우선 그래픽카드 제어판에 들어가셔서 수직동기화를 "끄기" 하셔야 합니다.

그래픽카드의 성능이 60프레임 이상 넘어가게 되면 모니터의 한계로 화면에 줄이 생기거나하는 오류가 생기게 됩니다. 

그래서 수직동기화를 켜면 60프레임 이상은 무조건 60 프레임으로 고정되게 만듭니다. 

그러나 그래픽카드의 테스트시에는 60프레림 이상 올라가는 그래픽카드의 진짜 성능을 발휘시켜줘야 하기 때문에, 

모니터 화면상에 오류가 있을찌라도 수직동기화를 끄셔야 합니다.


* 자신의 모니터가 바이패스 모니터 인지 아닌지 확인 : 바이패스 모니터(보통 27인치 이상)의 경우

3D Mark11의 점수가 300~500 정도 더 낮게 나온다고 합니다.

바이패스가 아닌 모니터 (보통 24인치 이하)의 경우 3D Mark11의 점수가 바이패스에 비해 300~500 정도 더 높게 나오구요.

이 점 염두해 두시고, 다른 분과 3D Mark11 점수를 비교할때 스트레스 너무 받지 마셔요. 

그 분은 바이패스가 아닌 모니터를 쓰고 계실 수도 있으니까요.


* 그래픽카드 드라이버의 최신 유무 : 그래픽카드의 드라이버에 따라 3D Mark11의 점수가 제법 큰 차이를 나타냅니다.저같은 경우 최신 정식버젼의 드라이버를 설치했더니 다른분과 3D Mark11 점수가 200점 가량 더 낮았습니다. 

하지만 정식 버젼보다 더 최신인 가장최신 베타 드라이버를 설치했더니 200점이 올라서 다른분과 비등해 지더군요.


* 지포스라면 PhysX 드라이버도 설치 :  Nvidia 지포스 그래픽카드를 사용하시고 계시다면 "자료실"에서 최신의 PhysX 드라이버를 설치해 주세요. 성능이 약간 상향됩니다.


위 4가지 사항을 점검하셨다면 이제 3D Mark11를 돌려봅니다. Basic탭에서 Performance(기본적으로 선택되어 있음)로 Benchmark Tests Only 에 체크 + Stretched 에 체크 하시고, 오른쪽에 있는 Run 3DMark 11을 클릭해 줍니다. 


 총 6가지 테스트를 실행하며,

1번째~4번째는 그래픽테스트, 5번째는 cpu,ram 테스트, 6번째는 그래픽+cpu+ram 종합 테스트입니다.


* 테스트 도중에 키보드의 키를 누르면, 조금뒤에 중단이 되어 버립니다.

* 4가지 그래픽카드 테스트, 도중에 아무 이유없이 팅기면서 바탕화면이 뜬다면 대부분, 

오버클럭한 그래픽 안정화 실패입니다. 오버한 수치를 낮추어야 됩니다.

* 5번째 테스트인 Physics Test 도중에 팅긴다면, cpu오버나 ram오버의 실패를 의미합니다.


6가지 테스트를 다 완료한뒤에, 조그만 더 기다리시면 테스트 결과가 수치로 표시가 됩니다.

그 수치 가운데 Graphic Score가 그래픽카드의 성능을 표시해주는 수치입니다. 

이 수치가 낮으면 '뿔딱이다.' 높으면 '수율좋다.' 라고들 합니다.


삼디막11 테스트를 무사히 통과한 뒤에는 콤버스터(Kombustor) 2.3 버젼을 다운받아서 실행시킵니다.

뜬 화면에서, 그래픽카드가 Nvidia 지포스계열 이시라면 PhysX GPU에 체크하시고, AMD 이시라면 그대로 바로

 [Run X-score]을 클릭해 주시면 됩니다. 테스트가 100%까지 진행되기전에 도중에 멈춘다면, 

그래픽 오버 안정화 실패입니다. 무사히 100%까지 통과하셨다면 안심하시구요.


삼디막11과 콤버스터를 통과 하셨다면 일단은 성공이라고 보시면 됩니다.


이젠 배틀필드3 나 기타 여러 그래픽카드를 괴롭게 하는 게임을 통해서, 실사용 테스트를 해보시면 됩니다.


포토스케이프 (PhotoScape) 다운로드 / 간단한 사진 편집 프로그램 추천


포토스케이프 실행 화면


포토스케이프 인트로 영상


포토스케이프(PhotoScape)는 디카와 폰카 사진을 쉽게 향상,보정,편집하는

"재미있는 사진편집 프로그램" 입니다.


기능리스트

 -사진뷰어: 폴더의 사진을 한눈에 보기, 슬라이드쇼

 -사진편집: 크기/밝기/색상 조절, 역광보정, 액자, 말풍선, 모자이크, 글쓰기, 그리기, 자르기, 필터,

               적목보정, 뽀샤시, 복제도장툴

 -일괄편집: 여러 장을 한번에 변환하는 일괄처리

 -페이지: 여러장을 템플릿 한장으로 만들기

 -이어붙이기: 아래로, 옆으로, 바둑판으로 여러장을 한장으로 이어 붙이기

 -GIF애니메이션: 움직이는 GIF 사진으로 만들기

 -인쇄: 증명사진,명함사진,여권사진이나 썸네일 인쇄

 -사진분할: 한장의 사진을 여러장으로 분할

 -화면캡쳐: 화면을 캡쳐해서 편집,저장하는 기능

 -색상검출: 사진이나 웹상의 화면을 확대해서 색상을 알아내는 색상검출 기능

 -이름변환: 사진이름 일괄변환

 -RAW변환: RAW 파일을 JPG 파일로 일괄변환

 -종이: 줄노트,모눈종이,오선지,달력 출력

 -얼굴검색: 인터넷에서 동일하거나 비슷한 얼굴을 검색

 -사진북마크: 사진전문 즐겨찾기


간단한 이미지편집등에 유용한 무료 이미지 편집 프로그램입니다.



[한글판] 안드로이드 개발자 가이드 / 안드로이드 입문서


"안드로이드 입문서 3rd Edition을 발행합니다.

 

칸드로이드가 영어로만 씌어져 있던 Android Dev. Guide를 

한글로 번역해 책으로 출간하고, 웹으로 오픈하고,

PDF 파일로 공개하는 것은 확산과 공유의 정신을 고양하기 위해서입니다.


베이직&클래식한 안드로이드 입문서를 기반으로 

개발자들이 보다 발전적이고 창조적인 대화를 나눌 수 있기를 희망합니다.


" 가치 공유의 확산 ! "


이것이 칸드로이드가 안드로이드 입문서를 공개하는 단 하나의 이유입니다.

많은 분들에게 도움이 되길 바라며..


더불어 함께 이 일을 해 나가고 있는 모든 칸드로이드 운영진들께 항상 감사합니다.


2010년 2월 23일


kandroid 운영자."



[제2.5차] 티스토리 초대장 배포합니다~ (배포 완료)


i n v i t a t i o n

티스토리 초대장


*****************************************************

첫 문장부터 마자막 한 글짜까지 자세히 읽어주세요!!

*****************************************************

티스토리 이래서 좋아요!
1. 이미지, 동영상, 오디오, 파일까지! 무한 용량과 강력한 멀티미디어를 올릴 수 있어요!
2. 스킨위자드로 스킨을 내맘대로~ 거기에 기능 확장 플러그인까지!
3. 내가 원하는대로 myID.com으로 블로그 주소를 만들 수 있어요!

 

티스토리 초대장 1장을 나눠 드립니다.

 

나눠드리는 순서는 댓글을 읽고 판단하여 드립니다!!

선착순 아닙니다!!


티스토리 초대장 배포는 사정에 따라 시간이 좀 걸릴 수도 있습니다.

(작성일로 3~4일 정도....기다려 주세요..)


*** 조건 *** 


1. 정상적인 블로그 운영을 약속할 것 ***


2. 정확한 이메일 주소를 적어주세요 ***


3. 블로그를 시작하려는 이유와 주제를 남겨 주세요***


4. 비밀댓글로 적어주세요 ***


5. 기존에 운영하신 블로그나 웹사이트가 있다면 적어주시길 바랍니다.

참고하겠습니다.


이런 분들께 드리지 않아요!


1. 이메일 주소가 의심되는 분!


2. 이메일 주소를 남기지 않으신 분!


3. 이유도 없이 달라고 하시는 분!


4. 아무 생각없이 그냥 달라고 하시는 분은 절대로!!! 드리지 않습니다.

 

※※ 중요!! ※※

티스토리는 초대장은 활동 실적에따라 지급되므로, 모든 블로거에게

지급되는게 아니라서 그만큼 꼭 필요한분들에게 초대장이 쓰여져야합니다.


제가 선정하여 대상이 되신 분께서는 남겨주신 이메일에 접속하여 초대장을 확인하시고, 

발송일로부터 24시간 이내에 티스토리 가입과 블로그 개설하셔야 하며, 

이후에도 가입안하신 분들은 다른 분들을 초대하기 위하여

초대장을 초대 취소(회수)하니 이 점 양해 바랍니다.


무선공유기 수신율을 높이는 방법


1. 안테나(공유기)를 최대한 높은곳에 설치하라!!!



2. 공유기의 주변에 벽이나 높은 장애물이 있는 경우에는

공유기를 연린공간쪽에 위치시켜 설치하라!!!



3. 공유기의 안테나가 2개 이상을 경유 맞은편 수신 안테나와 

2개의 안태나가 각각 마주 대할 수 있게 90도 각을

유지하여 설치하라!!!



1. 공유기의 안테나가 2개 이상일 경우 최대한 안테나의 간격이 

멀어지게 각도를 조절하라!!!



출처: ipTIME 


마이크로소프트의 무료 백신 프로그램 - Microsoft Security Essentials 

마이크로소프트 시큐리티 에센셜

 

 관련글

2012/07/19 - [프로그램/백신] - 맬웨어를 집중적으로 검색/치료 해주는 백신 "Malwarebytes' Anti-Malware"

 

개인 컴퓨터 보안에 관심을 가지다 보니 안써본 바이러스 백신/ 멀웨어 프로그렘이 없는것 같다.

 

안랩 (AhnLab)의 V3부터 시작해서 알약 (비추 합니다. 이유는 구글 또는 네이버에 물어보심이..;;),

Bitdefender, 카퍼스키, AVG, Avira AntiVir, ESET NOD32등...

 

개인적으로 추천하는 건 Bitdefender사의 백신 프로그램입니다.

다양한 백신 프로그램을 쓰면서 느낌점은 좋은 백신은 대부분 무겁다와 메모리를 많이 잡아 먹는다 입니다.

 

그래서 가볍고 쓸만한 백신 프로그래을 찾아 돌아 다니다가 찾은게 Microsoft Security Essentials 입니다.

 

Microsoft Security Essentials은 마이크로소프트의 무료 백신 프로그램입니다.

윈도우가 정품이면 무조건 무료입니다!!! (뭐 요즘은 거의 윈도우 정품인증 프로그램 쓰시니...;;)

 

평가를 보니 가볍고 바이러스와 스파이웨어들도 잘 잡는다고 그러더군요 ㅎㅎ

 

저는 Microsoft Security Essentials 와 Malwarebytes' Anti-Malware 같이 쓰고 있습니다.

 

Microsoft Security Essentials 다운받기

 

Microsoft Security Essentials설치를 위한 최소 시스템 요구 사항은 아래과 같습니다.

 

 

 

 

 

 

 

MP3 파일의 문제점을 쉽게 찾아주는 MP3-Check


MP3 파일을 오래동안 모으다 보면 어쩔수 없이 본인의 콜렉션 기준에 안맞는 MP3 파일들이 생겨나게 되는데요. 열심히 정리한다고 하는데도, 태그를 안적었거나 품질이 나쁜 음악이 섞여있다던가.. 

이런 상황이 발생합니다.


이럴때 프리웨어인 MP3-Check 프로그램을 이용하면 이런 불량 파일들을 빠르게 찾아낼수 있습니다.


프로그램을 실행하고 왼쪽 프레임에서 원하는 조건을 세팅 하시면 됩니다.


지원하는 검색 조건은 아래와 같습니다.

ID3v1, ID3v2 태그 : U는 지정안됨(Undefined), D는 지정됨(Defined), N은 검색안함 입니다.

Bit rate check : 비트레이트의 최소 최대 조건을 입력합니다.

Sample rate check : 샘플레이트의 최소 최대 조건을 입력합니다.

Channel mode check : 채널 모드의 최소 기준을 선택합니다.

Gain Volume check : 볼륨 데시벨의 최소값 최대값을 입력합니다.


적절한 조건을 입력하고 상단 메뉴에서 디렉토리를 지정하면 검색이 시작됩니다. 저같은 경우 2500여개의 파일을 검색하는데 1분 정도 걸렸네요.


검색 결과는 트리 구조로 구분해서 보여주고, 조건에 맞는 파일이 검색되면 파일을 선택해서 편집하거나 삭제하면 됩니다. 오른쪽 상단의 설정 메뉴에 들어가면 파일 편집에 필요한 외부 프로그램을 등록하는 메뉴가 나오네요.


그리고 참고로 검색 결과 가장 하단에 보이는 Unordinary MP3s는 표준에 안맞거나 깨진 파일을 의미합니다.


MP3-Check은 다량의 음악 파일을 관리하시는 분들에게 쓸모있는 툴일것 같구요. 다만 앨범 아트 검색 기능도 있었으면 하는 아쉬움이 남네요.


다운로드 MP3-Check:  MP3Test_v1.7.0.170.exe




USB 배선도 / USB 연결 방법





 출처: 컴빅스™의 저장소

+ Recent posts