Improving IO Speed
Craig Dillabaugh
cdillaba at cg.scs.carleton.ca
Fri Mar 14 12:11:11 PDT 2014
On Friday, 14 March 2014 at 18:00:58 UTC, TJB wrote:
> I have a program in C++ that I am translating to D as a way to
> investigate and learn D. The program is used to process
> potentially hundreds of TB's of financial transactions data so
> it is crucial that it be performant. Right now the C++ version
> is orders of magnitude faster.
>
> Here is a simple example of what I am doing in D:
>
> import std.stdio : writefln;
> import std.stream;
>
> align(1) struct TaqIdx
> {
> align(1) char[10] symbol;
> align(1) int tdate;
> align(1) int begrec;
> align(1) int endrec;
> }
>
> void main()
> {
> auto input = new File("T201212A.IDX");
> TaqIdx tmp;
> int count;
>
> while(!input.eof())
> {
> input.readExact(&tmp, TaqIdx.sizeof);
> // Do something with the data
> }
> }
>
> Do you have any suggestions for improving the speed in this
> situation?
>
> Thank you!
>
> TJB
I am not sure how std.stream buffers data (the library has been
marked for removal, so perhaps not very efficiently), but what
happens if you read in a large array of your TaqIdx structs with
each read.
More information about the Digitalmars-d-learn
mailing list