Чи дійсно важливий час запуску веб-додатків?


11

Провів розмову з кимось про додавання коду ініціалізації при запуску програми, і він скаржився на те, що спричиняє збільшення часу запуску. Він насправді не міг зазначити причину (почуття кишечника чи щось таке, не знаю). Це не велике застосування, і воно починається приблизно через хвилину, або ми розгортаємо його кілька разів на рік.

Я пам'ятаю, як читав подібні поради щодо питань щодо SO деякий час тому, коли люди радили ініціалізувати під час запуску, а не на доступ до сторінки з маркою "якщо ви можете дозволити собі штраф".

Я працював з веб-програмами, які починалися від 30 секунд до 4-5 хвилин, але, коли вони в Інтернеті, вони хитнулися

То що мені не вистачає? Якщо це не життєво важливе застосування, як ... я не знаю ... для фінансового ринку, медичних застосувань, космічних досліджень тощо, чи справді це важливо час запуску?

PS Я чітко маю на увазі веб-програми, настільні додатки змушені швидко починати блискавки.


Чи визначена нефункціональна вимога до запуску програми або це лише обговорення в процесі розробки?
StuperUser

@StuperUser: ніяких вимог, поки що лише обговорення.
JohnDoDo

Насправді є веб-сайт із користувацьким досвідом, на якому було б краще запитати.
Циклоп

@Cyclops: мене насправді більше цікавлять причини на стороні сервера забору, а не з боку користувача.
JohnDoDo

Відповіді:


18

Це може бути важливим фактором під час розробки: якщо ваша платформа не підтримує зміну коду в запущеному додатку, то час запуску стає частиною вашого циклу зворотного зв’язку, і там навіть 30 секунд є болючими та загрозою для продуктивності.

Для виробничого середовища це дійсно не має значення; або невеликий час простою прийнятний, і 5 хвилин все ще не так багато, або це не так, і вам доведеться здійснити якесь перемикання в прямому ефірі.


Так, я зрозумів стільки ж про цикл розробки, але це не так, як ми змінюємо кому, розгортаємо, змінюємо ім’я змінної, розгортаємо і т. Д. Я особисто розгортаю розробку максимум 10 разів на день. Одна хвилина запуску або 1,2 - це не велика різниця.
JohnDoDo

7
@JohnDoDo: Скільки це справді природний робочий процес і скільки звично уникати тривалого розгортання? Швидкий цикл зворотного зв’язку може значно допомогти продуктивності. Іноді потрібно робити невеликі, поступові зміни та негайно бачити результат. 50 років тому люди писали програми на папері, подавали їх оператору і на наступний день отримували друкований результат - іноді просто помилка компілятора. Вам це не здається жахливо неефективним способом роботи з вами? Що ж, багатьом програмістам ваші 10 розгортань на день здаються просто такими.
Майкл Боргвардт

1
Якщо можливо, оцініть можливість зробити "макет" init або структуру, серіалізовану на диск з тестовими даними, щоб прискорити час запуску під час розробки.
Вінко Врсалович

Я погоджуюся з Вінко, чи є спосіб вимкнути дорогі функції init () під час будівництва в режимі налагодження? Не турбуйтеся, якщо те, що ви ініціалізуєте, дасть вам різні результати щодо Dev і Production.
AndyMcKenna

4

Я вважаю, що це той випадок, коли насправді діє відомий діалектичний принцип Гегеля про перехід від кількості до якості.

Розумієте, терміни завжди важливі. Я погоджуюся зі словами Майкла Боргвардта про важливість швидкої побудови під час розробки / тестування, але я наполягаю на тому, що це (можливо, інакше) це також дуже важливо для виробництва.

Кожен розробник, який розгорнув у виробництві якийсь поганий код, знає, що виправлення, надане за 5 хвилин і за 1 хвилину, - це справді, дуже різні речі.


2

Справжні питання - чи працюватиме програма без ініціалізації. У нас з’являються нові наймачі, які нав'язують «продуктивність», моя акція відповідає, що мені байдуже, як швидко ви даєте неправильні результати. Вирізання кутів IMHO, алгоритми керування, оскільки "це буде швидше таким чином" та інші чудові ідеї лише вводять помилки.

Якщо потрібна ініціалізація, зробіть це. Скільки часу буде витрачено даремно, коли кінцеві користувачі отримають неправильні результати, врешті-решт з’ясують, що веб-додаток невірний, зателефонує вам та скаржиться, і вам доведеться повертатися назад та налагоджувати / виправляти / випробовувати / повторно використовувати? тепер запитайте колегу, як заощаджено час. (і я би ставлю на облік, що сердечні сердечники на 99% простоюють)


2

Це питання не задається про якусь конкретну платформу. Є платформи, на яких час запуску дійсно дуже важливий.

Наприклад, на Google App Engine; якщо до вашої сторінки не можна отримати доступ (а точніше, до неї звертаються рідше, ніж інша програма на тому ж вузлі), вона буде завантажуватися періодично.

Таким чином, якщо ви знаходитесь у нижній частині 99% частоти доступу до сайту, то час запуску - це час доступу; ваша програма перезапускається майже при кожному доступі. якщо ви знаходитесь в топ-1%, то ваша програма запускається на багатьох вузлах, і хоча багато звернень до сторінки повертаються з уже запущеного екземпляра, деякі все ще не будуть, і тому у вас буде переривчастий довгий час доступу .

Це ж стосується багатьох інших середовищ хостингу. Витоки в сторонніх бібліотеках або навіть у вашому власному коді, які просто ухиляються від відкриття, можуть означати, що єдиний надійний спосіб запустити вашу веб-службу - це перезавантажувати кожну стільки запитів (часто від 100 до 10000) тощо час запуску оплачується часто. Використання цього шаблону є прийнятним, коли додаток є герметичним, але швидко запускається; це нездійсненно, коли для запуску програми потрібно більше декількох секунд.


1

Ви ризикуєте, що ваша програма вважатиметься нестандартною або ще гіршою, вашою здатністю до розвитку. Тепер ця програма може економити комусь стільки часу та / або виконувати таку необхідну задачу, що вдячні користувачі можуть заглянути довгий запуск.

Програмування може зайняти більше часу для того, щоб ледаче завантажувати додаток, але лише зацікавлені сторони можуть визначити, чи варто це. У мене був звіт, який пробіг за 55 сек. і ми знизили його до 35. Ніхто не помітив. Хоча я витратив удвічі більше часу, отримуючи його від 35 до 18, всі помітили і були вдячні та вражені. Переходити від 5 до 3 хвилин на додаток, який використовується декілька разів на рік, не велика справа. Користувачам просто буде менше часу проводити у Facebook чи отримувати каву.

Сприйняття - це ключ. Якщо компанія не задоволена командами з розвитку в цілому, а саме цим додатком, можливо, ви захочете створити трохи доброї волі та прискорити роботу.


Однак час запуску веб-додатків не повинен впливати на звичайних користувачів. Інший розробник дратує, оскільки він особисто перезавантажує додаток кілька разів на день у рамках регулярної розробки.
AndyMcKenna
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.