Yazar |
|
offman
Kayseri
Kayıt: 20.01.2006 |
|
burakkanmaz yazdi | extreme yazdi | Bu ne ya. Ben nerden öğrenicem bütün .NET framework fonksyonlarını. Hem belki microsoft benim kelimemi amerikaya gönderiyodur |
Her zaman senden daha iyi kod yazan olduğunu düşünüp internette araştırınca çok daha iyi kodlar bulabiliyorsun. Hatta framework'un içinde hazır fonksiyonlar olduğunu görebiliyorsun. Ben hard-coder lığı sevmiyorum :)
offman yazdi |
Regex rx = new Regex("kalem");
string k = "kalemnkalem kalen kalem";
int a = rx.Matches(k).Count;
|
Gökhan'a teşekkür ederim :) Kodu daha kısa hale getirmiş fakat regex'i direk kullanabilmek için kütüphaneyi using ile belirtmek gerekiyor. Ben üst kısımla uğraşılmasın diye uzun uzun yazdım ;) |
Burak ben o soruya cevap için tıkladığımda tek bir cevap vardı orada ondan bunu yazayım dedim sonra bir ara kalmış post etmeden derken post ettim sonradan senin yazdıklarını gordum yani yazmıs olduğunu gorseydim yasmazdım. hani aynı kod nede olsa.
331. KSD
*.NET DEVELOPER
|
|
Yazar |
|
burakkanmaz
Gaziantep
Kayıt: 02.10.2006 |
|
offman yazdi | Burak ben o soruya cevap için tıkladığımda tek bir cevap vardı orada ondan bunu yazayım dedim sonra bir ara kalmış post etmeden derken post ettim sonradan senin yazdıklarını gordum yani yazmıs olduğunu gorseydim yasmazdım. hani aynı kod nede olsa. |
Fazla bilgi göz çıkarmaz :) Hem seninki kısa görünüyor o yönden daha iyi. Bir tane using ekleyince daha kullanışlı oluyor seninki.
|
|
Yazar |
|
piedro
Kayıt: 08.06.2008 |
|
hız-hız diye çıldıran varsa, unsafe tag ıyla pointer kullansın hızı test etsin,, bi anda; C# ta mı çalışıyor C++ mı şaşırır;)
.net in hazır fonksiyonlarını fazla övmeye gerek yok.. en beğendiğim extreme in; topic in, 2.postu oldu;) kontrol edebildiğiniz kodları yazmak, en doğru olanı... yoksa böyle basit bi event için regular expressions kullanıp; onları collection a atmak, sonrada performanstan bahsetmek, böyle parlak mühendislere yakışmıyor arkadaşlar;)
|
|
Yazar |
|
burakkanmaz
Gaziantep
Kayıt: 02.10.2006 |
|
piedro yazdi | hız-hız diye çıldıran varsa, unsafe tag ıyla pointer kullansın hızı test etsin,, bi anda; C# ta mı çalışıyor C++ mı şaşırır;)
.net in hazır fonksiyonlarını fazla övmeye gerek yok.. en beğendiğim extreme in; topic in, 2.postu oldu;) kontrol edebildiğiniz kodları yazmak, en doğru olanı... yoksa böyle basit bi event için regular expressions kullanıp; onları collection a atmak, sonrada performanstan bahsetmek, böyle parlak mühendislere yakışmıyor arkadaşlar;) |
C++'ı tabi ki geçemez C# fonksiyonları :)
Regex'in extreme'in yazdığı koddan daha hızlı olduğu konusunda ısrarcıyım.
Bende senin düşündüğünün tam tersini düşünüyorum. Parlak mühendisler oturup 100lerce satır yazmamalı. Başkalarının yazdığı 100 satırlık yere 2-3 satır kod koyarak aynı işi yaptırabilmeli. C#'ı geliştirenler oturup bu iş için en verimli kodu yazmışlar, tekrardan (hemde en verimli olduğunu bilmeden) uzun uzun kod yazmanın gereği yoktur diye düşünüyorum.
Hard coder olmak isteyen insanın zaten C# ile işi olmaz :)
|
|
Yazar |
|
piedro
Kayıt: 08.06.2008 |
|
mutfağa girdiğin zaman anlarsın...
örneğin: .net xml kodları mükemmel diye düşünürüz di mi,, peki hiç rss feed lerden(özellikle php sayfalardan) xml okumayı denediniz mi,, .net ne kadar hata tahammülsüz onu gördünüz mü... veya örneğin: webbrowser komponent iyle nesne oluşturup onu türetmeyi denediniz mi, dispose edebiliyor musunuz..
amacım polemik yaratmak değil, zaten o post umda da böyle ufak kodlar için demiştim, dikkat edersen..
Böyle ufak kodlar için yönetebileceğiniz kodları tercih ediniz..
Ve deneyiniz.. sonra rakamlarla iddaa ediniz
|
|
Yazar |
|
burakkanmaz
Gaziantep
Kayıt: 02.10.2006 |
|
piedro yazdi | mutfağa girdiğin zaman anlarsın...
örneğin: .net xml kodları mükemmel diye düşünürüz di mi,, peki hiç rss feed lerden(özellikle php sayfalardan) xml okumayı denediniz mi,, .net ne kadar hata tahammülsüz onu gördünüz mü... veya örneğin: webbrowser komponent iyle nesne oluşturup onu türetmeyi denediniz mi, dispose edebiliyor musunuz..
amacım polemik yaratmak değil, zaten o post umda da böyle ufak kodlar için demiştim, dikkat edersen..
Böyle ufak kodlar için yönetebileceğiniz kodları tercih ediniz..
Ve deneyiniz.. sonra rakamlarla iddaa ediniz |
Tabi ki, henüz işin içine girmediğimden tam anlayamıyorum. Bu konuda haklısın :)
Elbette büyük bir kodlama yapıyorsak bazı şeyleri kendi kontrolümüzde tutmamız gerekir, ama bu tarz işlemlerde for ile substring ile tek tek kıyaslama yapmaktansa hazır fonksiyonları kullanmak daha mantıklı geliyor bana.
Şu anda yeni format attım :) Akşama doğru büyük veri kümesi ile hız ölçümü yapacağım. Sonucu (haksız çıksam bile) sizlerle paylaşacağım ;)
Not : Polemikten bahsetmişsin ama ben öğrenmek için karşılıklı diyalog içerisine giriyorum. Yoksa asla tartışma gibi bir niyetim yok ;) Yanlış biliyorsak, doğrusunu öğrenmek için bilgiyi paylaşmak gerekir.
|
|
Yazar |
|
piedro
Kayıt: 08.06.2008 |
|
burakkanmaz yazdi | piedro yazdi | mutfağa girdiğin zaman anlarsın...
örneğin: .net xml kodları mükemmel diye düşünürüz di mi,, peki hiç rss feed lerden(özellikle php sayfalardan) xml okumayı denediniz mi,, .net ne kadar hata tahammülsüz onu gördünüz mü... veya örneğin: webbrowser komponent iyle nesne oluşturup onu türetmeyi denediniz mi, dispose edebiliyor musunuz..
amacım polemik yaratmak değil, zaten o post umda da böyle ufak kodlar için demiştim, dikkat edersen..
Böyle ufak kodlar için yönetebileceğiniz kodları tercih ediniz..
Ve deneyiniz.. sonra rakamlarla iddaa ediniz |
Tabi ki, henüz işin içine girmediğimden tam anlayamıyorum. Bu konuda haklısın :)
Elbette büyük bir kodlama yapıyorsak bazı şeyleri kendi kontrolümüzde tutmamız gerekir, ama bu tarz işlemlerde for ile substring ile tek tek kıyaslama yapmaktansa hazır fonksiyonları kullanmak daha mantıklı geliyor bana.
Şu anda yeni format attım :) Akşama doğru büyük veri kümesi ile hız ölçümü yapacağım. Sonucu (haksız çıksam bile) sizlerle paylaşacağım ;)
Not : Polemikten bahsetmişsin ama ben öğrenmek için karşılıklı diyalog içerisine giriyorum. Yoksa asla tartışma gibi bir niyetim yok ;) Yanlış biliyorsak, doğrusunu öğrenmek için bilgiyi paylaşmak gerekir. |
tamam paşam;) unsafe tag ıyla yazıp, pointer la cursor a alırsan, bi de pointer ı stackalloc la stack bölgesine atabilirsek, bende performans sonuçlarının rakamlarını çok merakla bekliyorum;) ama %90 eminim, stack daki pointer her zaman en hızlısıdır;)
|
|
Yazar |
|
burakkanmaz
Gaziantep
Kayıt: 02.10.2006 |
|
piedro yazdi |
tamam paşam;) unsafe tag ıyla yazıp, pointer la cursor a alırsan, bi de pointer ı stackalloc la stack bölgesine atabilirsek, bende performans sonuçlarının rakamlarını çok merakla bekliyorum;) ama %90 eminim, stack daki pointer her zaman en hızlısıdır;) |
Yok ben pointera birşey demiyorum. unsafe ile 10-20 kat bile hızlı yapabiliriz
Ben extreme'in fonksiyonu ile regex'i ölçücem.
|
|
Yazar |
|
piedro
Kayıt: 08.06.2008 |
|
burakkanmaz yazdi | piedro yazdi |
tamam paşam;) unsafe tag ıyla yazıp, pointer la cursor a alırsan, bi de pointer ı stackalloc la stack bölgesine atabilirsek, bende performans sonuçlarının rakamlarını çok merakla bekliyorum;) ama %90 eminim, stack daki pointer her zaman en hızlısıdır;) |
Yok ben pointera birşey demiyorum. unsafe ile 10-20 kat bile hızlı yapabiliriz
Ben extreme'in fonksiyonu ile regex'i ölçücem. |
regex in kodunu yönetilebilir olması açısından beğendim,, yoksa hız için benim de bir fikrim yok.. test edersen büyük bi iştahla okur, hafızama yazarım;) reel de de ona göre kullanırız Burak çım;)
(Bu arada; benim de kardeşim bu bölümde okuyor, ordan haberim var sitenizden, o şekilde takip ediyorum)
|
|
Yazar |
|
neurorebel
Kayıt: 15.08.2007 |
|
Bildiğiniz gibi seçtiğiniz algoritma kötüyse unsafe pointer falan kurtarmaz :) .NET, Perl falan gibi araçların RegEx implementasyonlarının problemi bu :) PATRICIA Trees diye aradığınız zaman çok güzel bir veri yapısı öğreneceksiniz :) (Binary Radix Tree olarak da geçiyor)
Do weird and difficult things.
|
|
Yazar |
|
burakkanmaz
Gaziantep
Kayıt: 02.10.2006 |
|
neurorebel yazdi
Geçen seneki puzzle projesinde ben sözlükteki kelimeleri böyle indexlemeye çalışıyordum. Fakat takılıyordum hep. Çünkü ağaç yapısını bilmeden kendim uydurmaya çalışıyordum. Patricia Tree'yi keşfetmeme az kalmıştı yani :D Ama dönem bitti işte o zamanda. Bilseydim o zaman bu ağaç yapısını, en hızlı kodu yazmış olcaktım. Ah ah :)
|
|
Yazar |
|
burakkanmaz
Gaziantep
Kayıt: 02.10.2006 |
|
Ve test sonuçları...
////////////////////////////////////////////////////////////////////////////////////////////////////////////
Ölçümler için http://download.burakkanmaz.net/PerformanceTest.rar linkindeki kodları kullandım.
Ölçümü normal büyüklükte bir veri ile gerçekleştirdim. Bu verinin istatistikleri ;
Ölçüm 1 :
Kod :
static int kacTaneVar(string buyukString,string kucukString){
int bUzunluk = buyukString.Length;
int kUzunluk = kucukString.Length;
int kacTane = 0;
for (int sayac = 0; sayac <= bUzunluk - kUzunluk; sayac++ )
{
if (buyukString.Substring(sayac, kUzunluk) == kucukString)
kacTane++;
}
return kacTane;
}
Ortalama hesap süresi : 00:00:00.0030346 (Yani 0.0030346 saniye)
Testlerin sonuç resmi :
Ölçüm 2 :
Kod :
System.Text.RegularExpressions.MatchCollection wordColl = System.Text.RegularExpressions.Regex.Matches(cumle,kelime);
MessageBox.Show(wordColl.Count.ToString());
Ortalama hesap süresi : 00:00:00.0002817 (Yani 0.0002817 saniye)
Testlerin sonuç resmi :
Sonuç :
"Ölçüm 2", "Ölçüm 1" e göre 10,7724 kat daha hızlıdır.
////////////////////////////////////////////////////////////////////////////////////////////////////////////
Bu teste pointer olan versiyonu koyarsak eminim Ölçüm 2'yi katlar geçer
|
|
Yazar |
|
safter
Kayıt: 18.04.2006 |
|
girilen stringin web site olup olmadıgını Regular Expression kullanrak denetleye bilirsin ben bunu java scriptte kullanıyorum ve bir actiona baglıyorum genelde olay c# ta nasıldır nasıl işler net bi bilgim benim kullandıgım mail controleri yazayım ilgili bir web site adreside bırakacagım eger kendin yazamazsan kodu yardımcı olamaya çalışırım tekrar...
function checkEmail(form) {
if (/^w+([.-]?w+)*@w+([.-]?w+)*(.w{2,3})+$/.test(form.mail.value))
return true;
alert("Geçersiz email adresi")
document.form.mail.focus;
return false;
}
http://www.mydesign.gen.tr/makale/475.html
yukarıda if kontrolu içinde gördügün her sembol başka bir kontrol aslında makalede uzun uzun anlatıyor oradan kendi fonksiyonunu istedigin gibi yazarsın(com,net,de,fr vs. gibi uzantılarıda istedigin gibi belirletebilirsin)
q
|
|
Yazar |
|
extreme
Kahramanmaras
admin
Kayıt: 24.10.2006 |
|
burakkanmaz yazdi |
"Ölçüm 2", "Ölçüm 1" e göre 10,7724 kat daha hızlıdır.
////////////////////////////////////////////////////////////////////////////////////////////////////////////
Bu teste pointer olan versiyonu koyarsak eminim Ölçüm 2'yi katlar geçer |
Assembly ile yazarım görürsün kimmiş hızlı
The Man Who Loved Algorithm&Ubuntu.
www.burakamasyali.com
|
|
|
|
-
Del.icio.us
-
Digg
-
Facebook
-
Furl
-
Google
-
Blink
-
Simpy
-
Spurl
-
Y! MyWeb
|
|
| | | | | | | | | | |