Могу ли я сравнить производительность между серверами sql?

Я хочу знать, работает ли новый код быстрее или медленнее, чем текущий. Я могу использовать профилировщик для отслеживания как нового кода, так и старого кода, но проще всего сделать это на разных серверах, и даже если бы я мог сделать это на том же сервере, у меня было бы значительное количество других людей, использующих этот сервер. в то же время, что влияет на производительность. Могу ли я сравнить чтения и ЦП, чтобы провести сравнение яблок с яблоками? Или эти значения будут зависеть от основного оборудования? Очевидно, я ничего не могу сделать с информацией о продолжительности. Какие еще столбцы трассировки мне следует посмотреть?

Конечно, вы можете сравнивать на другом сервере, НО ваши результаты МОГУТ быть менее точными (или даже совершенно несопоставимыми). Код не является изолированной сущностью: он выполняется на определенном сервере (с определенной конфигурацией sw & hw) и используется определенным образом. Один и тот же код, вызываемый в изолированной тестовой среде и в производственной среде с более чем 1 млн одновременных пользователей, может вести себя совершенно по-разному. Параллелизм также влияет не только на код ваш, но также на HW (доступ к диску и всем другим совместно используемым ресурсам) и, возможно, на sw.

Adriano Repetti 01.05.2018 16:18

Да, вы можете и должны начать тестирование на отдельной непроизводственной машине (лучше, если с той же конфигурацией аппаратного и программного обеспечения), сначала в контролируемой изолированной тестовой среде, а затем для уточнения результатов вы должны попытаться воспроизвести реальную производственную среду ( загруженность, аппаратные средства, доступы). Но последнее слово (когда вы достаточно уверены, что ваш новый код работает так, как ожидалось, а производительность разумно лучше), вы ДОЛЖНЫ проверить на рабочем сервере (возможно, перенаправляя только трафик некоторый, если у вас есть балансировщик нагрузки). Через несколько дней вы можете сравнить живые результаты «старого» и «нового».

Adriano Repetti 01.05.2018 16:23

И последнее об оптимизации. Часто вам нужно найти компромисс: лучший средний ответ, лучший ответ в худшем (но не частом) случае, лучший ответ в лучшем случае (если достаточно часто) и так далее (или, скорее всего, баланс между ними всеми). На все эти меры влияют модели использования аппаратного / программного обеспечения / использования. Воспроизвести их в тестовой среде - непростая задача (не стоит недооценивать это).

Adriano Repetti 01.05.2018 16:28
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
3
25
0

Другие вопросы по теме