<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: Try-catch ja jõudlus</title>
	<atom:link href="http://www.dt.ee/blog/kood/net/2008/03/try-catch-ja-joudlus/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dt.ee/blog/kood/net/2008/03/try-catch-ja-joudlus/</link>
	<description>Tarkvara. Veeb. Mobiil. Multimeedia. Tehnoloogia</description>
	<pubDate>Mon, 21 May 2012 15:58:00 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6</generator>
		<item>
		<title>By: Gunnar</title>
		<link>http://www.dt.ee/blog/kood/net/2008/03/try-catch-ja-joudlus/#comment-5784</link>
		<dc:creator>Gunnar</dc:creator>
		<pubDate>Fri, 14 Mar 2008 09:37:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.dt.ee/blog/kood/net/2008/03/try-catch-ja-joudlus/#comment-5784</guid>
		<description>See oleneb päris üksjagu sellest ka, et kas on debug mode või ei. Debugi korral koostatakse exceptioni trace program debug database'i põhjal ja selles megadesse ulatuvas kuhjas ringi tuhlamine võib tõesti ajakulukas olla.</description>
		<content:encoded><![CDATA[<p>See oleneb päris üksjagu sellest ka, et kas on debug mode või ei. Debugi korral koostatakse exceptioni trace program debug database&#8217;i põhjal ja selles megadesse ulatuvas kuhjas ringi tuhlamine võib tõesti ajakulukas olla.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Janek</title>
		<link>http://www.dt.ee/blog/kood/net/2008/03/try-catch-ja-joudlus/#comment-5783</link>
		<dc:creator>Janek</dc:creator>
		<pubDate>Fri, 14 Mar 2008 09:30:24 +0000</pubDate>
		<guid isPermaLink="false">http://www.dt.ee/blog/kood/net/2008/03/try-catch-ja-joudlus/#comment-5783</guid>
		<description>Ise väldin try / catchi nagu katku ehk niivähe kui on vaja. Kõige depressiivsem näide on ilmselt  vanakoolimõistes skalaarsete tüüpide parsimine. int.Parse(), float.Parse() jms. Näiteks int.TryParse() kasutamisega ja try/catch blokkidest loobumisega õnnestus viimati vähendada ajakulu 3-4 sekundilt peaaegu momentaalseks. Põhiprobleem ei teki ju mitte try/catch olemasolu tõttu vaid siis kui see pagana Exception reaalselt ka visatakse.</description>
		<content:encoded><![CDATA[<p>Ise väldin try / catchi nagu katku ehk niivähe kui on vaja. Kõige depressiivsem näide on ilmselt  vanakoolimõistes skalaarsete tüüpide parsimine. int.Parse(), float.Parse() jms. Näiteks int.TryParse() kasutamisega ja try/catch blokkidest loobumisega õnnestus viimati vähendada ajakulu 3-4 sekundilt peaaegu momentaalseks. Põhiprobleem ei teki ju mitte try/catch olemasolu tõttu vaid siis kui see pagana Exception reaalselt ka visatakse.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Joosep-Georg</title>
		<link>http://www.dt.ee/blog/kood/net/2008/03/try-catch-ja-joudlus/#comment-5771</link>
		<dc:creator>Joosep-Georg</dc:creator>
		<pubDate>Wed, 12 Mar 2008 09:43:41 +0000</pubDate>
		<guid isPermaLink="false">http://www.dt.ee/blog/kood/net/2008/03/try-catch-ja-joudlus/#comment-5771</guid>
		<description>Väike keelekommentaar -- ajaliselt {peale} → pärast.</description>
		<content:encoded><![CDATA[<p>Väike keelekommentaar &#8212; ajaliselt {peale} → pärast.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Gunnar</title>
		<link>http://www.dt.ee/blog/kood/net/2008/03/try-catch-ja-joudlus/#comment-5770</link>
		<dc:creator>Gunnar</dc:creator>
		<pubDate>Wed, 12 Mar 2008 08:09:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.dt.ee/blog/kood/net/2008/03/try-catch-ja-joudlus/#comment-5770</guid>
		<description>Kontrollide tegemine vähendab try-catch plokkide mahtu oluliselt ja see on igati soovitatav lähenemine. Boxing/unboxing - C# 2.0 võimaldab generice abil luua ka value type'ide jaoks sobivad kollektsioonid ja listid. 

Mahukamate klasside korral on üks variant see, et lood ühe instantsi ja teed sellest edaspidi deep copy. Alati ei pruugi see muidugi võimalik olla, kuid omamoodi tagasihoidliku puhverdamise võimaluse pakub see lähenemine välja küll.

Erinevused stiilist 0.1 ja 3 sec on enamasti põhjustatud mingitest peenematest nüansidest, mida algul tähele ei pane. Enamasti saab neist siiski üle, kuid aega võib selliste asjade peale kuluda päris palju.</description>
		<content:encoded><![CDATA[<p>Kontrollide tegemine vähendab try-catch plokkide mahtu oluliselt ja see on igati soovitatav lähenemine. Boxing/unboxing - C# 2.0 võimaldab generice abil luua ka value type&#8217;ide jaoks sobivad kollektsioonid ja listid. </p>
<p>Mahukamate klasside korral on üks variant see, et lood ühe instantsi ja teed sellest edaspidi deep copy. Alati ei pruugi see muidugi võimalik olla, kuid omamoodi tagasihoidliku puhverdamise võimaluse pakub see lähenemine välja küll.</p>
<p>Erinevused stiilist 0.1 ja 3 sec on enamasti põhjustatud mingitest peenematest nüansidest, mida algul tähele ei pane. Enamasti saab neist siiski üle, kuid aega võib selliste asjade peale kuluda päris palju.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Sander</title>
		<link>http://www.dt.ee/blog/kood/net/2008/03/try-catch-ja-joudlus/#comment-5769</link>
		<dc:creator>Sander</dc:creator>
		<pubDate>Wed, 12 Mar 2008 07:52:47 +0000</pubDate>
		<guid isPermaLink="false">http://www.dt.ee/blog/kood/net/2008/03/try-catch-ja-joudlus/#comment-5769</guid>
		<description>Väga palju oleneb, mis seal try-catchi sees toimub. Kunagi olin juures, kui kaks teoreetikut vaidlesid - ühe arvates peab kõik alati olema try-catch sees, teine arvas et ainult äärmuslikel juhtudel tuleb veahaldust kasutada, .NET'is tuleks lihtsalt pidevalt NULL jms kontrolle teha.

Tüüpiliste teoreetikutena nad ei teinud katseid. Mina aga tegin. Ning selgus, et n-ö "tavatehete", so muutujate deklareerimine, stringitöötlus, aritmeetilised tehted, puhul oli veahalduse kulu praktiliselt olematu - ca 10s jooksvas tsüklis puhul oli veahaldusega versioon tuhandiksekundi jagu aeglasem.

Küll aga on oluliselt kulukam veahaldus "keerukate" asjade puhul - boxing/unboxing, suuremate klasside loomine jne. Sel puhul oli erinevus ca 20%.

Nõnda et ühest vastust ei ole. Alati taandub asi ka sellele - kas on kasutaja jaoks reaalset kiiruse vahet? Kas vastuse saamine võtab 0.01 või 0.05 sekundit - aga teisel korral ei saada koledat "Exception:..." teadet, siis veahaldus on kindlasti vajalik ja hea. Kui aga erinevus on 0.1 ja kolm sekundit...</description>
		<content:encoded><![CDATA[<p>Väga palju oleneb, mis seal try-catchi sees toimub. Kunagi olin juures, kui kaks teoreetikut vaidlesid - ühe arvates peab kõik alati olema try-catch sees, teine arvas et ainult äärmuslikel juhtudel tuleb veahaldust kasutada, .NET&#8217;is tuleks lihtsalt pidevalt NULL jms kontrolle teha.</p>
<p>Tüüpiliste teoreetikutena nad ei teinud katseid. Mina aga tegin. Ning selgus, et n-ö &#8220;tavatehete&#8221;, so muutujate deklareerimine, stringitöötlus, aritmeetilised tehted, puhul oli veahalduse kulu praktiliselt olematu - ca 10s jooksvas tsüklis puhul oli veahaldusega versioon tuhandiksekundi jagu aeglasem.</p>
<p>Küll aga on oluliselt kulukam veahaldus &#8220;keerukate&#8221; asjade puhul - boxing/unboxing, suuremate klasside loomine jne. Sel puhul oli erinevus ca 20%.</p>
<p>Nõnda et ühest vastust ei ole. Alati taandub asi ka sellele - kas on kasutaja jaoks reaalset kiiruse vahet? Kas vastuse saamine võtab 0.01 või 0.05 sekundit - aga teisel korral ei saada koledat &#8220;Exception:&#8230;&#8221; teadet, siis veahaldus on kindlasti vajalik ja hea. Kui aga erinevus on 0.1 ja kolm sekundit&#8230;</p>
]]></content:encoded>
	</item>
</channel>
</rss>

