일반적으로 채널 개수와 읽을 샘플 개수가 데이터 구조에 영향을 미칩니다. 예를 들어 64비트 부동소수 포맷을 사용하여 8개의 아날로그 채널에서 100개의 샘플을 읽는 경우, 2차원 배열이 사용됩니다. 이 때 첫번째 인덱스는 채널 선택이고 두번째 인덱스는 샘플 선택입니다. 한편 64비트 부동소수 포맷을 사용하여 하나의 아날로그 채널에서 하나의 샘플을 읽는 경우, 단순한 부동소수 스칼라 값으로도 충분합니다. 일반적으로 특정한 읽기 또는 쓰기 호출의 데이터 구조는 필요한 채널과 샘플 개수를 처리할 수 있는 가장 단순한 포맷입니다.

여러 데이터 구조 중에서 선택할 수 있는 경우도 많습니다. 데이터 구조를 선택할 때 가장 중요하게 고려할 사항은 데이터 조작의 용이성입니다. 여러 채널과 여러 샘플을 처리할 수 있는 데이터 구조를 사용할 수도 있지만, 일반적으로 이러한 구조는 가장 조작하기 어렵습니다.

서로 다른 데이터 구조에서 데이터를 읽거나 쓰기 위해 같은 작업을 할 때 성능은 비슷합니다.

  • 웨이브폼 데이터 구조—웨이브폼은 채널은 하나 또는 그 이상의 샘플을 포함할 수 있습니다.
  • 1D 웨이브폼 배열 데이터 구조—1차원의 웨이브폼 배열이 해당 채널을 선택합니다. 각 웨이브폼에 여러 샘플이 포함될 수 있으므로 또 다른 차원은 필요하지 않습니다.
  • 스칼라 데이터 구조—단일 채널에서 단일 샘플을 읽거나 쓸 때 스칼라를 사용합니다. 스칼라 데이터는 조작하기 쉽습니다. 이는 필요한 경우 개별 채널로부터 데이터를 읽거나 쓸 때 좋은 구조입니다.

    스칼라 데이터는 일반적으로 고속의 여러 샘플 어플리케이션에는 적당하지 않습니다.

    여러 채널에서 동시에 수집하고 생성하도록 설정한다면 스칼라 데이터는 좋은 선택이 아닙니다. 이런 경우에는 여러 채널 구조를 사용하는 것이 더 쉽습니다. 또한 출력 작업의 경우에는 반드시 여러 채널 구조를 사용해야 합니다.

  • 배열 데이터 구조—배열 포맷을 사용하면 동시에 여러 채널 및/또는 여러 샘플에서 데이터를 읽거나 쓸 수 있습니다. 동시에 여러 채널에서 수집하거나 생성하는 경우, 동시에 데이터를 읽고 쓰는 것이 가장 쉬운 방법입니다. 한 번의 호출에 여러 샘플을 읽고 쓰는 것이 한 번에 샘플을 하나씩 읽고 쓰는 것보다 더 효율적입니다.
  • 원시 데이터 구조—원시 데이터 구조는 디바이스의 기본 구조에 의해 정의됩니다.