필자는 저에게 맞는 시스템을 만들었지 만이 프로그램만으로 많은 CPU 부하를 차지하기 때문에 최적화해야합니다.gnuplot을 사용하여 휘발성 데이터 파일을 동적으로 플로팅
여기 정확히 문제가 있습니다.
나는 실시간으로 플롯해야하는 입력 신호/데이터 스트림이 있습니다. 한 번에 표시 할 수있는 제한된 수의 점만 (1024 포인트라고 말하기) 때문에 x 축에서 0-1024의 인덱스에 대해 y 축을 따라 데이터 포인트를 그립니다. 들어오는 데이터 값의 범위는 0-1023입니다.
내가 현재하고있는 것은 (이것은 모두 C++로되어있다.) 나는 순환 루프에 데이터를 넣었고 데이터가 업데이트 될 때마다 (또는 모든 두 번째/세 번째 데이터 포인트) 파일에 쓸 때마다 파이프를 사용하여 gnuplot을 사용하여 해당 파일의 데이터를 플롯합니다.
이것은 거의 완벽하게 작동하지만로드가 상당히 많이 발생합니다 (입력 데이터 속도에 따라 Core 2 Duo의 두 코어에서 70 %의 사용률을 보았습니다). 이 짧은 프로그램과 함께 일부 프로세서 집약적 인 코드를 실행해야하므로 최적화가 거의 필요하다고 생각합니다.
내가 할 수있는 일은 다음과 같습니다. 현재 플롯과 새 데이터의 차이점 만 그릴 수 있습니까? (또는 전체 그래프를 다시 채우지 않고 각 점을 그려서 그 x 색인이 제거됨).
그래프에 고정 된 수의 점이있어서 replot이 작동하지 않습니다. 그 x 위치에있는 오래된 점을 제거하고 싶습니다.
gnuplot을 호출하기 위해 시스템 호출을하고 있습니까? gnuplot의 출력은 어디에 있습니까? 그래픽 파일에? – Mark
Downvoter : 정확히 ** ** 왜 ** downvoted를 언급하는 코멘트를 남겨주세요. 의견을 제공하지 않으면 사람들은 어떻게 학습해야합니까? – mgilson
@ 마크 - 아마도 일부 터미널 (아마도 x11 또는 wxt)으로갑니다. – mgilson