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

Как я прокомментировал выше при ответе Гленнса, отправка popViewController в основной поток может быть проблемой, потому что он будет выполняться также при распознавании двойного касания. Может быть, это немного более «стабильное» решение:

private func setupBackButton() {
    let myBackButton = UIButton(type: .custom) // or whatever
    // setup title, image etc.

    let myCustomBackButtonItem = UIBarButtonItem(customView: myBackButton)
    self.navigationItem.leftBarButtonItem  = myCustomBackButtonItem         

    // Create gesture recognizers for single and double tap:
    let singleRecognizer = UITapGestureRecognizer(target: self, action: #selector(self.singleTap))
    singleRecognizer.numberOfTapsRequired = 1

    let doubleRecognizer = UITapGestureRecognizer(target: self, action: #selector(self.doubleTap))
    doubleRecognizer.numberOfTapsRequired = 2

    // single tap should only fire if double tap is not recognized
    singleRecognizer.require(toFail: doubleRecognizer)

    myBackButton.addGestureRecognizer(singleRecognizer)
    myBackButton.addGestureRecognizer(doubleRecognizer)
}

@objc private func singleTap() {
    self.navigationController?.popViewController(animated: true)
}

@objc private func doubleTap() {
    self.navigationController?.popToRootViewController(animated: true)
}
5
задан Sid M 14 July 2014 в 08:50
поделиться

7 ответов

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

Можно ли работать через проблему сами - какова минимальная "работа", которую необходимо выполнить для транзакции или безотносительно единицы задачи, которую Вы имеете в своем приложении?

Некоторые сообщения к и от, некоторая обработка и хит базы данных, например? Получение информации об отдельных частях даст Вам общее представление о самой быстрой пропускной способности. Если Вы загружаете систему и видите значительно более низкую производительность затем, можно занять время для выяснения, где Вы возможно теряете пропускную способность с неэффективными алгоритмами и т.д.

Править

Чтобы сделать это осуществление, необходимо знать все шаги, которые приложение делает для каждого варианта использования. Затем можно определить макс. пропускную способность для каждого варианта использования. Необходимо определенно знать этот материал до выпуска и ввода в эксплуатацию.

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

6
ответ дан 18 December 2019 в 13:20
поделиться

Посмотрите Планирование мощностей для веб-Производительности: Метрики, Модели и Методы. Существуют также некоторые инструменты, которые могут сделать этот вид дискретного моделирования события:

Этот материал не легок, и коммерческие инструменты будут стоить ya. Книга Планирования мощностей идет с CD с большим количеством шаблонов рабочей книги Excel и примерами моделей, которые могут запустить Вас от внешнего источника.

Удача :)

3
ответ дан 18 December 2019 в 13:20
поделиться

Если действительно необходимо ответить на это, Вы могли бы сказать что-то вроде этого:

"Я не знаю первое, что пришло на ум. Я - желание оценить это для Вас, но оно займет время. Очевидно, точность моего ответа зависит от того, сколько усилий (Т.Е. время) я приложил к вычислению моей оценки. Сколько времени я должен поместить в вычисление моей оценки?"

Отложите нагрузку на них. Если они действительно хотят точный ответ, они оказываются перед необходимостью позволять Вам создать по крайней мере некоторые тестовые приложения, которые могут моделировать фактическую среду.

2
ответ дан 18 December 2019 в 13:20
поделиться

Можно пронзить для измерения уровня. Ваша целая система еще не может работать, но Вы знаете, как части предназначаются для совмещений. Можно сделать что-то на скорую руку через несколько часов, который делает тот же вид работы, как заключительное приложение будет через все слои, и использовать его для измерения уровня дизайна.

Помните: прототипы широки, скачки глубоки.

1
ответ дан 18 December 2019 в 13:20
поделиться

Это верно в некоторых доменах, но если Вы не эксперт в том домене затем, у Вас нет идеи. Например, я пишу код к управлению промышленными роботами. Скорость ограничена движением робота, не скоростью выполнения кода. Знание, как быстро робот и как далеко это должно пойти, мы можем сделать довольно хорошие оценки из "скорости". Я понятия не имел бы, как оценить время для Вашего приложения.

0
ответ дан 18 December 2019 в 13:20
поделиться

You can definitely do capacity planning in advance, but the quality of the estimate will depend on the quality of the data available.

The best estimate is to build the system in test, run simulated workloads, then predict capacity as a function of performance requirements and workload. These 3 form a prediction space - given 2 of the 3, you can predict the third:

  1. Given performance requirements and capacity (i.e. hardware) you can calculate the workload you can handle.

  2. Given performance requirements and workload, you can calculate the capacity (i.e. hardware) that you need.

  3. Given Workload and capacity, you can predict your expected performance.

1
ответ дан 18 December 2019 в 13:20
поделиться

Вы должны сделать оценку. Оценка не даст вам правильного ответа. Однако это заставит вас задуматься о проблеме. Прямо сейчас это похоже на ваше кодирование и надежду, что все будет в порядке. Или вы находитесь в состоянии паники и чувствуете, что у вас нет времени на оценки.

Поразмышляйте над этим. Проанализируйте важные варианты использования. Подумайте о том, какая память вам может понадобиться; подумайте о доступе к базе данных; подумайте о сетевом доступе (локальном и удаленном). Это повлияет на производительность вашей системы. Соберите для этого всю команду.

Регулярно измеряйте производительность вашей системы во время разработки для этих важных вариантов использования. При необходимости создайте макеты компонентов / других систем. Анализируйте результаты. Как они соотносятся с вашей оценкой. Возможно, компоненты связаны с памятью / базой данных / сетью. Возможно, вам нужно больше памяти; меньший доступ к базе данных; более простые запросы; кеширование. Вам не нужно вносить эти изменения сразу. Однако вы знаете, как работает ваша система и что вам нужно делать.

Результат: Меньше неприятных сюрпризов при тестировании системы. Меньше паники по мере приближения даты релиза.

1
ответ дан 18 December 2019 в 13:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: