{"id":187,"date":"2014-06-05T03:24:29","date_gmt":"2014-06-05T00:24:29","guid":{"rendered":"http:\/\/oguzkartal.net\/blog\/?p=187"},"modified":"2021-10-31T16:05:13","modified_gmt":"2021-10-31T13:05:13","slug":"comodo-dragon-tarayicisinin-gecikmeli-acilma-ve-kapanma-problemi","status":"publish","type":"post","link":"https:\/\/www.oguzkartal.net\/blog\/index.php\/2014\/06\/05\/comodo-dragon-tarayicisinin-gecikmeli-acilma-ve-kapanma-problemi\/","title":{"rendered":"Comodo Dragon taray\u0131c\u0131s\u0131n\u0131n gecikmeli a\u00e7\u0131lma ve kapanma problemi"},"content":{"rendered":"<p>Son yaz\u0131m\u0131n \u00fczerinden \u00e7ok uzunca bir zaman ge\u00e7mi\u015f hi\u00e7 fark\u0131nda bile de\u011filim. Bu yeni yaz\u0131mla bu uzun s\u00fcreyi bir nebze olsun k\u0131rmak niyetindeyim bakal\u0131m. Uykum da ka\u00e7m\u0131\u015fken bundan iyi f\u0131rsat olamaz. Yazaca\u011f\u0131m konu <a href=\"http:\/\/www.comodo.com\/home\/browsers-toolbars\/browser.php\" target=\"_blank\" rel=\"noopener\">comodo dragon<\/a> internet taray\u0131c\u0131s\u0131 hakk\u0131nda. bu taray\u0131c\u0131y\u0131 bir ka\u00e7 senedir kullan\u0131r\u0131m. Sa\u011flad\u0131\u011f\u0131 \u00f6zellikler ve h\u0131z bak\u0131m\u0131ndan \u015fimdiye kadar denedi\u011fim en iyi taray\u0131c\u0131 oldu\u011funu s\u00f6yleyebilirim. \u00c7ok uzun zamand\u0131r kulland\u0131\u011f\u0131mdan zamanla a\u00e7\u0131l\u0131\u015f ve kapan\u0131\u015f s\u00fcrelerinde ciddi anlamda gecikmele\u015f ya\u015famaya ba\u015flam\u0131\u015ft\u0131m.<\/p>\n<p>Bu gecikmeler zamanla \u00f6yle boyutlara geldi ki bir \u00e7\u00f6z\u00fcm aramak durumunda kald\u0131m. Bu gecikme 10 saniyeye varan gecikmeydi. G\u00fcncellemelerle iyile\u015ftirilir diye bekledim ancak bekledi\u011fim olmad\u0131. G\u00f6nl\u00fcm bir seferde silip alternatif aramaya elvermedi\u011finden soruna bir \u00e7\u00f6z\u00fcm bulabilir miyim diye taray\u0131c\u0131y\u0131 incelemeye ba\u015flad\u0131m. Nihayetinde olduk\u00e7a ilgin\u00e7 bir durumla da kar\u015f\u0131la\u015fm\u0131\u015f oldum zira sorunun kayna\u011f\u0131 bu ilgin\u00e7likten kaynaklan\u0131yordu g\u00f6r\u00fcn\u00fc\u015fe g\u00f6re. \u00d6ncelikle program\u0131 kapatma komutunu verdi\u011fim andan itibaren neler yapt\u0131\u011f\u0131na \u015f\u00f6yle bir bakmak ve ona g\u00f6re bir \u00e7\u00f6z\u00fcm aramak mant\u0131kl\u0131 olaca\u011f\u0131ndan ben de \u00f6yle yapt\u0131m. Tam olarak kapanma an\u0131ndan itibaren browser process&#8217;inin biti\u015f an\u0131na kadar yapt\u0131\u011f\u0131 i\u015flemleri ve zamanlamalar\u0131n\u0131 yakalay\u0131p k\u00fc\u00e7\u00fck bir g\u00f6zlem yapmak yeterli oldu.<\/p>\n<p><a href=\"http:\/\/oguzkartal.net\/blog\/wp-content\/uploads\/2014\/06\/1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-188\" alt=\"1\" src=\"http:\/\/oguzkartal.net\/blog\/wp-content\/uploads\/2014\/06\/1.png\" width=\"377\" height=\"357\" srcset=\"https:\/\/www.oguzkartal.net\/blog\/wp-content\/uploads\/2014\/06\/1.png 377w, https:\/\/www.oguzkartal.net\/blog\/wp-content\/uploads\/2014\/06\/1-300x284.png 300w\" sizes=\"auto, (max-width: 377px) 100vw, 377px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Yukar\u0131da da g\u00f6r\u00fcld\u00fc\u011f\u00fc \u00fczere bu kay\u0131tlardan yola \u00e7\u0131kt\u0131\u011f\u0131m\u0131zda benim taray\u0131c\u0131m\u0131n resimdeki ilk s\u00fctunda kay\u0131tlardan yola \u00e7\u0131karak yakla\u015f\u0131k 10 saniyelik bir gecikme ya\u015f\u0131yordu. Bu bir uygulama i\u00e7in \u00e7ok uzun bir s\u00fcre. Aradaki kay\u0131tlar sorunun kayna\u011f\u0131n\u0131 bulmada anahtar nokta. Browser bu 10 saniyelik dilimde yo\u011fun olarak bir dosya \u00fczerinde I\/O i\u015flemi yap\u0131yordu.<\/p>\n<p><a href=\"http:\/\/oguzkartal.net\/blog\/wp-content\/uploads\/2014\/06\/2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-189\" alt=\"2\" src=\"http:\/\/oguzkartal.net\/blog\/wp-content\/uploads\/2014\/06\/2.png\" width=\"956\" height=\"504\" srcset=\"https:\/\/www.oguzkartal.net\/blog\/wp-content\/uploads\/2014\/06\/2.png 956w, https:\/\/www.oguzkartal.net\/blog\/wp-content\/uploads\/2014\/06\/2-300x158.png 300w\" sizes=\"auto, (max-width: 956px) 100vw, 956px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Ba\u015flang\u0131\u00e7 ve \u00e7\u0131k\u0131\u015f zamanlamalar\u0131 aras\u0131ndan rastgele se\u00e7ilen 2 farkl\u0131 event kayd\u0131ndan g\u00f6r\u00fcld\u00fc\u011f\u00fc gibi bu yo\u011fun I\/O &#8216;nun ya\u015fand\u0131\u011f\u0131 dosya Favicons isimli taray\u0131c\u0131n\u0131n isminden anla\u015f\u0131ld\u0131\u011f\u0131 \u00fczere faviconlarla alakal\u0131 baz\u0131 verileri kendince tuttu\u011fu bir dosya.<\/p>\n<p>Peki bu kadar uzun s\u00fcre gecikme yaratacak kadar uzun bir I\/O olu\u015fturmas\u0131na sebep olan nokta neydi? Evvela dosyan\u0131n ne i\u00e7erdi\u011fine ne tipte bir dosya oldu\u011funu anlamak gerekti. Dosyan\u0131n bulundu\u011fu dizine gitti\u011fimde yakla\u015f\u0131k 6 mb uzunlu\u011funda bir dosya oldu\u011funu g\u00f6rd\u00fcm.<\/p>\n<p><a href=\"http:\/\/oguzkartal.net\/blog\/wp-content\/uploads\/2014\/06\/3.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-190\" alt=\"3\" src=\"http:\/\/oguzkartal.net\/blog\/wp-content\/uploads\/2014\/06\/3.png\" width=\"584\" height=\"156\" srcset=\"https:\/\/www.oguzkartal.net\/blog\/wp-content\/uploads\/2014\/06\/3.png 584w, https:\/\/www.oguzkartal.net\/blog\/wp-content\/uploads\/2014\/06\/3-300x80.png 300w\" sizes=\"auto, (max-width: 584px) 100vw, 584px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Hemen alt\u0131nda ise dosya ile ili\u015fkili bir journal dosyas\u0131 mevcuttu. Buradan da bu dosyan\u0131n bir journaling kullanan veritaban\u0131 dosyas\u0131 oldu\u011funu anlamak zor de\u011fil. Dosya header&#8217;\u0131na bakt\u0131\u011f\u0131m\u0131zda dosyan\u0131n esasen bir SQLite veritaban\u0131 dosyas\u0131 oldu\u011funu g\u00f6rd\u00fcm ve i\u00e7eri\u011finde neyi ne kadar tuttu\u011funu incelemek \u00fczere bir sqlite browser program\u0131 ile inceledim. ve olduk\u00e7a ilgin\u00e7 bir durumla kar\u015f\u0131la\u015ft\u0131m.<\/p>\n<p><a href=\"http:\/\/oguzkartal.net\/blog\/wp-content\/uploads\/2014\/06\/4.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-191\" alt=\"4\" src=\"http:\/\/oguzkartal.net\/blog\/wp-content\/uploads\/2014\/06\/4.png\" width=\"800\" height=\"544\" srcset=\"https:\/\/www.oguzkartal.net\/blog\/wp-content\/uploads\/2014\/06\/4.png 800w, https:\/\/www.oguzkartal.net\/blog\/wp-content\/uploads\/2014\/06\/4-300x204.png 300w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>\u0130lgin\u00e7 olan nokta \u015fuydu, evet taray\u0131c\u0131 favicon&#8217;lar\u0131 sqlte kullanarak sakl\u0131yordu olabilir gayet ancak saklama \u015fekli olduk\u00e7a ilgin\u00e7ti. Favicon&#8217;lar\u0131 domain\/subdomain tabanl\u0131 tutmak gibi daha pratik ve kolay yol varken bunu her url i\u00e7in ayr\u0131 ayr\u0131 bir kay\u0131t ekleyerek ilgili favicon resmini map ederek yap\u0131yordu. Kay\u0131tlara bakt\u0131\u011f\u0131mda bu da dolayl\u0131 olarak girdi\u011finiz her url&#8217;in saklanmas\u0131na sebep oluyor. Bundan aylarca \u00f6nce girdi\u011fim sitelerin adreslerini tek tek bulabildim bu sayede. Bu da olduk\u00e7a enteresand\u0131. Her url kayd\u0131 i\u00e7in yine kendi i\u00e7inde favicon_bitmaps tablosunda tuttu\u011fu favicon verilerini bir index ile e\u015fle\u015ftirip yaz\u0131yor.<\/p>\n<p><a href=\"http:\/\/oguzkartal.net\/blog\/wp-content\/uploads\/2014\/06\/5.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-192\" alt=\"5\" src=\"http:\/\/oguzkartal.net\/blog\/wp-content\/uploads\/2014\/06\/5.png\" width=\"409\" height=\"252\" srcset=\"https:\/\/www.oguzkartal.net\/blog\/wp-content\/uploads\/2014\/06\/5.png 409w, https:\/\/www.oguzkartal.net\/blog\/wp-content\/uploads\/2014\/06\/5-300x184.png 300w\" sizes=\"auto, (max-width: 409px) 100vw, 409px\" \/><\/a><\/p>\n<p>\u00f6rne\u011fin url&#8217;de 97 indexi stackoverflow&#8217;a ait veri i\u00e7eriyor.<\/p>\n<p>Kendi bilgisayar\u0131mda toplam<\/p>\n<p><a href=\"http:\/\/oguzkartal.net\/blog\/wp-content\/uploads\/2014\/06\/6.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-193\" alt=\"6\" src=\"http:\/\/oguzkartal.net\/blog\/wp-content\/uploads\/2014\/06\/6.png\" width=\"363\" height=\"279\" srcset=\"https:\/\/www.oguzkartal.net\/blog\/wp-content\/uploads\/2014\/06\/6.png 363w, https:\/\/www.oguzkartal.net\/blog\/wp-content\/uploads\/2014\/06\/6-300x230.png 300w\" sizes=\"auto, (max-width: 363px) 100vw, 363px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>30502 adet kay\u0131t tutmu\u015f. Ne yapt\u0131\u011f\u0131n\u0131 kesin olarak s\u00f6yleyemeyiz ancak kapan\u0131rken arkaplanda bu verilerle yo\u011fun bi\u00e7imde baz\u0131 i\u015flemler yapt\u0131\u011f\u0131 bu kadar ipucundan sonra s\u00f6ylenebilir.<\/p>\n<p>Sorunun buradan kaynakland\u0131\u011f\u0131n\u0131 g\u00f6rebildi\u011fime g\u00f6re bana bir de m\u00fcmk\u00fcn oldu\u011funca \u00e7abuk bir \u00e7\u00f6z\u00fcm gerekti. \u00c7\u00f6z\u00fcm de \u00e7ok zor de\u011fil. Madem bu kay\u0131tlar\u0131 sqlite \u00fczerinde tutuyor ben bu kay\u0131tlar\u0131 bo\u015falt\u0131rsam o kadar uzun s\u00fcre bu dosya ile me\u015fgul olmak durumunda kalmayacak. Hemen denemek i\u00e7in ilgili tablo verilerini bo\u015faltt\u0131m ve kapat\u0131p a\u00e7may\u0131 denedim. Sonu\u00e7; tam da bekledi\u011fim gibi<\/p>\n<p><a href=\"http:\/\/oguzkartal.net\/blog\/wp-content\/uploads\/2014\/06\/7.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-194\" alt=\"7\" src=\"http:\/\/oguzkartal.net\/blog\/wp-content\/uploads\/2014\/06\/7.png\" width=\"444\" height=\"516\" srcset=\"https:\/\/www.oguzkartal.net\/blog\/wp-content\/uploads\/2014\/06\/7.png 444w, https:\/\/www.oguzkartal.net\/blog\/wp-content\/uploads\/2014\/06\/7-258x300.png 258w\" sizes=\"auto, (max-width: 444px) 100vw, 444px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Toplam olarak kapatma komutundan, process&#8217;in yok edilmesine kadar ge\u00e7en s\u00fcre 2 saniye kadard\u0131. Kullan\u0131c\u0131ya yans\u0131yan k\u0131sm\u0131 (GUI&#8217;nin yok olmas\u0131) daha k\u0131sa s\u00fcrd\u00fc.<\/p>\n<p>Nihai olarak b\u00f6yle bir sorun ya\u015fayanlar i\u00e7in de bunu otomatikle\u015ftiren ve daha sonra ihtiya\u00e7 halinde benim de kullanabilece\u011fim bir script yazd\u0131m.<\/p>\n<p>Script i\u00e7in -&gt;<a href=\"http:\/\/oguzkartal.net\/binaries\/comodo_boost.zip\" target=\"_blank\" rel=\"noopener\"> http:\/\/oguzkartal.net\/binaries\/comodo_boost.zip<\/a> adresini kullanabilirsiniz.<\/p>\n<p>Scripti ve sqlite engine dosyas\u0131n\u0131 ayn\u0131 klas\u00f6re \u00e7\u0131kar\u0131n ve scripti \u00e7al\u0131\u015ft\u0131r\u0131n. A\u015fa\u011f\u0131daki gibi script \u00e7al\u0131\u015f\u0131p \u00f6nceden ne kadar kay\u0131t bulundu\u011funu size s\u00f6yleyip s\u0131rayla kay\u0131tlar\u0131 u\u00e7uracakt\u0131r. Son d\u00fczenlemede di\u011fer tablo kay\u0131t adetlerini de g\u00f6stermi\u015ftim bu screenshot biraz eski farkl\u0131l\u0131k olabilir. Scripti ister belli aral\u0131klarla manuel \u00e7al\u0131\u015ft\u0131rabilir yahut kendiniz i\u00e7in taray\u0131c\u0131 \u00e7al\u0131\u015ft\u0131r\u0131c\u0131 haz\u0131rlay\u0131p kapand\u0131ktan hemen sonra bu scripti devreye sokabilirsiniz. Vakit olursa belki ben yapar\u0131m bilinmez tabi.<\/p>\n<p><a href=\"http:\/\/oguzkartal.net\/blog\/wp-content\/uploads\/2014\/06\/8.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-195\" alt=\"8\" src=\"http:\/\/oguzkartal.net\/blog\/wp-content\/uploads\/2014\/06\/8.png\" width=\"677\" height=\"342\" srcset=\"https:\/\/www.oguzkartal.net\/blog\/wp-content\/uploads\/2014\/06\/8.png 677w, https:\/\/www.oguzkartal.net\/blog\/wp-content\/uploads\/2014\/06\/8-300x151.png 300w\" sizes=\"auto, (max-width: 677px) 100vw, 677px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>\u015eimdilik benden bu kadar. \u00a0;)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Son yaz\u0131m\u0131n \u00fczerinden \u00e7ok uzunca bir zaman ge\u00e7mi\u015f hi\u00e7 fark\u0131nda bile de\u011filim. Bu yeni yaz\u0131mla bu uzun s\u00fcreyi bir nebze olsun k\u0131rmak niyetindeyim bakal\u0131m. Uykum da ka\u00e7m\u0131\u015fken bundan iyi f\u0131rsat olamaz. Yazaca\u011f\u0131m konu comodo dragon internet taray\u0131c\u0131s\u0131 hakk\u0131nda. bu taray\u0131c\u0131y\u0131 bir ka\u00e7 senedir kullan\u0131r\u0131m. Sa\u011flad\u0131\u011f\u0131 \u00f6zellikler ve h\u0131z bak\u0131m\u0131ndan \u015fimdiye kadar denedi\u011fim en iyi taray\u0131c\u0131&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"twitterCardType":"","cardImageID":0,"cardImage":"","cardTitle":"","cardDesc":"","cardImageAlt":"","cardPlayer":"","cardPlayerWidth":0,"cardPlayerHeight":0,"cardPlayerStream":"","cardPlayerCodec":"","footnotes":""},"categories":[65,35,66],"tags":[60,68,69,15,67,70],"class_list":["post-187","post","type-post","status-publish","format-standard","hentry","category-applications","category-databases","category-issues","tag-browser","tag-comodo","tag-dragon","tag-problem","tag-tarayici","tag-yavas"],"_links":{"self":[{"href":"https:\/\/www.oguzkartal.net\/blog\/index.php\/wp-json\/wp\/v2\/posts\/187","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.oguzkartal.net\/blog\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.oguzkartal.net\/blog\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.oguzkartal.net\/blog\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.oguzkartal.net\/blog\/index.php\/wp-json\/wp\/v2\/comments?post=187"}],"version-history":[{"count":4,"href":"https:\/\/www.oguzkartal.net\/blog\/index.php\/wp-json\/wp\/v2\/posts\/187\/revisions"}],"predecessor-version":[{"id":921,"href":"https:\/\/www.oguzkartal.net\/blog\/index.php\/wp-json\/wp\/v2\/posts\/187\/revisions\/921"}],"wp:attachment":[{"href":"https:\/\/www.oguzkartal.net\/blog\/index.php\/wp-json\/wp\/v2\/media?parent=187"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.oguzkartal.net\/blog\/index.php\/wp-json\/wp\/v2\/categories?post=187"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.oguzkartal.net\/blog\/index.php\/wp-json\/wp\/v2\/tags?post=187"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}