Ben_r007, причем здесь продакшн?
Если ты имеешь ввиду новые проекты, то почему новый проект не начинать делать по другому. Старые проекты, только ради этой штуки, конечно переписывать не будут.
Вам надо будет ещё определится, как этот сервис будет работать с базой 1С. Если будет прямой доступ к актуальной базе данных, то ок.
Если же будет промежуточный обмен между 1С через выгрузки, то вам надо ввести ещё одну стадию "подтверждение заявки". Возможно как уведомлять клиентов, что заявка прошла одобрение и т.п.
В целом никаких сложностей с реализацией быть не должно. Со стороны 1С точно интеграционные доработки потребуются.
Загрузить всё в память и сделать параллельную обработку. По умолчанию предполагаем сортировку и бинарный поиск с оптимизациями. Можно предварительно упорядочить пароли не только по начальной букве, но и по его длине, чтобы сравнивать области памяти фиксированной длины.
Myclass, в C# нет никакой глобальной памяти, есть только куча и стек.
Как написал Роман выше, статические переменные хранятся вместе с метаданными класса которому они принадлежат.
Роман, с моей стороны не стоило так прямо проводить параллель -- значимая переменная = место в стеке. Все таки значимый/ссылочный это ещё и про разную семантику, но что получилось то получилось. Новичкам будет полезно почитать дискуссию думаю.
Всё сделано для простоты организации всех этих вещей и легкости справлятся с такими задачами, как создавание переменных/обьектов, их видоизменения и удаления.
Да-да, чтобы попроще было что то там организовать, взяли да и ввели две совершенно разных семантики переменных. Где ответ на вопрос? Почему нельзя было сделать, чтобы все переменные были значимые?
Myclass, я честно два раз перечитал и не понял, зачем нужен стек, если все можно в куче хранить. Какая первейшая причина хранить локальные переменные в стеке?
Myclass, я написал про самый низший уровень работы, причем здесь операционная система? На том уровне нет операционной системы, есть команды процессора - работа с регистрами и абсолютными адресами памяти.
Для работы со стеком есть регистры, для работы с "кучей" регистров нет, т.к. процессор не знает что такое куча.
Роман, я не говорил, что стек от памяти отличается, я говорил что работа с ними отличается. Физически - это одно и тоже.
Ключевой довод в том, что куча - это абстракция её ввели высокоуровневые языки. А стек - нет, это часть архитектуры, которая реализована на уровне процессора.
Я очень упрощу: в процессоре, работа с данными - считывание/запись идет через индексный регистр (сегмент памяти, смещение). Загрузка произвольного адреса в этот регистр дольше по тактам процессора, чем загрузка в этот же регистр значение регистра который ссылается на текущий стек.
Или например инициализация переменных в стеке. PUSH команды одни из самых быстрых.
По части много операций. Процессору нужно получить доступ к физическому сегменту памяти, т.к. даже на уровне процессора адрес произвольной памяти является дескриптором а не физическим адресом. Затем нужно сделать проверки безопасности, память является сегментом данных, принадлежит приложению и т.п. Понятно, что это не растягивается на миллисекунды, но несколько тактов тратится.
Если ты имеешь ввиду новые проекты, то почему новый проект не начинать делать по другому. Старые проекты, только ради этой штуки, конечно переписывать не будут.