|
11.12.2019, 12:08 | #1 |
Участник
|
Как линейное время превращается в Windows в O(n²)
Не смог пропустить такую статью, решил перепостить.
Для Аксапты тоже актуально. https://habr.com/ru/post/479498/ Странно почему такие баги никто не тестирует. Нелинейность времени обработки легко поймать автоматизированным тестом. |
|
|
За это сообщение автора поблагодарили: gl00mie (5). |
11.12.2019, 12:40 | #2 |
Участник
|
А как вы поймаете?
Время работы автотестов, как правило ограничено +-. Ждать что тест рухнет через n часов работы никто не будет. |
|
11.12.2019, 13:04 | #3 |
Участник
|
Зачем часы ? Чтобы выявить нелинейность не надо ждать часы.
1. создаем заказ 10 строк. 2. постим инвоис 3. засекли время 4. создаем заказ 100 строк. 5. постим инвоис 6. засекли время 7. создаем заказ 300 строк. 8. постим инвоис 9. засекли время ... Если на каком то из шагов время возрастает нелинейно, то тест можно прерывать, он провален. Постинг документа можно делать в отдельном потоке (пакет ?) если не завершился за разумное время то тоже тест провален. Постинг принудительно прерываем. По опыту разноски накладной по закупке/заказу, время не резко скачет до часов. Сперва минут 10 на 500 строк выскочит. Тут уже станет видна нелинейность. К этим цифрам скачком не подберешься. Последний раз редактировалось Logger; 11.12.2019 в 13:06. |
|
11.12.2019, 13:31 | #4 |
Участник
|
Цитата:
При каких то звездах ок при каких то нет. |
|
11.12.2019, 13:54 | #5 |
Участник
|
Ну, вы просто не занимались раньше этим вопросом.
Критерий очень простой и численно формализуем. Померяли время, поделили одно на другое, сравнили с критерием. Вы видимо просто не сталкивались с такими задачами. |
|
11.12.2019, 14:29 | #6 |
Участник
|
У Андрея Акиньшина есть статья про сложности автоматического performance тестирования.
|
|
|
За это сообщение автора поблагодарили: Logger (1), gl00mie (2). |
12.01.2020, 13:05 | #7 |
Участник
|
Цитата:
Сообщение от belugin
У Андрея Акиньшина есть статья про сложности автоматического performance тестирования.
DevOps-а на вас нет Вот когда какая-то проблема с производительностью или нестабильным поведением кода начинает капать тебе на мозг 80% рабочего времени (и еще сколько-то - нерабочего), то сразу забываются бредни про теоретическую нерешаемость задачи в общем виде, и находится решение, оптимизации какие-то сами собой рождаются, алгоритмы со сложностью O(n²) выкидываются на помойку, несмотря на их простоту и кажущуюся элегантность... Проблеме с квадратичной зависимостью времени разноски документа в Аксапте от числа строк ведь не один год, даже не один десяток лет, а воз и ныне там. Сложно, мол, автоматически тестировать производительность, ага... И кинуть клич по партнерам/клиентам, чтоб узнать типовое количество строк в заказе за покупку или журнале розничной реализации (RetailStatement) и тупо тесты свои блочные гонять на этих объемах, а не на 10-20 строках, - тоже сложно. Пусть производительность будет чужой попаболью |
|