|
Try catch в Cache
|
|||
---|---|---|---|
#18+
Еще одно горячее обсуждение сегодня: пост по try catch в Developer Community. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2016, 19:16 |
|
Try catch в Cache
|
|||
---|---|---|---|
#18+
Речь идет о регистрации явных ошибок, для которых как минимум известно место их возникновения, а значит при желании можно понять контекст и воспроизвести ошибку, что практически равноценно ее исправлению. По мне так, не так важно в деталях, как регистрировать эту ошибку, главное, чтобы это было удобно разработчикам, которые занимаются поддержкой продукта. Вот если бы это помогало при разборе ситуаций, когда ошибка не возникает явно, но программа отрабатывает неверно, причем это выявляется хорошо если спустя неделю по неверным или испорченным данным, при этом неизвестен контекст выполнения, дата ошибки и иногда даже версия программы ;-) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2016, 05:35 |
|
Try catch в Cache
|
|||
---|---|---|---|
#18+
Блок А.Н., на уровне синтаксиса ЯП ловить не падения кода, а ошибки прикладной логики, реализуемой разработчиком? Если я, конечно, правильно понял Вашу мысль. Интересно, каким образом такое можно сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2016, 12:36 |
|
Try catch в Cache
|
|||
---|---|---|---|
#18+
EvLaUyБлок А.Н., на уровне синтаксиса ЯП ловить не падения кода, а ошибки прикладной логики, реализуемой разработчиком? Если я, конечно, правильно понял Вашу мысль. Интересно, каким образом такое можно сделать? И я бы хотел такому научиться... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2016, 12:41 |
|
Try catch в Cache
|
|||
---|---|---|---|
#18+
AlexKBEvLaUyБлок А.Н., на уровне синтаксиса ЯП ловить не падения кода, а ошибки прикладной логики, реализуемой разработчиком? Если я, конечно, правильно понял Вашу мысль. Интересно, каким образом такое можно сделать?И я бы хотел такому научиться... 17945666 ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2016, 13:11 |
|
Try catch в Cache
|
|||
---|---|---|---|
#18+
Найти ошибку / сбой программы, а вот косяк программиста - наврятли. Потому и существуют патчи в Windows, так как регулярно находят косяки в программах. Расчёт простой - одна ошибка на 100'000 это как пить дать. Опечатку никак не найти (если вместо ">" по ошибке написал "<"). Программе то всё равно. Условие есть условие. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.04.2016, 21:43 |
|
Try catch в Cache
|
|||
---|---|---|---|
#18+
EvLaUyБлок А.Н., на уровне синтаксиса ЯП ловить не падения кода, а ошибки прикладной логики, реализуемой разработчиком? Если я, конечно, правильно понял Вашу мысль. Интересно, каким образом такое можно сделать?Я говорю, что в том обсуждении люди предлагают методы поиска блестящей монетки под фонарем, при том, что на мой взгляд, гораздо больше проблем вызывает проблема поиска черной кошки ночью в темной комнате при том, что кошка еще не сидит на месте. Рецепты я не хочу предлагать, тут ничего особо оригинального нет. Можно, например, записывать все вызовы и их результаты, чтобы при выявлении ошибки через неделю попробовать понять контекст, можно, например, пытаться анализировать ошибки прикладной логики и записывать их в лог, каноничным вариантом, наверное, является использование юнит-тестов. Но это все скучно и каждый раз индивидуально, а try/catch поставил и вроде бы проблема решена, можно пообсуждать :-) Кстати, я слышал, что в некоторых средах частая установка try/catch сильно снижает производительность, даже если не выбрасывать исключения. Как с этим обстоят дела в Каше? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2016, 05:39 |
|
Try catch в Cache
|
|||
---|---|---|---|
#18+
Блок А.Н.Кстати, я слышал, что в некоторых средах частая установка try/catch сильно снижает производительность, даже если не выбрасывать исключения. Как с этим обстоят дела в Каше? Хорошо обстоят. Если исключение не возникает, то падения производительности практически нет. Тест . ... |
|||
:
Нравится:
Не нравится:
|
|||
21.04.2016, 11:52 |
|
Try catch в Cache
|
|||
---|---|---|---|
#18+
eduard93Хорошо обстоят. Если исключение не возникает, то падения производительности практически нет. Тест . Пример кода с "ошибками" Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2016, 10:46 |
|
Try catch в Cache
|
|||
---|---|---|---|
#18+
Хм... без ошибкиCache for UNIX (SUSE Enterprise Server for x86-64) 2010.2.8 (Build 1104U) Sat Feb 11 2012 13:08:18 ESTИтераций: 1 Время "No Try": .000017 Время "Try": .000003 "Try" заняло 17.65% времени "No Try" Итераций: 1 Время "No Try": .000003 Время "Try": .000001 "Try" заняло 33.33% времени "No Try" Итераций: 1 Время "No Try": .000003 Время "Try": .000001 "Try" заняло 33.33% времени "No Try" Итераций: 2 Время "No Try": .000002 Время "Try": .000002 "Try" заняло 100.00% времени "No Try" Итераций: 3 Время "No Try": .000004 Время "Try": .000002 "Try" заняло 50.00% времени "No Try" Итераций: 5 Время "No Try": .000004 Время "Try": .000004 "Try" заняло 100.00% времени "No Try" Итераций: 10 Время "No Try": .000008 Время "Try": .000006 "Try" заняло 75.00% времени "No Try" Итераций: 100 Время "No Try": .000063 Время "Try": .00005 "Try" заняло 79.37% времени "No Try" Итераций: 1000 Время "No Try": .000586 Время "Try": .00049 "Try" заняло 83.62% времени "No Try" Итераций: 10000 Время "No Try": .006036 Время "Try": .004976 "Try" заняло 82.44% времени "No Try" с ошибкойCache for UNIX (SUSE Enterprise Server for x86-64) 2010.2.8 (Build 1104U) Sat Feb 11 2012 13:08:18 ESTИтераций: 1 Время "No Try": .000215 Время "Try": .000259 "Try" заняло 120.47% времени "No Try" Итераций: 1 Время "No Try": .000074 Время "Try": .000082 "Try" заняло 110.81% времени "No Try" Итераций: 1 Время "No Try": .000069 Время "Try": .00008 "Try" заняло 115.94% времени "No Try" Итераций: 2 Время "No Try": .000122 Время "Try": .000207 "Try" заняло 169.67% времени "No Try" Итераций: 3 Время "No Try": .000226 Время "Try": .000288 "Try" заняло 127.43% времени "No Try" Итераций: 5 Время "No Try": .000335 Время "Try": .000409 "Try" заняло 122.09% времени "No Try" Итераций: 10 Время "No Try": .000591 Время "Try": .000714 "Try" заняло 120.81% времени "No Try" Итераций: 100 Время "No Try": .007276 Время "Try": .00769 "Try" заняло 105.69% времени "No Try" Итераций: 1000 Время "No Try": .058086 Время "Try": .082014 "Try" заняло 141.19% времени "No Try" Итераций: 10000 Время "No Try": .488961 Время "Try": .499278 "Try" заняло 102.11% времени "No Try" ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2016, 13:09 |
|
Try catch в Cache
|
|||
---|---|---|---|
#18+
П.С.М.Хм... без ошибкиCache for UNIX (SUSE Enterprise Server for x86-64) 2010.2.8 (Build 1104U) Sat Feb 11 2012 13:08:18 ESTИтераций: 1 Время "No Try": .000017 Время "Try": .000003 "Try" заняло 17.65% времени "No Try" Итераций: 1 Время "No Try": .000003 Время "Try": .000001 "Try" заняло 33.33% времени "No Try" Итераций: 1 Время "No Try": .000003 Время "Try": .000001 "Try" заняло 33.33% времени "No Try" Итераций: 2 Время "No Try": .000002 Время "Try": .000002 "Try" заняло 100.00% времени "No Try" Итераций: 3 Время "No Try": .000004 Время "Try": .000002 "Try" заняло 50.00% времени "No Try" Итераций: 5 Время "No Try": .000004 Время "Try": .000004 "Try" заняло 100.00% времени "No Try" Итераций: 10 Время "No Try": .000008 Время "Try": .000006 "Try" заняло 75.00% времени "No Try" Итераций: 100 Время "No Try": .000063 Время "Try": .00005 "Try" заняло 79.37% времени "No Try" Итераций: 1000 Время "No Try": .000586 Время "Try": .00049 "Try" заняло 83.62% времени "No Try" Итераций: 10000 Время "No Try": .006036 Время "Try": .004976 "Try" заняло 82.44% времени "No Try" с ошибкойCache for UNIX (SUSE Enterprise Server for x86-64) 2010.2.8 (Build 1104U) Sat Feb 11 2012 13:08:18 ESTИтераций: 1 Время "No Try": .000215 Время "Try": .000259 "Try" заняло 120.47% времени "No Try" Итераций: 1 Время "No Try": .000074 Время "Try": .000082 "Try" заняло 110.81% времени "No Try" Итераций: 1 Время "No Try": .000069 Время "Try": .00008 "Try" заняло 115.94% времени "No Try" Итераций: 2 Время "No Try": .000122 Время "Try": .000207 "Try" заняло 169.67% времени "No Try" Итераций: 3 Время "No Try": .000226 Время "Try": .000288 "Try" заняло 127.43% времени "No Try" Итераций: 5 Время "No Try": .000335 Время "Try": .000409 "Try" заняло 122.09% времени "No Try" Итераций: 10 Время "No Try": .000591 Время "Try": .000714 "Try" заняло 120.81% времени "No Try" Итераций: 100 Время "No Try": .007276 Время "Try": .00769 "Try" заняло 105.69% времени "No Try" Итераций: 1000 Время "No Try": .058086 Время "Try": .082014 "Try" заняло 141.19% времени "No Try" Итераций: 10000 Время "No Try": .488961 Время "Try": .499278 "Try" заняло 102.11% времени "No Try" Ого. Т.е. получается try catch серьезно замедляет исполнение. Не хотите тут опубликовать код и исследование? А на какой версии проверялось? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2016, 04:33 |
|
Try catch в Cache
|
|||
---|---|---|---|
#18+
Шваров Евгений, Код servit привел, я лишь запустил на исполнение (см. последнее сообщение от servit) :) Да и версия, вроде как, тоже указана: Cache for UNIX (SUSE Enterprise Server for x86-64) 2010.2.8 (Build 1104U) Sat Feb 11 2012 13:08:18 EST Ну и замедление происходит в случае ошибки, а в случае отсутствия ошибок, наоборот, работает быстрее чем код с "классическим" обработчиком ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2016, 09:22 |
|
Try catch в Cache
|
|||
---|---|---|---|
#18+
П.С.М.Шваров Евгений, Код servit привел, я лишь запустил на исполнение (см. последнее сообщение от servit) :) Да и версия, вроде как, тоже указана: Cache for UNIX (SUSE Enterprise Server for x86-64) 2010.2.8 (Build 1104U) Sat Feb 11 2012 13:08:18 EST Ну и замедление происходит в случае ошибки, а в случае отсутствия ошибок, наоборот, работает быстрее чем код с "классическим" обработчиком ))) Что-то я "подиагонали совсем" прочитал код спросонья - извините) А такое проверяли? - один и тот же код, без ошибок - с try catch и без try catch (и без "классического" обработчика)? Т.е. интересно, если просто вставить try catch блок, дает ли это замедление кода внутри блока? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2016, 10:28 |
|
Try catch в Cache
|
|||
---|---|---|---|
#18+
П.С.М.Код servit привел, я лишь запустил на исполнение ( см. последнее сообщение от servit ) :)Там точнее можно увидеть автора кода: 19092161 Шваров ЕвгенийОго. Т.е. получается try catch серьезно замедляет исполнение. Не хотите тут опубликовать код и исследование?Как-то не состыкуются "серьёзно замедляет" и "падения практически нет":eduard93Блок А.Н.Кстати, я слышал, что в некоторых средах частая установка try/catch сильно снижает производительность, даже если не выбрасывать исключения. Как с этим обстоят дела в Каше?Хорошо обстоят. Если исключение не возникает, то падения производительности практически нет. Тест . ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2016, 10:40 |
|
Try catch в Cache
|
|||
---|---|---|---|
#18+
Шваров ЕвгенийТ.е. интересно, если просто вставить try catch блок, дает ли это замедление кода внутри блока?Нет. Cache for Windows (x86-64) 2016.2 (Build 636U) Wed Apr 13 2016 20:58:35 EDT Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41.
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48.
Где-то здесь этот вопрос уже обсуждался. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2016, 10:54 |
|
Try catch в Cache
|
|||
---|---|---|---|
#18+
Влияние "прогрева" становится особенно очевидным, если сделать s start = $ZH f i=1:1:count s tSC = ..NoTry() s timeNoTry = $ZH - start s start = $ZH f i=1:1:count s tSC = ..NoTry() s timeTry = $ZH - start или s start = $ZH f i=1:1:count s tSC = ..Try() s timeNoTry = $ZH - start s start = $ZH f i=1:1:count s tSC = ..Try() s timeTry = $ZH - start ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2016, 11:16 |
|
|
start [/forum/topic.php?fid=39&msg=39220066&tid=1556491]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
28ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 141ms |
0 / 0 |