2009-12-03 3 views
0

그래서 두 개의 imac, imac_1 및 imac_2가 firewire를 통해 연결된 설치가 있습니다. imac_1은 imac_2와 imac_2에 디버깅 정보를 보냅니다. 디버깅 정보를 캡처하는 C++ 프로그램이 있습니다. (아래 그림 참조)GUI 작성 문제

이제 QT를 사용하여 생성 된 디버깅 정보를 직접 작성하면 매우 천천히, 느린 나는 GUI가 데이터를로드하는 데 시간이 걸린다는 것을 의미합니다. 그래서 내가 디버깅 정보를 버퍼에 쓴 다음 그 버퍼를 GUI에 덤프했지만 GUI가 데이터를로드하는 데 시간이 걸리기 때문에 속도가 느려졌습니다.

나는 디버깅 정보를 파일에 기록한 다음 gui에로드 할 생각을하고있었습니다. 그래서 내가 GUI에 처음 10,000 라인을로드하고 사용자가 아래로 스크롤하면 다음 10,000 라인을로드합니다.

imac_1 (송신기) ---> 파이어 와이어 (중) -> imac_2 (수신기)

어떤 아이디어 나 제안 ???? 맥 OS X, 엑스 코드, 아이맥

+0

상당히 많은 정보가 없어도 나는 만족스러운 대답을 생각조차 할 수 없다. 왜 GUI가 느린 지 알 수 있습니까? 두 가지 방법으로 데이터를 처리하는 것이 느리다면 아마 3 분의 1보다 빠르지 않을 것입니다. –

+0

내가 GUI가 느린 이유는 GUI 오버 헤드 때문입니다. 나는 내 문제를 설명하는 데 좋은 일을하지 못했지만 다른 사람들은 당신이 알고 싶어 할 것이 무엇이라고 생각합니다. 감사합니다. – infinitloop

답변

1

문제는 두 컴퓨터가 통신과 아무 상관이처럼 소리를하지만, 대신 GUI 응용 프로그램 일 수 있습니다

내가 사용하고 있습니다.

네트워크 구성 요소 만 토론에서 제외하려는 경우 파일 접근 방식을 시도해 보시기 바랍니다. 그런 다음 GUI를 빠르게 작성하십시오.

텍스트 줄을 한 번에 하나씩 추가하면 속도가 느려질 수 있지만 10,000 줄은 그리 많지 않습니다.

다른 방법으로는 텍스트 파일을로드하는 동안 다시 그리기를 해제하거나 비슷한 것을 사용할 수 있습니다.

+0

++로드하는 동안 다시 그리기를 끄는 것은 다른 상황에서 큰 승리입니다. 10k 줄마다 하나씩 전체 무효화/페인트 사이클을 통과하기를 원하지는 않습니다. –

+0

나는 GUI 대 파일에 쓰기의 그래프를 만들었고 파일 쓰기가 더 빠르다고 보인다. 하지만 문제는 프로그램을 시작한 후 GUI에서 파일의 데이터를로드해야하는 시점입니다. 프로그램이 시작 되 자마자 파일이 업데이트되지 않기 때문입니다. 감사합니다. – infinitloop

+0

나는 데이터를 만들고로드하는 것과 같은 GUI 작업에 책임이있는 주 스레드에서 스레드를 시작하려고 생각하고 있습니다. – infinitloop