{"id":747,"date":"2009-02-04T14:01:18","date_gmt":"2009-02-04T13:01:18","guid":{"rendered":"http:\/\/soci.hu\/blog\/?p=747"},"modified":"2009-02-04T14:01:18","modified_gmt":"2009-02-04T13:01:18","slug":"net-teljesitmenyhangolasi-tapasztalatok-3","status":"publish","type":"post","link":"https:\/\/soci.hu\/blog\/index.php\/2009\/02\/04\/net-teljesitmenyhangolasi-tapasztalatok-3\/","title":{"rendered":".NET teljes\u00edtm\u00e9nyhangol\u00e1si tapasztalatok 3."},"content":{"rendered":"<p>Ne emelj (raise) kiv\u00e9teleket (exception), mert az er\u0151forr\u00e1sig\u00e9nyes (lass\u00fa).<\/p>\n<p>A tov\u00e1bbiakban tart\u00f3zkodok a z\u00e1r\u00f3jelekt\u0151l. :)<\/p>\n<p>Kiv\u00e9tel, benne van a nev\u00e9ben, csak kiv\u00e9teles, nem v\u00e1rt helyzetekben kell haszn\u00e1lni. Ennek ellen\u00e9re vannak programoz\u00f3k, akik \u00fagy hiszik nincs k\u00falabb kommunik\u00e1ci\u00f3s forma a h\u00edv\u00f3 \u00e9s a h\u00edvott k\u00f6z\u00f6tt, mint kiv\u00e9telt h\u00e1nyni az arcz\u00e1ba. Cool biztos, \u00e9s piszok lass\u00fa is.<\/p>\n<p>Megint csak egy third-party gy\u00e1rt\u00f3 vez\u00e9rl\u0151it haszn\u00e1l\u00f3 appban l\u00e1ttam profilerrel, hogy az exception\u00f6k kezel\u00e9se igen sok id\u0151t elvitt a form fel\u00e9p\u00fcl\u00e9s\u00e9b\u0151l. Csak az nem volt vil\u00e1gos, mi\u00e9rt kell ezersz\u00e1mra exception\u00f6ket dobni a vez\u00e9rl\u0151nek? Az egyik konstruktora ugyanis dob\u00e1lta a NullReferenceException-\u00f6ket, amit azt\u00e1n elkaptak bel\u00fcl, de ett\u0151l m\u00e9g lass\u00fa lett a program.<br \/>\nM\u00e9g profiler se kell az ilyen sunyi kiv\u00e9teldob\u00e1l\u00f3kat elcs\u00edpni, mert az Output Window tele van az \u0151 exception-jeikkel, 1254 egy form open sor\u00e1n.<br \/>\nJavasoltam a szerz\u0151 c\u00e9gnek, jav\u00edts\u00e1k ki, mert nem norm\u00e1lis, hogy egy library ennyi exceptiont dobjon \u00e9s nyeljen el. Ez meglep\u0151en sok id\u0151t elvitt, \u00e9s nagyon sok \u00e1gon megjelent a profilerben a nyoma.<\/p>\n<p>A gy\u00e1rt\u00f3 \u00e1t\u00edrta a k\u00f3dj\u00e1t, \u00e9s l\u00e1ss csod\u00e1t, kb. 3x gyorsabban t\u00f6lt\u0151d\u00f6tt be a form. 10 mp helyett 3mp nagyon nagy k\u00fcl\u00f6nbs\u00e9g \u00e1m pszichol\u00f3giailag.<\/p>\n<p>Konkl\u00fazi\u00f3: \u00e9sszel azokkal az exception\u00f6kkel, csak arra haszn\u00e1ljuk \u0151ket, amire tervezt\u00e9k.<\/p>\n<p>Ehhez kapcsol\u00f3dik m\u00e9g, hogy n\u00e9ha egy rosszul meg\u00edrt API k\u00e9nyszer\u00edt minket felesleges exceptionkezel\u00e9sre. A .NET Fw. 1.x-ben m\u00e9g csak olyan pl. Int32.Parse(string) volt, ami exceptiont dobott, ha nem volt megfelel\u0151 a kapott sztring. K\u00e9pzelj el mondjuk egy csv olvas\u00f3 programot, ami milli\u00f3nyi sort olvas fel, egyes oszlopokat sz\u00e1mm\u00e1 alak\u00edtva. Ha mondjuk a sorok 10%-a hib\u00e1s, sz\u00e1zezer exceptiont kell elkapnunk. Meglesz az \u00e1ra.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ne emelj (raise) kiv\u00e9teleket (exception), mert az er\u0151forr\u00e1sig\u00e9nyes (lass\u00fa). A tov\u00e1bbiakban tart\u00f3zkodok a z\u00e1r\u00f3jelekt\u0151l. :) Kiv\u00e9tel, benne van a nev\u00e9ben, csak kiv\u00e9teles,&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[8,70,4],"tags":[],"class_list":["post-747","post","type-post","status-publish","format-standard","hentry","category-net","category-optimalizalas","category-szakmai-elet"],"_links":{"self":[{"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/posts\/747","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/comments?post=747"}],"version-history":[{"count":2,"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/posts\/747\/revisions"}],"predecessor-version":[{"id":752,"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/posts\/747\/revisions\/752"}],"wp:attachment":[{"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/media?parent=747"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/categories?post=747"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/soci.hu\/blog\/index.php\/wp-json\/wp\/v2\/tags?post=747"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}