|
Чтение .Net примитивом из реестра - не возвращает дефолт.
|
|||
---|---|---|---|
#18+
Ну скажем: Код: vbnet 1.
Если нету параметра "TestValue", но есть раздел "SubTest" то вернет "NoValue" -согласен. А вот если нету раздела "SubTest" то вернет пустую строку - НЕ согласен. Не, могу извернуться: Код: vbnet 1. 2.
тогда вернет "NoValue" Фигня какая-то, а если я не хочу создавать раздел (если его нет), при этом чтоб возвращала дефолт. Понятно, что могу написать свою ф-цию и делать сначала Registry.CurrentUser.OpenSubKey для проверки через Try/Catch, но меня бесит что штатная не работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2015, 16:49 |
|
Чтение .Net примитивом из реестра - не возвращает дефолт.
|
|||
---|---|---|---|
#18+
Дмитрий77, ..в данном случае дефолтом будет не просто NoValue, но и NoSuchDirectory .. все равно проверять надо, нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2015, 18:43 |
|
Чтение .Net примитивом из реестра - не возвращает дефолт.
|
|||
---|---|---|---|
#18+
carrotik, в данном примере дефолтом должна быть текстовая "NoValue", в том числе если ветка реестра вообще отсутствует. Да пофиг, ветку где прога хранит свои настройки (где их много) можно и создать. А вот в каких-то других частных случаях об этом глюке лучше помнить. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2015, 19:25 |
|
Чтение .Net примитивом из реестра - не возвращает дефолт.
|
|||
---|---|---|---|
#18+
вместо того, чтобы предаваться ангсту, написал бы свою функцию, возвращающую что нужно. вопрос-то копеечный, на сруль больше времени потратил. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2015, 01:32 |
|
Чтение .Net примитивом из реестра - не возвращает дефолт.
|
|||
---|---|---|---|
#18+
Antonariy, да написал уже Код: vbnet 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2015, 01:36 |
|
Чтение .Net примитивом из реестра - не возвращает дефолт.
|
|||
---|---|---|---|
#18+
Что я понял Try...Catch - это зло если этим пользоваться для проверки чего-либо. Исключения очень долго отрабатывают. Если моими ф-циями выше прочесть этак несколько десятков параметров из реестра, а их там нет, то задержка будет исчисляться секундами (тест показывает 200мс на попытку чтения 40 параметров с отработкой Catch). Переделал так: Код: vbnet 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2015, 12:00 |
|
Чтение .Net примитивом из реестра - не возвращает дефолт.
|
|||
---|---|---|---|
#18+
Дмитрий77, А каким профилировщиком проверяете? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2015, 12:33 |
|
Чтение .Net примитивом из реестра - не возвращает дефолт.
|
|||
---|---|---|---|
#18+
VSVLAD, Код: vbnet 1. 2. 3.
Вывод: 00:00:00.2031259 примерно так ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2015, 13:02 |
|
Чтение .Net примитивом из реестра - не возвращает дефолт.
|
|||
---|---|---|---|
#18+
Дмитрий77 Код: vbnet 1.
ужоснах https://msdn.microsoft.com/en-us/library/system.diagnostics.stopwatch.aspx ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2015, 14:01 |
|
Чтение .Net примитивом из реестра - не возвращает дефолт.
|
|||
---|---|---|---|
#18+
Изопропил, нахненах, я попробовал и никакой практической или точностной разницы не вижу, кроме того что для stopwatch надо писать 4 строчки кода вместо двух. Если интересно, то в VB6 (там нету таких штатных прибамбасов и с разницей двух Now() миллисекунды не получишь) я оценку делаю так: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
В любом случае, доли миллисекунд мне нахненужны, и эти оценки делаются не на отдельно взятой операции а на интегрированном количестве однообразных операций типа "чтение 10000 записей из БД", "чтение 100 записей из реестра", потому как "время исполнения" небольшого к-ва операций по любому хаотически скачет, а на большом к-ве разница заметна и оценка более достоверна. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2015, 15:31 |
|
Чтение .Net примитивом из реестра - не возвращает дефолт.
|
|||
---|---|---|---|
#18+
ИзопропилДмитрий77 Код: vbnet 1.
ужоснах https://msdn.microsoft.com/en-us/library/system.diagnostics.stopwatch.aspx Композитума напомнил... :-) Энергия точно та же. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2015, 15:34 |
|
Чтение .Net примитивом из реестра - не возвращает дефолт.
|
|||
---|---|---|---|
#18+
Дмитрий77"чтение 10000 записей из БД", "чтение 100 записей из реестра" полагаешь, что извлечение первой происходит за 1/10000 (1/100) от общего времени ? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2015, 15:50 |
|
Чтение .Net примитивом из реестра - не возвращает дефолт.
|
|||
---|---|---|---|
#18+
Изопропил, не полагаю. Но полагаю что 2100мс вместо 600мс на извлечение всех заставляет задуматься об оптимизации кода который их извлекает. Я эту тему дернул из-за Try/Catch, т.е. при запуске недописанного проекта при чтении значений реестра когда у меня 40 раз сработал Catch, мне показалось что Debug "слишом долго" пишет сообщения про исключения. И ту же самую фигню я наблюдал когда при сортировке ListView я проверял IsDate через Try/Cach (глядя на какой-то тупой пример из net-msdn) а один столбец был целиком DbNull. Т.е. мой вывод, что использовать Try/Catch для проверки чего либо - это последнее дело. Так? Не, м.б. я не прав и это дебаг гад так много времени тратит на то чтоб написать "Возникло исключение..." Но мне кажется, что тормозит сам механизм Try/Catch если им злоупотреблять. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2015, 16:10 |
|
Чтение .Net примитивом из реестра - не возвращает дефолт.
|
|||
---|---|---|---|
#18+
Дмитрий77Т.е. мой вывод, что использовать Try/Catch для проверки чего либо - это последнее дело. Так? Я думаю, что да. Когда у меня есть возможность - я стираю обработку эксепшенов, и разруливаю ситуацию проверкой условий. Применяю однозначно только тогда, когда есть обращение наружу - к сервису или в базу данных... Но вообще, есть даже такой модный дизайн - управление бизнес логикой по исключениям... ... |
|||
:
Нравится:
Не нравится:
|
|||
01.03.2015, 16:24 |
|
|
start [/forum/topic.php?fid=20&msg=38891703&tid=1401854]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
43ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 333ms |
total: | 470ms |
0 / 0 |