2012-03-27 5 views
15

Мы только что выпустили приложение, использующее структуру Crittercism. Через некоторое время у нас было около 125 тыс. Загрузок приложений, а 95 сбоев - менее 0,08%.Скорость сбоя приложения iOS - уровень фонового шума?

Одна авария произошла 19 раз, еще 10, но другие 41 все произошло 3 или меньше. Если бы были какие-то серьезные проблемы с приложением, я ожидал бы увидеть значительно больше сбоев в определенных областях, поэтому я доволен уровнем цифр, которые я вижу.

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

Примеры

  • Самая большая группа все делать с CFNetworking на фоне потока в то время как статический HTML в настоящее время оказывается в веб-просмотра на главном потоке.
  • Есть некоторые КВО неудача в free_list_checksum_botch

Но мой вопрос является, в достаточно сложной операционной системе (IOS в данном случае), с достаточно сложным приложением (который я думаю, что это), должен Я, как разработчик, ожидаю увидеть этот уровень «фонового шума»?

Должен ли я ожидать столкновения с одним приложением на 1-2000 загрузок, просто потому, что ОС не идеальна? Имеет ли кто-либо другой подобный опыт?

(Я не ищу для решения самих ошибок .. спасибо!)

ответ

0

Хотя не технический ответ, на мой iPhone, я бы лично планирующим иметь приложение, я использую аварии много, по крайней мере один или два раза в год. Я бы сказал, что уровень вполне приемлем, и, как правило, я нахожу, что они в первый раз вылетают в первый раз, когда вы начинаете. Я считаю, что это что-то можно ожидать.

+0

Это довольно большое ожидание. Как разработчик, я стараюсь удалить каждый отдельный краш. Как пользователь, случайный крах действительно меня не беспокоит. Если это делает приложение непригодным для использования, или оно прервало мое использование (например, в середине игры) - тогда я буду обеспокоен. Но если я использую RSS-ридер, и он разбился ... я просто перезапустил его. – bandejapaisa

5

Я разработчик iOS, профессионально занятый. Я воспринимаю это лично, когда мои приложения вылетают из строя, потому что это не тот пользовательский опыт, к которому я стремился. Крушение - плохой пользовательский интерфейс. Одного сбоя, на пользователя, слишком много. Авария - ошибка.

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

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

Итак, подведем итог:

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

Наконец, я предлагаю этот вопрос рассмотреть:

  • Вы готовы отвалить или уволить некоторых пользователей просто потому, что они попадают в 0,08% пользователей, испытывающих аварии?

Пища для размышления. :-)

+0

Вы правы, конечно, 1 crash действительно слишком много. Но в этом есть только приложение для потребления, так что худшее, что произойдет с пользователем, это то, что они вернулись на трамплин (многие даже не читают это как сбой), и перезапуск приложения возвращает их туда, где они были ... без вреда. И я полностью с вами о причине многих таинственных ошибок. Я просто хотел бы получить представление о том, какой уровень (если есть один) неудач из-за присущих ОС проблем. –

+9

Вы почти предполагаете, что ОС, iOS в этом случае, не содержит ошибок и не может быть причиной проблем, и посмотрите на цифры здесь ... он говорит о 0,08% пользователей. Это очень небольшое количество, и могут быть очень неясные ошибки, которые никогда не подбираются тестировщиками QA или даже автоматическими тестами - если только они не испытывают стресс. Я готов исправить каждый крах, который, возможно, могу - то, что я не могу себе позволить, это потратить дни, пытаясь исправить неясную катастрофу, которая происходит 1 раз в 50 000 раз. – bandejapaisa

+1

Я знаю, что iOS не является ошибкой. Я видел много необъяснимых сбоев, когда мой код не был даже в трассировке стека. Итак, нет, iOS не идеальна. Но это близко. ;-) В конечном счете, вы должны сбалансировать свои усилия в решении этих видов сбоев с другими данными, окружающими их (например, частоту), и в конечном итоге извлечь выгоду, чтобы потратить время на их устранение в первую очередь. –

2

Я профессиональный разработчик iPhone, и то, что я видел, это частота сбоев, а не то, что расстраивает пользователей, это воронка для того, как происходят сбои.

Если они прерывисты, вы, как правило, в порядке, проблема возникает, когда один пользователь испытывает определенный крах несколько раз. Это неприемлемо.

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

Важно помнить, что если вы решите не исправлять сбой, который случается 0.08% времени, вы не записываете пользователей, испытывающих это, если они не испытывают его несколько раз.

6

Критерий проводил анализ аварий приложений. Их отчет был основан на сбоях Android vs iOS.

Они пришли к выводу, что самые популярные приложения в iOS crash 0.51% приложений запускаются. Итак, @Ashley Mills, если вы получаете 0,08% ... у вас все хорошо. (во всяком случае, у меня есть цифры).

Не уверен, где первоначальный отчет, но я прочитал его здесь:

Forbes app crash rates, conducted by Crittercism

+0

Так лучше, что среднее, что хорошо, но я до сих пор не знаю, что такое базовая скорость сбоя ОС. Хотя, если честно, я обвиняю другого разработчика в проекте в большинстве его неудач. –

+0

«Но мой вопрос заключается в том, что в достаточно сложной ОС (iOS в этом случае) с достаточно сложным приложением (как мне кажется), должен ли я, как разработчик, ожидать такого уровня« фонового шума »? Анализ Crittercism охватывает десятки тысяч приложений и должен быть для вас достаточно хорошим ответом. Любой другой единственный ответ от пользователя будет основан только на нескольких приложениях. Теперь дайте мне щедрость, или щедрость пойдет вам на голову Ответ: ДА, ожидайте шума. – bandejapaisa

+0

Как запуск приложений коррелирует с сеансами пользователя? Подходит ли фоновое представление приложения и последующее возобновление к тому же запуску приложения или запускам отдельных приложений? – Dalmazio

5

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

Если ваше приложение просто для удовольствия и обучения, то я мог видеть, как он копается в этой проблеме как забавное приключение. С точки зрения бизнеса, каково ваше время и выясняет, что эта проблема составляет 0,08%, чтобы продать достаточно (более) копии, чтобы ваши усилия стоили того.

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

+0

Я согласен с тем, что, вероятно, слишком мало беспокоиться, особенно если это приложение предназначено для только данные, поэтому ничто не может действительно «потеряться» в результате сбоя. Мой вопрос (еще не ответивший, я боюсь) был для моего собственного любопытства. –

+1

Я подозреваю, что (если вы посмотрите на мой комментарий в приведенной выше теме), то 0.08% почти неизбежно. Когда вы смотрите на MS Explorer или даже на Safari, он падает довольно регулярно. К сожалению, даже если бы у нас был совершенный код, мы могли бы получить удар (на устройствах iOS в любом случае) с ложным переворотом бит в аппаратном обеспечении. iOS или аппаратной поддержкой ECC, и если у вас есть немного флип в области кода, ваш код будет действовать своеобразно или даже не работать, то в ваших данных вы можете рисковать (если он используется в заявлении филиала) к неожиданному месту. Конечно, это не случается часто, но когда вы все добавляете ....... – trumpetlicks

+0

А ... вы точно поняли мой вопрос. Когда вы запускаете приложение миллионы раз, иногда он может прорваться через что-то другое, кроме ошибки программиста. Теперь, если бы мы могли видеть, что это за ставка ... Между тем, есть 50 очков :) –

Смежные вопросы