2013-08-03 2 views
2

강렬한 계산을 수행하는 콘솔 응용 프로그램이 있으며 완료하는 데 몇 시간이 걸립니다. 나는 주어진 순간에 내가 원하는만큼 많이 달릴 수 있고, 모두 정확히 같은 속도로 달린다. 즉, 내 컴퓨터가 더 빨라지는 것을 의미합니다. 왜 그렇지 않습니까? 내 컴퓨터가 처리 능력의 100 %를 차지하고이 프로그램에 바치기를 바란다.콘솔 프로그램 최적화

하나의 프로그램에 작업의 절반을 넣고 다른 작업의 절반을 손쉽게 넣고 txt 파일이나 다른 것으로 통신하도록하면 시간을 반으로 쉽게자를 수 있습니다. 그것을하지 않고 빨리 갈 수있는 방법이 있습니까? 작업 관리자의 우선 순위는 아무 것도 변경하지 않습니다.

+1

[Parallelization] (https://www.google.com/search?q=Parallelization) –

+0

하나의 접근법은 각각 계산의 일부를 수행하고 시뮬 레이션을 실행하는 여러 개의 exe 파일을 생성하는 것일 수 있습니다. – user2029077

+0

@MinimusHeximus "한 프로그램에 작업의 절반을 넣고 다른 작업에 작업의 절반을 두어 시간을 반으로 자르고 txt 파일이나 다른 것을 통해 통신하도록 할 수 있습니다." 나도 알아,하지만 그건 사용자에게 짜증나. –

답변

2

음 ... 항상 멀티 스레딩이 있습니다 : Stack Overflow입니다.

하지만 항상 C++의 경우에는 항상 복잡한 프로세스입니다. 나는 당신이 당신의 특별한 경우를 위해 약간의 자습서를 google해야 할 것이 두려워한다.

일부는 다음과 같습니다. tutorialspoint, codebase, 많이 큼. 여러 가지 방법이 있는데, libraries이라는 별개의 구별이 가능하며 단순한 것으로 간주 할 수있는 방법은 없습니다.

+0

#include 은 실제로 구현이 쉽고 현재 실행 속도가 빨라졌습니다. :) (답변을 수락하기 위해 6 분을 기다려야한다고합니다.) –

+0

@Nicholas Pipitone이 경우에는 그다지 쓰레기도 아니 었습니다. 당시로서는 구현되지 않았습니다. 조심해라. 예기치 않은 행동을 일으킬 수있는 많은 함정이있다. – Fenixp

+0

Lol, 어쩌면 제 경우에는 구현하기가 정말 쉽습니다. 내 프로그램은 26 for 루프에 깊이 중첩되어 있으므로 중첩 된 부분을 가져 와서 네 개의 함수로 나눠서 각 스레드를 스레드하고 끝에 * .join()을 넣으면 전체적으로 빠르게 진행됩니다. –