В прошлом я работал в разных средах. Настольные приложения, игры, встроенные компоненты, веб-службы, задания командной строки, веб-сайты, отчеты по базам данных и так далее. Все эти среды имеют общую черту: независимо от их сложности, независимо от их размера, у меня всегда может быть подмножество или часть приложения на моей машине или в среде разработчика для тестирования.
Сегодня я не. Сегодня я нахожусь в среде, основной задачей которой является масштабируемость. Воспроизведение окружающей среды непомерно дорого. Взяв часть окружения, хотя и правдоподобного (некоторые части должны были бы быть смоделированы или использованы в режиме одного экземпляра, который они не должны делать), это своего рода побеждает цель, поскольку затеняет параллелизм и загрузку, что реальная система встреч. Даже небольшая «тестовая» система имеет свои недостатки. Вещи будут вести себя по-разному, когда у вас есть 2 узла и когда у вас есть 64 узла.
Мой обычный подход к оптимизации (измерить, попробовать что-то, проверить правильность, измерить различия, повторить) на самом деле не работает, так как я не могу эффективно выполнить шаги 2 и 3 для частей проблемы, которые имеют значение (надежность параллелизма и производительность в нагрузка). Этот сценарий не кажется уникальным, хотя. Каков общий подход к выполнению такого рода задач в такой среде?
Есть несколько связанных вопросов:
Reproducing the environment is prohibitively costly.
- Сколько стоит постановочная ошибка производства? Как насчет 2 ошибок? В непредсказуемое время (скорее всего, когда большинство пользователей одновременно загружают систему). Взвесьте это с затратами на настройку минимальной среды воспроизведения - вы, возможно, обнаружите, что она не слишком дорого в конце концов.
prohibitively costly
.