RU

Бенчмаркая StringBuilder: подстава на длинном тексте

StringBuilder делит текст на чанки по 8000 символов — вчетверо ниже порога кучи больших объектов. Запас такой, что попасть туда невозможно. Но чанк…

StringBuilderLOHкуча больших объектовчанкисборщик мусораоптимизация памятиаллокацииBenchmarkDotNet.NET 10Clear
Habr
RU

Бенчмаркая ArrayPool: подстава при копировании потоков — 131 072 байта в LOH

ArrayPool используют ради экономии на аллокациях. Но есть размеры, где он делает обратное: массив уходит в LOH, а через new остаётся в нулевом покол…

ArrayPoolLOHкуча больших объектовStream.CopyToFileStreamсборщик мусораоптимизация памятиBenchmarkDotNet.NET 10бенчмарк
Habr
RU

48-кубитный гибридный симулятор Гровера на домашней видеокарте: пробиваем стены памяти и времени

Вокруг квантовых вычислений много маркетингового шума. Если вы попытаетесь смоделировать честное 48-кубитное квантовое состояние в комплексном базис…

квантовые вычисленияалгоритм гровераквантовый симуляторcudapythonоптимизация памятивысшая математикаалгоритм bbhtsha48dynamic circuits
Habr
RU

Как устроен словарь в CPython: compact dict, key sharing и что с ним делает free-threading

У dict в Python слишком простая внешность: положили ключ, достали значение, пошли дальше. Но за этим стоит один из самых вылизанных участков CPython…

pythonCPythonсловарь Pythonхеш-таблицаcompact dictоптимизация памяти