2011-01-26 3 views
6

아무도 저 지연 프로그래밍을 수행하는 방법을 배우는 가장 좋은 방법에 관해서 나에게 몇 가지 지침을 줄 수 있습니까? 나는 많은 프로그래밍 서적을 가지고 있지만, 매우 빠른 코드 작성에 초점을 맞춘 (또는 도움이 된) 책을 본 적이 없다. 아니면 책이 최선의 방법이 아닌가?대기 시간이 중요하고 빠른 C++/Java/C# 코드를 작성하는 방법을 배우는 가장 좋은 방법은 무엇입니까?

전문가의 충고에 감사드립니다.

편집 : 나는 CPU/메모리 바운드를 더 많이 언급한다고 생각한다.

+4

해당 코드가 무엇입니까? 코드 IO가 바운드입니까, 아니면 CPU가 바운드입니까? 데이터베이스를 기다리고 있다면 손으로 제작 한 어셈블리가 필요하지 않으며 텍스트 파일을 쓰고 싶다면 Google 표준 파일 시스템이 필요하지 않습니다. –

+3

하나의 언어에 대한 대답은 책을 가져 가고 C++/Java/C#에 대한 답변을 얻으려고합니다. 그러면 라이브러리를 사용할 수 있습니다. 그래서 나는 당신이 약간의 해답을 원한다면 당신의 질문을 협의 할 필요가 있다고 생각합니다. –

+4

1 단계 : 프로그램 작성. 2 단계 : 성능 측정. 3 단계 : 성능이 불필요한 경우 핫 스팟으로 최적화하십시오. 4 단계로 이동하십시오. –

답변

4

내 조언은 C++/Java/C#이 어떻게 작동 하는지를 배우고 컴퓨터 수준의 명령어로 변환하는 방법에 대한 일반적인 아이디어를 얻는 것입니다. 일부 작업은 다른 작업보다 비용이 많이 듭니다. 고수준의 언어로 작성된 작은 코드 스 니펫은 많은 수의 기계 명령어로 해석됩니다 (종종 생각하는 것보다 많습니다.)

또한 다양한 데이터 구조, 유용한 요소 및 다양한 문제 크기에 대한 성능 특성. 문제에 대한 올바른 데이터 구조를 선택하면 실행 속도에 대한 놀라운 결과를 얻을 수 있습니다.

1

어셈블리를 학습하여 시작하십시오. 그런 다음 Java 또는 .NET에서 작업 할 경우 해석 된 바이트 코드를 익히십시오. 그렇게까지 가면 작업하고있는 언어와 작업중인 컴파일러를 이해해야합니다. 이 경로를 계속 지키면 VC++ 및 GCC 삼자 연산자 (? :)를 사용하여 어떻게 임시 값을 생성하는지와 같은 지식을 수집 할 수 있습니다. 반면에 동등한 if 문은 그렇지 않습니다.

약 10 년 후에도 대기 시간이 적은 코드를 작성할 수 있습니다.

불행히도 이것을 배우는 빠른 방법이 없습니다. C++에 대해 배울 수있는

좋은 책 : 효과적인 C++ 더 효과적인 C++ 뛰어난 C++

+1

+1 : "약 10 년 후에도 대기 시간이 적은 코드를 작성할 수 있습니다." 사실이에요. –

+0

대학에서 ARM 어셈블리를 배웠습니다. (매우 간단히 MIPS) 인텔을 배우시겠습니까? – Tom

+1

인텔 PC 용 코드를 작성하는 경우 예. 그렇다면 전문 개발자로서 어셈블리 코드를 작성하는 경우가 거의 없다는 것을 이해해야합니다. 그것은 어셈블리를 잘 이해할 수있는 훌륭한 엔지니어가 될 것이라고 말했습니다. – Beanz

7

[C++ 프로그래머] :

초저 지연 시간 프로그래밍이 어렵다. 처음 경로를 시작할 때 사람들이 의심하는 것보다 훨씬 힘듭니다. 당신이 사용할 수있는 몇 가지 기술과 "속임수"가 있습니다. IO 완료 포트, 멀티 코어 활용, 고도로 최적화 된 동기화 기술, 공유 메모리와 동일합니다. 목록은 영원히 계속됩니다. (code-profile-refactor-repeat)만큼 간단하지는 않습니다. 강력하고 빠르지 만 뛰어난 코드를 작성할 수 있기 때문에 매우 낮은 지연 시간의 코드가 될 수는 없습니다.

불행히도 내가 아는 한 가지 리소스가 없습니다. 어떻게 완료했는지 보여 줄 것입니다. 초저 대기 시간 코드를 전문으로하는 프로그래머는 비즈니스 경험이 풍부하고 경험이 풍부한 사람 중 최고입니다. 그리고 좋은 이유가 있습니다. 저 대기 시간 프로그래머가되기위한 은색 해결책이 있다면, 간단히 말해서 :에 대해 많이 알기 만하면 입니다. 그리고 그 지식은 오기가 쉽지 않습니다. 수년 (수십 년간)의 경험과 끊임없는 연구가 필요합니다.

지금까지 연구 자체에 관한 한, 여기에 내가 유용하거나 하나의 이유 또는 다른 특히 통찰력이 발견 몇 가지 책이다 :

관련 문제