You can do either configuration. There is an option when you create the virtual channel to do either RSE or Differential. The property is called "Input Terminal Configuration."
In order to not run into your memory issue, I would do a producer consumer loop:
http://www.ni.com/white-paper/3023/en/
One while loop will produce the data - that'll be the loop that collects the data , which will contain your daqmx read
The other while loop will consume the data - the loop that writes to a text file.
I would recommend looking at a shipping example that comes with LabVIEW to find a good example for how to write to a text file. You can find that under Help>>Find Examples and search for the example entitled: "Write to Text File amd Read From Text File." Combining that with the producer and consumer loop should alleviate your memory problem issue.