Реалистическое использование C99 'ограничивает' ключевое слово?

Вы можете использовать Spark-SQL и иметь один набор данных для каждого клиента, счетов и товаров. Затем вы можете просто использовать соединения и агрегатные функции между этими наборами данных, чтобы получить желаемый результат.

Spark SQL имеет очень незначительную разницу в производительности между стилем SQL и программным способом.

176
задан Mat 2 August 2012 в 18:05
поделиться

1 ответ

restrict говорит, что указатель - это единственная вещь, которая обращается к базовому объекту. Это исключает возможность наложения указателей, обеспечивая лучшую оптимизацию компилятором.

Например, предположим, у меня есть машина со специализированными инструкциями, которая может умножать векторы чисел в памяти, и у меня есть следующий код:

void MultiplyArrays(int* dest, int* src1, int* src2, int n)
{
    for(int i = 0; i < n; i++)
    {
        dest[i] = src1[i]*src2[i];
    }
}

Компилятор должен правильно обрабатывать, если dest , src1 и src2 перекрываются, то есть он должен выполнять по одному умножению за раз, от начала до конца. Имея restrict , компилятор может оптимизировать этот код с помощью векторных инструкций.

В Википедии есть запись в restrict , с другим примером, здесь .

173
ответ дан Neuron 23 November 2019 в 20:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: