Стек выделяет неизменяемые массивы

Я делаю обширные вычисления в F# на коротких массивах uint64; Я хотел бы разместить их в стеке, чтобы избежать работы сборщика мусора. В C++ я бы сделал это:

int search(int n, uint64_t* data) {
    while ( /* something */ ) {
        // ... do some computation on data.
        uint64_t* data2 = (uint64_t*) alloca(n * sizeof(uint64_t));
        for (int i=0; i<n; ++i) { data2[i] = /* compute derived value */; }
        int candidate = search (n, data2);
        // ... determine if candidate is better than best etc.
    }
}

Но, кажется, F# не имеет примитивного, выделенного стеком типа массива?

0 ответов

Другие вопросы по тегам