Я хотел бы прокомментировать ваше утверждение о том, что вы не можете опустить образцы, в конце ответа tgamblin.
Вы должны рассматривать данные, которые вы выводите на экран, как проблему выборки. Вы говорите о 2,4 млн. Точек данных и пытаетесь нарисовать их на экране, который имеет всего несколько тысяч точек (по крайней мере, я предполагаю, что это так, поскольку вы беспокоитесь о частоте обновления 30 к / с)
Таким образом, это означает, что для каждого пикселя на оси x вы рендеритесь в порядке 1000 точек, которые вам не нужны. Даже если вы пойдете по пути использования вашего gpu (например, через использование opengl), это все еще большая работа, которую gpu необходимо выполнить для строк, которые не будут видны.
Методика, которую я использовал для представления образцов данных, заключается в создании набора данных, который является подмножеством всего набора, только для рендеринга.
Для данного пикселя по оси x (т.е. заданной экранной координаты оси x) вам необходимо отобразить absolute максимум из 4 точек - это минимум y, максимум y, самый левый y и самый правый y.
Это сделает всю информацию, которая может быть полезна. Вы по-прежнему можете видеть минимумы и максимумы и сохраняете связь с соседними пикселями.
Имея это в виду, вы можете определить количество сэмплов, которые попадут в один и тот же пиксель на оси x (представьте их как «ячейки данных»). В пределах данной корзины вы можете определить конкретные выборки для максимумов, минимумов и т. Д.
Повторюсь, это только подмножество, которое используется для отображения - и подходит только до изменения параметров отображения. например. если пользователь прокручивает график или увеличивает масштаб, вам необходимо пересчитать подмножество рендеринга.
Вы можете сделать это, если вы используете opengl, но, поскольку opengl использует нормализованную систему координат (и вас интересуют экранные координаты реального мира), вам придется работать немного усерднее, чтобы точно определить ваши корзины данных.
Это будет проще без использования opengl, но тогда вы не сможете в полной мере использовать свое графическое оборудование.