내 컴퓨터에서 ‘공유 문서’ 없애기
윈도우즈 XP에는 여러 이용자가 같이 쓸 수 있는 공유 문서가 있다. 공유 문서에는 공유 그림, 공유 음악이 있는데 집에서 혼자 쓰는 사람에게는 필요 없다. 용량만 차지하는 공유 문서를 지워보자.
시작 → 실행 → regedit 라고 누르면 레지스트리 편집기를 띄운 다음,
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\DelegateFolders에 있는
{59031a47-3f72-44a7-89c5-5595fe6b30ee}를 찾아 지운다.
'시작'에서 문서메뉴 지우기
문서 메뉴가 있으면 작업 했던 문서를 쉽게 불러올 수 있지만, 길게 늘어져 있어 지저분하다. 문서 메뉴를 잘 쓰지 않는다면 깔끔하게 지우자.
시작 → 실행 → regedit 라고 누르면 레지스트리 편집기가 뜬다.
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer 오른쪽에 마우스를 놓고 새로 만들기 → DWORD 값을 고른 뒤,
‘새 값’의 이름을 NoRecentDocsMenu 라고 바꾼 뒤 마우스로 두 번 눌러 값 ‘1’을 넣는다.
바탕화면 단축 아이콘에서 화살표를 지우자
프로그램 파일과 단축 아이콘을 구분하기 위해 단축 아이콘에는 ‘화살표’가 붙어 있다. 알아보긴 쉽지만, 왠지 지저분해 보인다. 화살표를 지우자.
시작 → 실행 → regedit 라고 누르면 레지스트리 편집기가 뜬다.
HKEY_CLASSES_ROOT\lnkfile를 고른 뒤 오른쪽 창에서 → isshortcut를 지우면 된다.
숨겨진 윈도우즈 XP 관리 프로그램들
윈도우즈 XP의 시작 버튼 → 실행을 누르면 ‘실행’ 창이 열린다. 여기에 명령을 써넣으면 작업이 바로 실행된다. ‘실행’ 창에 쓸 수 있는 명령어와 하는 일은 다음과 같다.

compmgmt.msc 컴퓨터 관리와 관련 시스템 도구 창을 연다.
diskmgmt.msc 디스크 관리 창을 띄운다.
eventvwr.msc 윈도우즈 메시지가 담긴 이벤트를 본다.
gpedit.msc 도메인 또는 액티브 디렉토리나 PC에 저장되어 있는 조직 단위에 연결된 그룹 정책 개체를 편집하는 ‘로컬 컴퓨터 정책’을 연다.
perfmon.msc 시스템 성능을 감시하고 로그와 경고를 기록한다.
secpol.msc ‘로컬 보안설정’을 열어 도메인의 PC 보안 정책을 정의하게 도와준다.
devmgmt.msc 하드웨어 장치 목록을 보고 각 장치에 대한 특성을 정하는 ‘장치관리자’ 창을 연다.
dfrg.msc ‘디스크 조각모음’ 창을 연다.
fsmgmt.msc 공유 폴더를 띄운다.
lusrmgr.msc 로컬 이용자를 확인한다.
rsop.msc ‘정책의 결과 집합’ 창을 연다.
services.msc ‘서비스’ 창을 띄운다.
메뉴를 빨리 빨리
제원이 낮은 PC를 쓰고 있다면 창이 뜰 때 나타나는 갖가지 효과를 없애 창을 빨리 띄워보자.
시작 → 실행 → regedit 라고 누르면 레지스트리 편집기가 뜬다.
HKEY_CURRENT_USER\ControlPanel\desktop에서 MenuShowDelay을 살펴보면 400
으로 되어있다. 이 값을 0으로 고쳐주면 된다.

인터넷 익스플로러 이름 바꾸기
인터넷 창 타이틀 맨 윗부분을 보면 Microsoft Internet Explorer란 꼬리표가 달려있다. 이 꼬리표 이름을 내맘대로 바꿔보자. 시작 → 실행 → regedit 라고 누르면 레지스트리 편집기가 뜬다. HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main를 찾은 뒤 편집 → 새로 만들기 한 뒤 Window Title 이라고 써 넣는다. 만들었다면 왼쪽 마우스 단추를 두 번 눌러 이름을 써 넣는다. PC를 재 부팅하면 이름이 바뀐다.

MSN 메신저의 숨겨진 이모티콘들
MSN 메신저에는 재미있는 이모티콘이 들어 있다.
메신저를 띄운 뒤 이 단어들을 채팅창에서 쳐 넣으면 재미있는 이모티콘이 뜬다.
(st) = 비
(%) = 수갑
(pl) = 접시
(ci) = 담배
(li) = 번개
(tu) = 거북이
(xx) = 엑스박스
(yn) = 검지와 중지


반응형

'Useful Tips > SㆍW' 카테고리의 다른 글

윈도우 쉘 제어 프로그램  (0) 2007.12.13
WOL 설정하기  (0) 2007.12.10
구글에서 이북만 골라 찾아보자~  (0) 2007.12.07
사용하지않는 드라이버 삭제  (0) 2007.11.19
UCC 로 실행되는 스크립트 차단 방법  (0) 2007.11.19
구글검색에서 이북찾기
-inurl:(htm|html|shtml|asp) intitle:"index of" +("/ebooks"|"/book"|"/ebook"|"/books") +(chm|pdf|zip)
반응형

'Useful Tips > SㆍW' 카테고리의 다른 글

WOL 설정하기  (0) 2007.12.10
내가 적용하는 윈도우 팁들...  (0) 2007.12.07
사용하지않는 드라이버 삭제  (0) 2007.11.19
UCC 로 실행되는 스크립트 차단 방법  (0) 2007.11.19
듀얼코어 제대로 사용하기  (0) 2007.11.19
1. 윈도우 키와 Break를 동시에 누르거나, "제어판 → 시스템"으로 이동하여 "시스템 등록 정보" 창을 연다..
2. "고급 → 환경변수"로 이동한다..
3. 하단의 "시스템 변수"에서 "새로 만들기"를 누른다..
4. 아래 그림처럼 "변수 이름"에는 "devmgr_show_nonpresent_devices" 라고 기입하고, "변수 값" 은 1로 하고 확인을 누른다..
5. "확인"을 계속 눌러서 "시스템 등록 정보" 창까지 완전히 닫는다..
6. 다시 "시스템 등록 정보" 창을 열고, "하드웨어 → 장치 관리자"로 이동한다..
7. "보기 → 숨김 장치 표시"에 체크한다..
8. 반투명으로 보이는 부분 삭제
반응형
UCC악용 악성코드 대처방법
 
UCC동영상을 볼 때 사용하는 미디어 플레이어 보안 설정을 꼭 해줘야 합니다. 사용자가 악성코드가 삽입된 동영상 파일을 재생할 경우 삽입된 스크립트가 자동 실행돼 PC에 설치하게 됩니다.
 
1. 윈도우 미디어 플레이 메뉴에서 도구 - 옵션을 선택합니다.
 
2. 보안탭을 선택한 후 콘텐트란에 "웹 페이지에서 실행하는 경우 스크립트 명령 및 리치 미디어 스트림 실행 안함" 체크박스에 체크해주면, 악성코드 감염을 예방할 수 있습니다.


출처 : http://www.datafix.co.kr
반응형

윈도우 XP에서 코어 2 듀오와 같은 듀얼코어 프로세서를 사용하는 경우 아래 내용을 반드시 확인하기 바람.

 KB896256  <- 누르시면 다운로드 됩니다.

압축을 푸시면 파일이 5개나옵니다.

레지스터 파일 3개
KB896256 enable
KB896256 disable
KB896256 delete
KB896256 kor.exe
KB896256 eng.exe
대충..요론식으로

쓰시는 윈도우가 한글이면 당연 kor을.. 실행
영문이면 eng를 실행

레지스터는.. enable 하시면 밑에 레지스터추가를 알아서 해줍니다.
(boot.ini 파일은 아닙니다! 그건 알아서 하셔야합니다.)
disable은 당연 취소...사용않함하시는거구요.. (혹문제생기신다면..)
delete는.. 지우는 겁니다 레지스터.


프로세서 전원 관리 기능을 지원하며 다중 프로세서가 장착되어 있는 Windows 기반 시스템에서 성능이 저하될 수 있는 문제를 해결합니다. 이 업데이트를 설치한 후 컴퓨터를 다시 시작해야 합니다.

 http://support.microsoft.com/kb/896256/ko

 KB916199  <- 누르시면 다운로드 됩니다.

창을 누르거나 창의 크기를 조정하면 Windows XP가 응답하지 않습니다.

 *듀얼 코어 시스템에서 윈도우 XP의 고전 테마를 사용하는 경우 ClearType 설정 때문에 간혹 시스템이 멈추는 증상이 있는데, 이를 해결하는 비공식 패치 (첨부 파일)

서비스팩2가 깔린 윈도 XP(홈이던, 프로던, 미디어센터 버전이던 무관.. 심지어 애플 부트캠프까지! 단 가상PC로는 안됨)

멀티코어 컴퓨터(인텔, AMD 무관, 애플 맥북도 상관없음. HT기술을 이용한 '논리적' 듀얼코어도 상관없음)
2. AMD CPU : 마찬가지로 KB896256업데이트를 확인하시고, AMD 드라이버를 깔아야 한다고 합니다

http://www.amd.com/us-en/assets/content ··· etup.exe <- AMD CPU 드라이버 입니다

주의 : AMD CPU를 가지고 있는 경우만 설치하세요

중요한 주의사항 : AMD Dual Core Optimizer를 설치한 사용자의 경우, 핫픽스를 설치할 필요가 없습니다. 원래 듀얼코어 옵티마이저는 MS에서 내 놓은 패치로, 이 파일을 얻기 위해서는 MS에 직접 메일을 보내 하나하나 받아야 한다고 하네요. 그런데 AMD에서 공개해버렸답니다-_-;
http://www.amd.com/us-en/assets/content ··· etup.exe <- 듀얼코어 옵티마이저 링크입니다.


//--- 공통 적용 입니다 ---  위의 패치를 하시고 하시면 됩니다.  ---//

이제 업데이트를 마쳤으면, 컴퓨터를 다시 시작하지 맙니다

시작 - 실행 - regedit 으로 레지스트리 편집기를 엽니다

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager 위치에 가면 Throttle이라는 키가 있습니다. 만약 없다면 우클릭 - 새로 만들기 - 키 로 해서 이름을 Throttle로 해 주면 됩니다

새 DWORD값을 만듭니다. 이름은 PerfEnablePackageIdle 로 하고 값은 1로 합니다.

boot.ini를 엽니다. boot.ini는 보통 c:\에 위치합니다. 노트패드로 열면 됩니다.

아마 대충 이런 내용이 써 있을 겁니다

boot.ini 파일 더 쉽게 접근법.
내컴퓨터 -> 마우스 우측 클릭 , 젤 밑 속성 -> 고급 -> 시작 및 복구 에서 설정
-> 시스템 시작 에서 편집

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect /usepmtimer

가장 마지막에 /usepmtimer만 추가해주시면 됩니다
그리고 이제 다시 컴퓨터를 시작하면 됩니다

출처: http://seok.jore2.com

반응형
출처 : http://tangtang.tistory.com/25

윈도우xp시작할때 로그온시 비밀번호를 푸는방법

1. 사용하시던 계정이 administrator 가 아닐경우
2.사용자 아이디를 administrator 입력후 로그인

사용자 계정 변경 혹은 삭제함.
사용하시던 계정이 administrator 인 경우

1. 시스템을 부팅할 때 [F8]키를 눌러 안전모드(명령 프롬프트 사용)모드로 부팅
2. "del C:\winnt\system32\config\SAM" 를 입력하고 [Enter]
3. 하드 디스크를 떼어 내어 정상적으로 운영되는 컴퓨터에 장착합니다.
4. 정상적으로 부팅한 후 패스워드를 잊어버린 디스크에서
\WINNT\system32\config 안에 있는 sam 파일을 정상적인 시스템의 임시 폴더에 복사합니다.
5. 실행창에서 반드시 "regedt32"로 레지스트리 편집기를 실행합니다.
6. HKEY_LOCAL_MACHINE를 선택한 후 레지스트리 메뉴바에서
하이브로드를 선택합니다.
7. 2번에서 복사한 SAM파일을 선택하고 아무 이름이나 지정한 후 하이브로드 합니다.
8. HKEY_LOCAL_MACHINE 창에서 하이브로드한 파일을 선택하고 메뉴바의 보안을 선택한 후 Administrator가 모든 권한을 가지게 설정합니다
9. 이제 하이브로드한 SAM파일에서 administrator 의 패스워드를 null값으로 바꾸어 줍니다. Administrator의 계정은 SAM\SAM\Domains\Account\Users\000001F4 입니다.

이 값을 선택하면 오른쪽 창에 F:REG_Binary 를 더블클릭하여 열어보면 암호화된 관리자의 패스워드가 보입니다.

모든 값을 지워버리고 공백으로 만듭니다. 즉 패스워드를 null값으로 만들겠다는 뜻입니다.

10. 설정값을 저장한 후 하이브로드한 SAM파일을 다시 하이브 언로드 시킵니다.

11. 이제 이 SAM파일을 원래 패스워드를 잊어버린 시스템에 다시 복사하면 됩니다. 물론 안전을 기하는 의미에서 기존의 SAM파일은 다른 곳에 이동시켜놓는 것이 안전하겠지요...

12. 패스워드가 null값으로 수정된 하드 디스크를 원래의 시스템에 장착한 후 다시 부팅하면 관리자 패스워드를 아무 값이나 넣어도 로그온이 가능하게 됩니다.

모든 사용자 계정을 보는 방법:

1) 컴퓨터에 로그인한

상태에서, [시작]→[실행]→CMD 라고 입력합니다.

2) 명령 프롬프트 창에서, NET USERS 라고 입력합니다.

이렇게 하면 컴퓨터 상에서 숨겨져 있는 계정이나 숨겨져 있지 않은 계정 모두 보여줄 것입니다.

계정 비밀번호를 변경하는 방법

1) 관리자 권한이 있는 계정으로 컴퓨터가 로그온 되어 있는 상태에서,
[시작]→[실행]→CMD 라고 입력합니다.

2) NET USER 라고 입력하고 계정의 이름 뒤에 * 를 입력하고 Enter 키를 누릅니다.

예를 들자면: ① NET USER administrator *

② NET USER "존 스미스" *

공간을 포함한 경우 " 를 앞 뒤에 써둡시다. 공간을 포함하지 않는 경우 " 를 쓸 필요는 없습니다

3) 새로운 비밀번호를 물을 것입니다. 새로운 비밀번호를 입력하세요.

(매우 신중하게 입력하십시오 - 명령 창에는 당신이 입력하고 있는 것이 보이지 않을 테니까요)

그리고 한번 더 확인 입력하세요.

명령이 성공적으로 진행되었다는 메시지가 뜨면 다 된 것입니다!!!
반응형

요즘 맑은고딕체가 인기를 끌면서 웹사이트 등에서도 맑은고딕이용하시는 분들이 늘었네요

그렇지만 !
전 얼마전까지만 해도 맑은고딕체의 가독성이 눈아프도록 나뻐서 고생을 하고 있었습니다.
ㅡㅡ^


"맑은고딕체는 실패한 폰트다"
"암만 이뻐도 가독성이 떨어지는걸 어떻게 쓰라는거냐"
"눈 나빠지겠네"

라는 생각에도 불구하고 정말 많은 분들이 맑은고딕체를 쓰고 계셨고 칭찬하고 계셨고
반면 저처럼 맑은고딕체의 가독성으로 인해 스트레스 받으시는 분도 계셨구요.

그렇다면 혹시 가독성을 높이는 방법이 있지 않을까?
그래서 여기저기 가독성을 높이는 방법을 알아 본 결과!
 
이 프로그램을 찾았습니다.


<<== 다운로드

일단 이게 받으셔야 할 프로그램입니다.
MS에서 배포하는 프로그램이고 클리어글꼴에 대한 세팅을 바꿔줄 수 있는 유틸입니다.

사용자 삽입 이미지

일단 설치들 하시면 제어판에 위와 같이 "ClearType Tuning"라는 항목이 추가가 됩니다
더블클릭을 하서 들어가세요.

사용자 삽입 이미지

실행화면이네요~
가운데 Turn On ClearType 부분은 체크해주시고요.
Start Wizard로 쉽게 세팅하시는 방법도 있지만 역시 세부적인조정은 힘들고요.
여기선 "Advenced"로 직접 셋팅을 해주는 방법을 설명해 드리도록 하겠습니다.


자 ! 이제부터 본격적인 세팅을 해봅시다
(화면을 축소해서 보기 힘드실수 있으니 직접 따라하면서 보세요)

사용자 삽입 이미지

일단 처음으로 건드리셔야 할게 좌측가운데 있는 "LCD Screen Striping" 항목입니다.

두개의 아이콘이 있는데요
이 두개 중 어느것을 선택하느냐에 따라 가독성이 확연히 달라집니다!
(아마 대부분 가독성에 느끼시는 분들은 여기를 고쳐주시면 고민해결 됩니다~^^)
현재 디스플레이의 종류에 따라 세팅값이 달라지므로 우측에 글씨를 보면서 좋아보이는걸 고르세요

참! 맑은고딕으로 바꾸시고 싶으시면 아래 "Set Sample Font"에서 맑은고딕을 골라주세요.
오른편에 원하는 글자들을 입력하신후에 알맞게 조정하시면 됩니다.
저희집에서 어떻게 달라지나 볼까요?

사용자 삽입 이미지
사용자 삽입 이미지

캡쳐한 화면으로는 크게 차이가 안 느껴지실수도 있어 디카사진으로 비교해 드리겠습니다

사용자 삽입 이미지

좀 어둡지만 확실히 구별이 되실겁니다.
왼쪽이 오른쪽에 비해서 가독성이 굉장히 좋습니다.
눈에 보이는 차이가 상당하죠.


자 여기서 끝을 내실수도 있구요.
좀더 가독성을 높이려면 화면 아래쪽에 위치한 "Contrast"값을 조정하시는 것도 좋습니다.
아래는 비교 화면입니다.

사용자 삽입 이미지

어느쪽에 더 좋아보이는지는 사용하시는 분의 몫입니다.
적당한값을 찾아서 이용하도록 하세요
전 진하게~ 1.0을 이용 하고 있습니다.


출처: http://glass.tistory.com/5
참고 자료 : http://www.parkoz.com/zboard/view.php?id=my_tips&no=7768 (제가 올린 팁글로 마소홈에서 제공하는 세팅, 액티브엑스 사용)
반응형

가끔 PHP로 웹페이지를 작성할 일이 있는데, 유용한 팁을 우연히 보게 되어 한글로 옮겨적어본다.
원본은 40 Tips for optimizing your php Code // 조영일님 번역

1. If a method can be static, declare it static. Speed improvement is by a factor of 4.
메쏘드가 static이 될 수 있다면 static으로 선언하라. 4배 빨라진다.

2. echo is faster than print.
echo가 print보다 빠르다.

3. Use echo’s multiple parameters instead of string concatenation.
문자열을 이어붙이지 말고, echo를 이용하여 여러 개의 파라미터를 적어라.

4. Set the maxvalue for your for-loops before and not in the loop.
for 루프을 위핸 최대값(탈출조건)을 루프 안에서가 아니고 루프 시작 이전에 지정하라.

5. Unset your variables to free memory, especially large arrays.
메모리를 해제하기 위해 변수를 unset하라. 특히 커다란 배열은 그래야 된다.

6. Avoid magic like __get, __set, __autoload
__get, __set, __autoload와 같은 마법을 피해라.

7. require_once() is expensive
require_once()는 비싸다.

8. Use full paths in includes and requires, less time spent on resolving the OS paths.
include와 require를 사용할 때, 경로를 찾는데 시간이 적게 걸리는 full path를 사용하라.

9. If you need to find out the time when the script started executing, $_SERVER[’REQUEST_TIME’] is preferred to time()
스크립트가 언제 실행했는지 알고 싶으면 time()보다 $_SERVER[’REQUEST_TIME’]이 좋다.

10. See if you can use strncasecmp, strpbrk and stripos instead of regex
정규표현식보다는 가능하면 strncasecmp나 strpbrk, stripos를 사용하라.
* 역주
strncasecmp: 두 문자열의 앞쪽 일부가 대소문자 구분없이 일치하는지 확인할 때 사용
strpbrk: 문자 집합에 속한 특정 문자가 문자열에 나타나는지 확인할 때 사용
stripos: 대소문자 구분없이 특정 문자열이 다른 문자열에 포함되는지 확인할 때 사용

11. str_replace is faster than preg_replace, but strtr is faster than str_replace by a factor of 4
str_replace가 preg_replace보다 빠르지만, strtr은 str_replace보다 4배 빠르다.

12. If the function, such as string replacement function, accepts both arrays and single characters as arguments, and if your argument list is not too long, consider writing a few redundant replacement statements, passing one character at a time, instead of one line of code that accepts arrays as search and replace arguments.
만약 문자열 교체 같은 함수가 배열과 문자열을 인자로 받아들이면, 그리고 그 인자 리스트가 길지 않다면, 배열을 한 번에 받아들여서 처리하는 것 대신에 한 번에 문자열을 하나씩 넘겨서 처리하는 것을 고려해봐라.

13. It’s better to use select statements than multi if, else if, statements.
여러 개의 if/else if 문장 대신에 select 문장을 사용하는 게 더 좋다.

14. Error suppression with @ is very slow.
@를 이용한 에러 출력 방지는 매우 느리다.

15. Turn on apache’s mod_deflate
Apache의 mod_deflate를 켜라.
*역주
mod_deflate는 서버의 출력을 클라이언트에게 보내기 전에 압축하는 모듈임

16. Close your database connections when you’re done with them
DB를 다 사용했으면 연결을 닫아라.

17. $row[’id’] is 7 times faster than $row[id]
$row[’id’]가 $row[id]보다 7배 빠르다.

18. Error messages are expensive
에러 메시지는 비싸다.

19. Do not use functions inside of for loop, such as for ($x=0; $x < count($array); $x) The count() function gets called each time.
for 루프의 표현식 안에서 함수를 사용하지 마라.
for ($x = 0; $x < count($array); $x)에서 count() 함수가 매번 호출된다.

20. Incrementing a local variable in a method is the fastest. Nearly the same as calling a local variable in a function.
메쏘드 안에서 지역 변수를 증가시키는 것이 거의 함수 안에서 지역 변수를 호출(증가?)하는 것만큼 빠르다.

21. Incrementing a global variable is 2 times slow than a local var.
전역 변수를 증가시키는 것이 지역 변수를 증가시키는 것보다 2배 느리다.

22. Incrementing an object property (eg. $this->prop++) is 3 times slower than a local variable.
객체의 멤버변수를 증가시키는 것이 지역 변수를 증가시키는 것보다 3배 느리다.

23. Incrementing an undefined local variable is 9-10 times slower than a pre-initialized one.
값이 지정되지 않은 지역 변수를 증가시키는 것이 미리 초기화된 변수를 증가시키는 것보다 9~10배 느리다.

24. Just declaring a global variable without using it in a function also slows things down (by about the same amount as incrementing a local var). PHP probably does a check to see if the global exists.
전역 변수를 함수 안에서 사용하지 않으면서 그저 선언하기만 해도 (지역 변수를 증가시키는 것만큼) 느려진다. PHP는 아마 전역 변수가 존재하는지 알기 위해 검사를 하는 것 같다.

25. Method invocation appears to be independent of the number of methods defined in the class because I added 10 more methods to the test class (before and after the test method) with no change in performance.
메쏘드 호출은 클래스 안에서 정의된 메쏘드의 갯수에 독립적인 듯 하다. 왜냐하면 10개의 메쏘드를 테스트 클래스에 추가해봤으나 성능에 변화가 없었기 때문이다.

26. Methods in derived classes run faster than ones defined in the base class.
파생된 클래스의 메쏘드가 베이스 클래스에서 정의된 것보다 더 빠르게 동작한다.

27. A function call with one parameter and an empty function body takes about the same time as doing 7-8 $localvar++ operations. A similar method call is of course about 15 $localvar++ operations.
한 개의 매개변수를 가지고 함수를 호출하고 함수 바디가 비어있다면(함수 내부에서 아무것도 실행하지 않는다면) 그것은 7~8개의 지역변수를 증가시키는 것과 똑같은 시간을 차지한다. 비슷한 메쏘드 호출은 마찬가지로 15개의 지역변수를 증가시키는 연산쯤 된다.

28. Surrounding your string by ‘ instead of ” will make things interpret a little faster since php looks for variables inside “…” but not inside ‘…’. Of course you can only do this when you don’t need to have variables in the string.
문자열을 이중 따옴표 대신에 단일 따옴표로 둘러싸는 것은 좀 더 빠르게 해석되도록 한다. 왜냐하면 PHP가 이중 따옴표 안의 변수를 찾아보지만 단일 따옴표 안에서는 변수를 찾지 않기 때문이다. 물론 문자열 안에서 변수를 가질 필요가 없을 때만 이렇게 사용할 수 있다.

29. When echoing strings it’s faster to separate them by comma instead of dot. Note: This only works with echo, which is a function that can take several strings as arguments.
문자열을 echo할 때 마침표 대신에 쉼표로 분리하는 것이 더 빠르다.
주의: 이것은 여러 문자열을 인자로 받아들이는 함수인 echo로만 작동한다.

30. A PHP script will be served at least 2-10 times slower than a static HTML page by Apache. Try to use more static HTML pages and fewer scripts.
Apache에 의해 PHP 스크립트는 정적 HTML 페이지보다 최소 2에서 10배 느리게 서비스된다. 더 많은 정적 HTML 페이지와 더 적은 스크립트를 사용하려고 노력하라.

31. Your PHP scripts are recompiled every time unless the scripts are cached. Install a PHP caching product to typically increase performance by 25-100% by removing compile times.
PHP 스크립트는 캐시되지 않으면 매번 재 컴파일된다. 컴파일 시간을 제거함으로써 25~100%만큼의 성능을 증가시키기 위해 PHP 캐싱 도구를 설치하라.

32. Cache as much as possible. Use memcached - memcached is a high-performance memory object caching system intended to speed up dynamic web applications by alleviating database load. OP code caches are useful so that your script does not have to be compiled on every request
가능한 한 많이 캐시하라. memcached를 사용하라. memcached는 고성능 메모리 객체 캐싱 시스템이다.

33. When working with strings and you need to check that the string is either of a certain length you’d understandably would want to use the strlen() function. This function is pretty quick since it’s operation does not perform any calculation but merely return the already known length of a string available in the zval structure (internal C struct used to store variables in PHP). However because strlen() is a function it is still somewhat slow because the function call requires several operations such as lowercase & hashtable lookup followed by the execution of said function. In some instance you can improve the speed of your code by using an isset() trick.
문자열을 가지고 작업하며 문자열이 특정 길이인지 확인할 필요가 있을 때, strlen() 함수를 쓸 것이다. 이 함수는 계산없이 zval 구조체에서 사용할 수 있는 이미 알려진 문자열 길이를 반환하기 때문에 매우 빠르다. 그러나 strlen()이 함수이기 때문에 여전히 조금 느리다. 왜냐하면 함수 호출은 언급된 함수의 실행 뒤에 lowercase와 hashtable lookup같은 여러 개의 연산을 호출하기 때문이다. 어떤 경우에는 isset() 트릭을 이용하여 코드의 스피드를 증가시킬 수도 있다.

Ex.
if (strlen($foo) < 5) { echo "Foo is too short"; }
vs.
if (!isset($foo{5})) { echo "Foo is too short"; }

Calling isset() happens to be faster then strlen() because unlike strlen(), isset() is a language construct and not a function meaning that it's execution does not require function lookups and lowercase. This means you have virtually no overhead on top of the actual code that determines the string's length.
isset()을 호출하는 것은 strlen()과는 달리 isset()이 언어 기본문법이고 함수가 아니기 때문에 함수 찾와 lowercase 작업을 필요로 하지 않으므로 strlen()보다 더 빠를 수도 있다. 이것은 가상적으로 문자열의 길이를 결정하는 실제 코드에 과부하가 없다는 것을 의미한다.

34. When incrementing or decrementing the value of the variable $i++ happens to be a tad slower then ++$i. This is something PHP specific and does not apply to other languages, so don't go modifying your C or Java code thinking it'll suddenly become faster, it won't. ++$i happens to be faster in PHP because instead of 4 opcodes used for $i++ you only need 3. Post incrementation actually causes in the creation of a temporary var that is then incremented. While pre-incrementation increases the original value directly. This is one of the optimization that opcode optimized like Zend's PHP optimizer. It is a still a good idea to keep in mind since not all opcode optimizers perform this optimization and there are plenty of ISPs and servers running without an opcode optimizer.
변수 $i의 값을 증가시키거나 감소키킬 때, $i++은 ++$i보다 조금 더 느릴 수 있다. 이것은 PHP의 특징이고 다른 언어에는 해당되지 않으니 좀 더 빨라질 것을 기대하면서 C나 Java 코드를 바꾸러 가지 마라. 안 빨라질 것이다. ++$i는 PHP에서 좀 더 빠른데 그것은 $i++에 4개의 opcode가 사용되는 대신에 3개만 필요하기 때문이다. 후증가는 사실 증가될 임시변수의 생성을 초래한다. 반면에 전증가는 원래 값을 직접 증가시킨다. 이것은 opcode가 Zend의 PHP optimizer처럼 최적화하는 최적화 기법의 하나이다. 모든 opcode optimizer들이 이 최적화를 수행하는 것은 아니고 많은 ISP와 server들이 opcode optimizer없이 수행되고 있기 때문에 명심하는 게 좋을 것이다.

35. Not everything has to be OOP, often it is too much overhead, each method and object call consumes a lot of memory.
모든 것이 OOP일 필요는 없다. 종종 그것은 너무 많은 과부하가 된다. 각각의 메쏘드와 객체 호출은 메모리를 많이 소비한다.

36. Do not implement every data structure as a class, arrays are useful, too
모든 데이터 구조를 클래스로 구현하지 마라. 배열도 유용하다.

37. Don't split methods too much, think, which code you will really re-use
메쏘드를 너무 많이 분리하지 마라. 어떤 코드를 정말 재사용할지 생각해봐라.

38. You can always split the code of a method later, when needed
항상 메쏘드의 코드를 나중에 필요할 때 분리할 수 있다.

39. Make use of the countless predefined functions
수많은 미리 정의된 함수를 활용해라.

40. If you have very time consuming functions in your code, consider writing them as C extensions
매우 시간을 소비하는 함수가 있다면, C 확장으로 작성하는 것을 고려해봐라.

41. Profile your code. A profiler shows you, which parts of your code consumes how many time. The Xdebug debugger already contains a profiler. Profiling shows you the bottlenecks in overview
당신의 코드를 프로파일해봐라. 프로파일러는 코드의 어떤 부분이 가장 많은 시간을 소비하는지 보여준다. Xdebug 디버거는 이미 프로파일러를 포함하고 있다. 프로파일링은 전체적인 병목을 보여준다.

42. mod_gzip which is available as an Apache module compresses your data on the fly and can reduce the data to transfer up to 80%
Apache 모듈로 사용가능한 mod_gzip은 실행 중에 데이터를 압축하여 전송할 데이터를 80%까지 줄일 수 있다.

43. Excellent Article about optimizing php by John Lim
John Lim의 PHP를 최적화하는 것에 관한 뛰어난 글

반응형

Windows XP 불필요한(?) 파일 제거 (용량확보)


Windows XP에서는 운영체제를 한번 설치하고서는 절대로 운영체제 시디를 요구하지 않는다. 설치할때 모두 하드에 복사하기때문에 번거로웠던 현상은 없으나 하드용량이 부담스럽게 커지는 단점이 있습니다.

특별하지 않는이상 이 파일들은 용량낭비만될뿐 도움이 되지 않습니다.
에러가 났다던가, 드라이버 설치를 할때 시디 한번넣어주면 되는일이거든요.
그거 귀찮아서 하드용량 400메가 가량 죽이고 있다는건...^^:

그래도 지울 땐 신중에 신중을 기하세요.(부득이 용량을 늘려야 할 이유가 있을 때만)  책임은 못지니...^^;


시작 버튼에서 [실행]을 선택해서


DEL /S /Q "%systemdrive%\Documents and Settings\Administrator\Local Settings\Temp\*.*"
DEL /S /Q "%systemroot%\*.log"
DEL /S /Q "%systemroot%\*.txt"
DEL /S /Q "%systemroot%\Temp\*.*"

RD /S /Q "%systemroot%\addins"
RD /S /Q "%systemroot%\Config"
RD /S /Q "%systemroot%\Connection Wizard"
RD /S /Q "%systemroot%\Cursors"
RD /S /Q "%systemroot%\java"
RD /S /Q "%systemroot%\Lastgood.tmp"
RD /S /Q "%systemroot%\Lastgood"
RD /S /Q "%systemroot%\msagent"
RD /S /Q "%systemroot%\msapps"
RD /S /Q "%systemroot%\RegisteredPackages"
RD /S /Q "%systemroot%\system32\oobe"
RD /S /Q "%systemroot%\system32\ras"
RD /S /Q "%systemdrive%\Program Files\Online Services"


RD /S /Q "%systemroot%\mui\"
RD /S /Q "%systemroot%\system32\3com_dmi\"
RD /S /Q "%systemroot%\system32\1025\"
RD /S /Q "%systemroot%\system32\1028\"
RD /S /Q "%systemroot%\system32\1031\"
RD /S /Q "%systemroot%\system32\1033\"
RD /S /Q "%systemroot%\system32\1037\"
RD /S /Q "%systemroot%\system32\1041\"
RD /S /Q "%systemroot%\system32\1042\"
RD /S /Q "%systemroot%\system32\1054\"
RD /S /Q "%systemroot%\system32\2052\"
RD /S /Q "%systemroot%\system32\3076\"

RD /S /Q "%systemroot%\system32\IME\"
RD /S /Q "%systemroot%\system32\npp\"
RD /S /Q "%systemroot%\system32\com\"
RD /S /Q "%systemroot%\system32\dhcp\"
RD /S /Q "%systemroot%\system32\Dllcache\"
RD /S /Q "%systemroot%\system32\export\"
RD /S /Q "%systemroot%\system32\inetsrv\"
RD /S /Q "%ProgramFiles%\Uninstall Information\"
RD /S /Q "%ProgramFiles%\xerox\"
RD /S /Q "%CommonProgramFiles%\ODBC\"
RD /S /Q "%CommonProgramFiles%\Microsoft Shared\web server extensions\"

P.S 문제가 발생할 수도 있으니 생각해보고 실행하세요

반응형
Sc.exe는 Windows XP 및 Windows Server 2003에 포함되어 있으며 Windows 2000 Server 리소스 키트에도 포함되어 있습니다.
sc create [Program ID방식의 Service name] binpath="서비스로 실행할 파일의 풀 경로 / 만약 매게변수가 있다면 함께" displayname="서비스 관리자 애플릿에 표시할 이름" depend="다른 관련 서비스의 ID" start="시작형태" obj="서비스 시작에 사용한 Windows NT 계정 이름"

머 이리저리 옵션이 많이 있지만, 서비스 등록을 위해 필요한 것들이나 주의를 길울여 살펴봐야 한다. 여기서 한가지 SC의 명령줄 옵션은 문법이 까다롭다고 한다. 등호 다음에 오는 공백은 SC가 나름의 구문 분석 규칙을 정의해 놓은 것으로 이해하고 따라해야 한다. 즉, SC는 스위치 이름을 binpath, displayname과 같이 인식하기 보다는 binpath=, displayname= 까지 인식한다고 보는것이 정확하다. 즉 binpath= 이후 공백이 하나 존재해야 하는 것이다.

그럼 sc명령어와 옵션을 하나하나 살펴 보자
1. sc create 다음에 오는 필수 인자가 [Program ID방식을 Service name]
    : 여기에는 영문만을 사용하는것을 권장하며 윈도우가 그렇듯 영문 대/소문자는 구분하지 않는다.

2. binpath 옵션
    : 서비스로 실행할 파일의 경로와 해당 파일에 전달되는 인수를 한꺼번에 지정한다. 파일 경로 상에 공백이 포함되면 따옴표로 묶는다는 것은 기본 상식이다. 만약 이렇게 한번 따옴표를 쓰고나면 인수에는 따옴표를 전달할 수 없는게 아니냐는 고민에 빠지기 쉬운데 그런 고민은 할 필요없다. 신경쓰지 말고 필요한 만큼 따옴표를 쓰면 된다. 머 정 쓰기 싫으면 공백없이 경로를 잡고 프로그램을 설치하면 될 것이다.

3. displayname 옵션
   : 서비스 관리자 애플릿(services.msc)에서 표시할 이름을 의미한다. 서비스 관리자에서 알아볼 수 있는 편리한 이름을 정해서 기입하면 되며 한글을 사용해도 무방하다.

4. depend 옵션
    : 동록하고자 하는 서비스를 실행하기 위하여 필요한 다른 서비스의 ID를 써주는 곳이다. 여러개의 서비스에 종속되어있다면 "/" 기호를 써서 구분해주면 된다.

5. start 옵션
    : 등록하고자 하는 서비스를 언제 실행할 것인가에 대한 사항을 적은 곳이다. 보통 auto, demand, boot, system, disabled 중 하나는 선택한다. auto는 시스템 서비스가 모두 시작되었으며 아직 로그인은 하지 않은 상태에서 실행하는 것을 말하며, demand는 어떤 형태로든 시스템에 대한 사용 권한을 얻은 이후에 직접 구동하는 것( 사용자가 아닌 프로그렘에 의한것도 포함 )을 의미힌다. boot와 system은 주로 장치 드라이버와 연관된 서비스나 운영 체제 핵심 서비스에만 한정되는 내용이고 disabled는 거의 쓸 일이 없으며 이름 그대로 "사용하지 않도록 등록"한다는 의미이다.

출처: 정확한 출처는 모르겠습니다.

6. obj 옵션
   : 이 서비스를 실행할 사용자 계정을 지정하는 곳이다. 대개 서비스를 등록하는 것은 특정 사용자와는 무관하게 독립적으로 실행되기 위한 것이므로 "NT AUTHORITY\LocalService"를 지정하면 적당하다. 하지만 직접 계정을 지정한다면 password 옵션을 써서 비밀번호를 따로 지정해야 한다.

그럼 위의 설명에 따라 Agent를 실행시키는 batch파일인 AgentStart.bat를 서비스에 등록하려면 다음과 같이 명령을 내리면 된다.

sc create RTCAgent
        binpath= "D:\Eclipse_Work\MySingleRTC\agent\Window\AgentStart.bat"  
        displayName= "RTCAgent" start= auto obj= "NT AUTHORITY\LocalService"


이렇게 등록하고 서비스 관리자에서 시작하면 된다.

자 그럼 등록을 했으면 삭제하는것도 봐야 되지 않을까?
서비스 삭제는 sc delete로 간단하게 된다.

sc delete [Program ID방식의 Service Name]


어떼 아주 간단하지 않을가?
여기서 사용되는 [Program ID방식의 Service Name]은 sc create를 이용해 서비스 등록할 때 사용했던 [Service Name]을 사용하면 된다. 몬든 삭제가 그렇듯 서비스 삭제에 있어서도 단 사용되는 [Program ID방식의 Service ID]는 윈도우 핵심 서비스일 수 있으니 삭제할 때는 각별한 유의가 필요하다.

마지막으로 등록된 서비스를 시작하는 것을 보도록 하자
서비스 시작 역시 서비스 삭제 만큼이나 간단하게 sc start로 되어있다.

sc start [Program ID방식의 Service Name]


이것역시 너무나 간단하지 않을가?
이쯤 되면 이곳에서 사용되는 [Program ID빙삭의 Service name]이 무엇인지는 굿이 설명하지 않아도 알것이다.

반응형

+ Recent posts