Net framework 5, а также среды Visual Studio 2012 и C#



Download 6,27 Mb.
Pdf ko'rish
bet395/658
Sana12.06.2023
Hajmi6,27 Mb.
#950840
1   ...   391   392   393   394   395   396   397   398   ...   658
Bog'liq
CLR via C Programmirovanie na platforme Microsoft NET Framework 4 5 na yazyke C

рис. 20.8.
.Счетчики.исключений. NET.CLR.в.окне.монитора.производительности
Время от времени попадается какой-нибудь часто вызываемый метод, который 
активно генерирует исключения. В такой ситуации снижение производительности 


542
Глава.20 .Исключения.и.управление.состоянием
из-за обработки слишком частых исключений оказывается очень значительным. 
В частности, в Microsoft слышали от нескольких клиентов жалобы, что при вызове 
метода 
Parse
класса 
Int32
и передаче некорректных данных, введенных конечными 
пользователями, возникал сбой. Так как метод 
Parse
вызывался часто, генерация и 
перехват исключений серьезно снижали общую производительность приложения.
Для решения заявленной клиентами проблемы и в соответствии с принципами, 
описанными в этой главе, специалисты Microsoft добавили в класс 
Int32
метод 
TryParse
, имеющий две перегруженные версии:
public static Boolean TryParse(String s, out Int32 result);
public static Boolean TryParse(String s, NumberStyles styles,
IFormatProvider, provider, out Int32 result);
Как видите, все эти методы возвращают значение типа 
Boolean
, указывающее, 
содержит ли переданная строка символы, которые можно преобразовать в 
Int32

Эти методы также возвращают выходной параметр 
result
. Если методы возвра-
щают значение 
true
, параметр 
result
содержит результат преобразования строки 
в 32-разрядное целое. В противном случае этот параметр оказывается равен 0, но 
это значение вряд ли может использоваться в коде.
Я бы хотел абсолютно четко прояснить одну вещь: возврат методом 
TryXxx
значения 
false
указывает на один и только один тип сбоя. Для других сбоев метод 
может генерировать исключения. Например, метод 
TryParse
класса 
Int32
в случае 
передачи неверного параметра генерирует исключение 
ArgumentException
. И ко-
нечно же, он может сгенерировать исключение 
OutOfMemoryException
, если при 
вызове 
TryParse
происходит ошибка выделения памяти.
Также хотелось бы подчеркнуть, что объектно-ориентированное программи-
рование повышает производительность труда программиста, и не последним фак-
тором является запрет на передачу кодов ошибок в членах типов. Иначе говоря, 
конструкторы, методы, свойства и пр. создаются с расчетом на то, что в их работе 
сбоев не будет. И при условии правильности определения в большинстве случаев 
при использовании типов сбоев не будет, а значит, не будет снижения производи-
тельности, обусловленного исключениями.
Типы и их члены следует определять так, чтобы свести к минимуму вероятность 
их сбоев в стандартных сценариях их использования. Если вы позже услышите 
от своих клиентов, что из-за выдачи множества исключений производительность 
неудовлетворительна, тогда и только тогда имеет смысл подумать о добавлении 
в тип методов 
TryXxx
. Иначе говоря, сначала надо создать оптимальную объект-
ную модель, а затем, если пользователи окажутся недовольными, добавить в тип 
несколько методов 
TryXxx
, которые облегчат им жизнь. Тем же, кто не испытывает 
проблем с производительностью, лучше продолжить работать с исходной версией 
типа, потому что она имеет более совершенную объектную модель.



Download 6,27 Mb.

Do'stlaringiz bilan baham:
1   ...   391   392   393   394   395   396   397   398   ...   658




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish