|
213 / 139 / 8
Регистрация: 18.08.2010
Сообщений: 1,018
|
||||||
Использовать один блок try{} вместо двух, сохраняя производительность26.09.2012, 11:38. Показов 1347. Ответов 9
Метки нет (Все метки)
LeniumSoft, а как бы вы переработали вот этот метод? Как видите, тут я кучу блоков try{} тоже наставил... Сделал я это по той причине, чтобы при каждом сохранении скрина не проверять существование папки (лишние операции с файловой системой ведь очень дорогостоящие по ресурсам). А если папка не существует, то возникнет исключение, и только уже после этого мы проверим, существует ли папка. И если нет, тогда создаем ее и пробуем вторую попытку создания скрина.
0
|
||||||
| 26.09.2012, 11:38 | |
|
Ответы с готовыми решениями:
9
Как использовать один запрос вместо двух? Связанный список - использовать в функции один указатель вместо двух |
|
1454 / 847 / 150
Регистрация: 06.06.2012
Сообщений: 2,370
|
|||||||
| 26.09.2012, 12:22 | |||||||
Вечером если смогу, то опишу механизм подробнее!
1
|
|||||||
|
213 / 139 / 8
Регистрация: 18.08.2010
Сообщений: 1,018
|
|
| 26.09.2012, 20:03 [ТС] | |
|
Вы сделали то, чего я как раз и избегал - ваш код проверяет существование директории каждый при создании скрина!
0
|
|
|
1454 / 847 / 150
Регистрация: 06.06.2012
Сообщений: 2,370
|
||||||||||||||||||
| 26.09.2012, 20:58 | ||||||||||||||||||
|
И так! Само свойство:
Как же он работает:
Она довольно большая и выполняет много работы!
Из него видно что он вызовет всё это чудо только первый раз. При следующих обращениях он нам просто будет выдавать то что получил первый раз. Соответственно тебе надо только DirectoryInfo вывести за метод и не инициализировать постоянно! Тоесть один раз его создал указав путь к папке и потом в своём методе проверяй свойство Exists.
1
|
||||||||||||||||||
|
213 / 139 / 8
Регистрация: 18.08.2010
Сообщений: 1,018
|
|
| 26.09.2012, 22:48 [ТС] | |
|
LeniumSoft, спасибо за такой довольно развернутый исследовательский ответ
![]() Не по теме: Вы не против, если мы продолжим обсуждение по коду в личке или в другой теме на форуме? То, о чем мы сейчас уже начали обсуждать, никому из людей, использующих HideScreener, не особо нужно и интересно:)
0
|
|
|
1454 / 847 / 150
Регистрация: 06.06.2012
Сообщений: 2,370
|
|
| 26.09.2012, 23:07 | |
|
0
|
|
|
213 / 139 / 8
Регистрация: 18.08.2010
Сообщений: 1,018
|
||||||||||||||||||||||||||
| 26.09.2012, 23:31 [ТС] | ||||||||||||||||||||||||||
|
Вынес обсуждение из этой темы. Думаю, модераторы не будут против)
Продолжу... Согласно поданной вами информации посмотрим теперь на производительность моего первоначального метода и сравним его с вашим методом, предложенным в вот этом посте. Я первоначально использовал вот такой метод:
А результат то получился таким самым. Даже более, ваш метод получился не такой оптимальный как мой. В моем методе в 95% случаев работает только один блок try, так как в 95% случаев папка для скринов существует. И потому мой метод в 95% случаев исполняет только вот эти две строчки:
0
|
||||||||||||||||||||||||||
|
1454 / 847 / 150
Регистрация: 06.06.2012
Сообщений: 2,370
|
||||||
| 27.09.2012, 11:59 | ||||||
|
Ёлки палки! Про try catch мы говорили когда ты строку в bool парсил! Насчёт этого метода ты попросил показать как бы я его переписал! Я тебе его переписал более понятно и красиво! Без бесполезных зацикливаний и прочего! Причём тут вообще try catch? Этот код работает с файловой системой и его надо засунуть в try от греха! Я не пойму за какой производительностью ты гонишься? Эти оба метода отработают очень быстро и ты этого даже не заметишь! Сохрани в начале метода колличество текущих тиков и в конце метода отними от текущих тиков то значение которое ты получил вначале.
Я то тебе представил более понятный и не запутанный метод! А работает он так же!
0
|
||||||
|
213 / 139 / 8
Регистрация: 18.08.2010
Сообщений: 1,018
|
|
| 27.09.2012, 13:29 [ТС] | |
|
Вы меня неправильно поняли, а я вас... В результате получилось черт знает что
Извините... Тогда проехали....Добавлено через 25 минут Я бываю иногда очень озабочен граммами производительности, даже если код от этого становится не такой красив.. но это наверное плохо?
0
|
|
|
1454 / 847 / 150
Регистрация: 06.06.2012
Сообщений: 2,370
|
||
| 27.09.2012, 20:18 | ||
|
1
|
||
| 27.09.2012, 20:18 | |
|
Помогаю со студенческими работами здесь
10
Сделать вместо двух бордеров один
Заменить один элемент строки вместо двух Как использовать один Enum в двух проектах по связной ссылке? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символьное дифференцирование
igorrr37 13.02.2026
/ *
Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2).
Унарный минус обозначается как !
в-строка - входное арифметическое выражение в инфиксной(обычной). . .
|
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
|
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу,
и светлой Луне.
В мире
покоя нет
и люди
не могут жить в тишине.
А жить им немного лет.
|
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила»
«Время-Деньги»
«Деньги -Пуля»
|
|
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога
Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
|
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога
Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
|
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
|