Я працюю за принципом одночасного програмування. По суті, всі мої робочі потоки мають незмінні копії того самого стану, які ніколи не поділяються між собою ( навіть за посиланням ). Взагалі кажучи, це спрацювало дуже добре.
Тепер хтось ввів кеш-сингл без блокування ( наприклад, статичний словник ), до якого всі потоки мають доступ одночасно. Оскільки після запуску словник ніколи не змінюється, блокування немає. Не було жодних проблем із безпекою різьблення, але зараз знижується продуктивність.
Питання в тому, що ... оскільки немає блокувань, чому введення цього сингтона створює хіт продуктивності? Що саме відбувається під прикриттями, що могло б це пояснити?
Для підтвердження доступ до цього нового сингтона - це єдина зміна, і я можу надійно відтворити це, просто коментуючи виклик у кеш.