История изменений
Исправление
BOSS-NIGGER,
(текущая версия)
:
Да, про кэш я не задумывался.
Это как минимум другие процессорные инструкции, оптимизационные барьеры для компилятора, особые требования к выравниванию из-за того как работает кэш.
Выравнивание мы уже предположили что одинаковое, вместе с размером и репрезентацией. А другие процессорные инструкции - ну так это и есть те самые операции.
Атомик не может пересекать границу кэшлайна даже если требования к выравниванию типа менее строгие.
Это я не очень понял что означает. (а, это походу Cache line contention)
Ну хорошо, кэш. Но как это повлияет на то что я передам кусок памяти питону (или даже начну юзать его дальше в однопоточном коде в той же программе) и что может пойти не так я не вижу если в памяти это массив выглядит как обычный. Может что-то из кэша не успеет перейти назад в память, такое может быть?
PS в конце концов, я как белый человек все сделал через memcpy конечно, компилятор вроде должен с оптимизировать, а тут мне просто интересно понять что к чему.
Исходная версия
BOSS-NIGGER,
:
Да, про кэш я не задумывался.
Это как минимум другие процессорные инструкции, оптимизационные барьеры для компилятора, особые требования к выравниванию из-за того как работает кэш.
Выравнивание мы уже предположили что одинаковое, вместе с размером и репрезентацией. А другие процессорные инструкции - ну так это и есть те самые операции.
Атомик не может пересекать границу кэшлайна даже если требования к выравниванию типа менее строгие.
Это я не очень понял что означает.
Ну хорошо, кэш. Но как это повлияет на то что я передам кусок памяти питону (или даже начну юзать его дальше в однопоточном коде в той же программе) и что может пойти не так я не вижу если в памяти это массив выглядит как обычный. Может что-то из кэша не успеет перейти назад в память, такое может быть?
PS в конце концов, я как белый человек все сделал через memcpy конечно, компилятор вроде должен с оптимизировать, а тут мне просто интересно понять что к чему.