On Friday, 21 January 2022 at 04:08:33 UTC, forkit wrote:

// --

void ProcessRecords
(in int[][int][] recArray, const(string) fname)
{
    auto file = File(fname, "w");
    scope(exit) file.close;

    Appender!string bigString = appender!string;
    bigString.reserve(recArray.length);
debug { writefln("bigString.capacity is %s", bigString.capacity); }

    void processRecord(const(int) id, const(int)[] values)
    {
bigString ~= id.to!string ~ values.format!"%(%s,%)" ~ "\n";
    }

    foreach(ref const record; recArray)
    {
        foreach (ref rp; record.byPair)
        {
            processRecord(rp.expand);
        }
    }

    file.write(bigString[]);
}

// ---

actually something not right with Appender I think...

100_000 records took 20sec (ok)


1_000_000 records never finished - after 1hr/45min I cancelled the process.

??

Reply via email to