[ jc denton @ 26.05.2002. 21:25 ] @
Jel bi neko znao da mi kaze kako da napravim instaler za programce koje sam napisao u VB-u 7.0 (. NET) :)
VS .NET imam na Win 2000, a programce bi da instaliram na Win 98.

pozdrav

[Ovu poruku je menjao Dragi Tata dana 13.06.2002 u 10:40 AM GMT]
[ Dragi Tata @ 26.05.2002. 21:40 ] @
Moraš da napraviš deployment project. Detalji su ovde:

http://msdn.microsoft.com/libr...screatedwithvisualbasicnet.asp

Ovu temu pomeram u VB. Originalno je postovana u C/C++ forumu
[ MAD-MAX @ 26.05.2002. 22:42 ] @
Mene interesuje koliko bi bila velika instalacija nekog programa radjenog u VS.NET-u (konkretno C# :))?
Odnosno kad bih hteo da ga (program) instaliram na Win 98 na kojem nema ama bas nista vezano za .NET.

Naravno da to zavisi i od samog programa ali recimo da je .exe na kompu gde je napravljen 1 MB.

Valjda sam bio jasan? :)
[ Dragi Tata @ 26.05.2002. 23:02 ] @
Mislim da je .NET runtime oko 20 Mb, i to treba uključiti u instalacioni program.
[ MAD-MAX @ 27.05.2002. 22:57 ] @
Thanks.

Nego jel su u ta 20mb uracunate da kazem sve kontrole odnosno ne moze (ili moze) da se desi da program ne radi jer fali neka kontrola kao sto mi se desavalo u VB 6 posto sam instalirao VBrun na nekom kompu?

A jel postoji nesto kao VBrun ili moram praviti instalaciju u kojoj ce biti i .NET runtime?
[ jc denton @ 27.05.2002. 23:10 ] @
Ima, i zove se Dotnetfx.exe (nalazi se na petom instalacionom cd-u VS .NET-a). Ako ne koristis Data komponente (DAC 2.6) ili GDI+ (za grafiku) ovo je dovoljno za 'normalne' programcice. Oprobano na win98, ali nemoj da uzmes ovo zdravo za gotovo posto sam tek uzeo da radim sa .NET-om.

Jos nesto.
Razlika u brzini izmedju VB 6.0 i VB 7.0 je oko 20 PUTA u korist VB-a 7.0 (.NET).
Napokon smo dobili 'pravi' kompajler :)

poz.
[ Dragi Tata @ 27.05.2002. 23:45 ] @
Auuu! 20 puta? Jesi li to sam merio ili si negde čuo? Po onome što sam ja čuo, (kompajlirani) VB programi su brži od .NET-a. Recimo, vidi ovu diskusiju:

http://www.codeproject.com/lounge.asp?msg=138624#xx138624xx

Doduše, ne pominju VB.NET nego C#, ali ne bi trebalo da ima razlike u brzini.

Ja sam vršio neka svoja merenja, i po njima je .NET brz (spor) negde kao i Java, ali izgleda da sam ja jedini koji je došao do takvih rezultata :)
[ jc denton @ 28.05.2002. 00:30 ] @
Evo, otprilike ovo sam probao na jednom i drugom :

vreme = Timer
For i = 1 To 10000000

a = i + 999999
Sqr (Abs(Sin(a) * Cos(a)))

a = i + 999999
Sqr (Abs(Sin(a) * Cos(a)))

Next

MsgBox Timer - vreme

U VB .NET-u je samo malo drugacije, doda se Math. ispred ovih mat. funkcija, a i morao sam da Sqr prepravim u sqrt ..

E, da, ne znam sta li je u .NET-u zamena za Timer ?

U VB6-ici zavrsi za oko 30 sek., a u VB .NET-u za manje od 2 sekunde (ovo zadnje je bilo mereno 'rucno').

Posto mi je VB6 na win98, a VB .NET na win2000, probao .NET-ov .exe i na win98 i rezultat je otprilike isti.

Ako imas neku ideju kako da jos ispitam brzinu, samo kazi.

poz.

[ jc denton @ 28.05.2002. 15:29 ] @
'Iskopao' sam sta je zamena Timer funkciju u VB-u 6.0, nije bas isto, ali moze da posluzi :
DateTime.Now.Ticks

za sekunde :
DateTime.Now.Ticks / 1E7

Evo timinga za onu petlju :
VB 6.0 SP5 (win98) ~ 26.57 sek.
VB 7.0 (win98) ~ 0.98 sek

Jedino mu treba mnogo dok pokrene .NET programce.

[ jc denton @ 28.05.2002. 18:15 ] @
E, sada evo jedne nelogicnosti, a mozda i nije.
U VB 6.0 SP5 ovaj kod se izvrsi za ~ 4.78 sekundi :

Dim niz(1000000) As Double
Dim i As Double
Dim a As Double
Dim b As Double
b = 1000000

vreme = Timer
For i = 1 To b - 1

niz(i) = Sqr(i * (Rnd() * 100))

Next

For i = 1 To b - 1

niz(i - 1) = Sqr(i * (Rnd() * 100))
niz(i) = Sqr(i * (Rnd() * 100))
niz(Rnd() * b) = Sqr(i * (Rnd() * 100))

Next

MsgBox Timer - vreme

a u VB 7.0 (.NET) za 8.62 sek.

O cemu se sad radi ?
[ Reljam @ 28.05.2002. 18:49 ] @
Mozda se radi o nekom DLL-u koji biva delay loadovan, ili vec tako nesto - probaj da u istom programu izvrtis taj loop par puta. Prvi rezultat odbaci, i izracunaj prosek ostalih loopova.
[ Dragi Tata @ 28.05.2002. 18:52 ] @
Ja i dalje mislim da bi VB6 trebalo da bude brži. Jesi li probao da startuješ kod na onom linku što sam ostavio gore?
[ jc denton @ 28.05.2002. 20:53 ] @
Reljam : I ja sam isto mislio, i probao sam da izvrsim vise puta onu petlju - opet isto.

Dragi Tata : Pa izgleda da je brzi u ovom drugom slucaju, ali u prvom nije. Neznam na koji si kod mislio, a posetio sam onu diskusiju i ne vidim nikakav kod ?
[ Dragi Tata @ 28.05.2002. 21:00 ] @
Nisi dobro gledao:

http://www.codeproject.com/lounge.asp?msg=138691#xx138691xx

Prvo ide primer za Javu, aonda za VB6. Probaj to, pa javi.
[ jc denton @ 28.05.2002. 22:22 ] @
U pravu si, nisam pregledao sve postove u onom thread-u.

Za onaj kod ovako stoje stvari :
VB6 ~ 14.56 sek.
VB7 ~ 17.52
VB7 ~ 14.94 (kad je ukljuceno 'remove integer overflow checks')

Znaci, ipak je brzi VB 6.0. Samo mi nije jasno odakle onolika razlika u prvom slucaju koji sam merio ?

[ Dragi Tata @ 29.05.2002. 01:46 ] @
Hmmm, evo šta bi tu moglo da bude. U prvom primeru si zvao kvadratni koren, ali nigde nisi iskoristio povratnu vrednost, pa je VB.NET kompajler verovatno bio dovoljno "pametan" da zanemari tu operaciju. To bi moglo da se proveri uz pomoć ILDASM-a (ako se tako zove onaj .NET dissasembler). U drugom primeru si sačuvao rezultat operacije u nizu, pa kompajler nije izvršio gorepomenutu optimizaciju.

Generalno gledano, VB6 bi trebalo da bude brži, jer proizvodi "native" kod, za razliku od .NET kompajlera koji pravi MSIL (nešto kao Java bytecode). Mada sam čuo neke teorije kako tako generisan kod može da bude i brži nego "native" (zahvaljujuću tehnici koja se zove Just in time compilation), do sada nisam video merenja koja bi potvrdila takve priče.

Po meni, glavna snaga .NET -a je ASP.NET koji je samo po imenu sličan sa starim ASP-om, i koji predstavlja revoluciju u pravljenju Web aplikacija. No, to je posebna tema...
[ jc denton @ 29.05.2002. 18:39 ] @
E, steta, ja se taman obradovao da je VB napokon dobio na brzini :)
[ Dragi Tata @ 29.05.2002. 20:50 ] @
Nažalost, upravo obrnuto. Usporili su ne samo VB, već i C++ (kad ga kompajliraš da radi u .NET okruženju). Preovlađujuća ideologija danas je da brzina nije bitna jer uvek možeš da dokupiš brži hardver i da je mnogo važnija brzina i lakoća razvoja. Takvu filozofiju sledi posebno Java, a i Microsoft-ova .NET inicijativa izgleda ide istim tokom.

Naravno, ja uopšte nisam oduševljen takvim stanjem stvari, ali j*** ga...
[ jc denton @ 13.06.2002. 23:40 ] @
Jel se secas onog dll-a o kome smo raspravljali, tj. kada si mi detaljno objasnio kako da se izborim sa pointerima u C-u ?

E, vidis, taj C kod je radio jedno 7-8 puta brze za neki image proccessing, nego VB6. Kako sam to tada probao n T-bird-u 900 MHz, i on je jedva zavrsio posao u 25 fps na najvisoj res., znaci za VB.NET mi treba neko cudo od jedno 3-4 GHz ?

Mozda je moje razmatranje isuvise linearno, ali mislim, tj. *ebi ga bash ...
[ Dragi Tata @ 13.06.2002. 23:54 ] @
Eh, svaki alat ima svoju primenu, a ne verujem ni da bi Gejts preporučio .NET za image processing. Tu ipak vlada stari, dobri C.

Mada, čujem neke glasine da Microsoft radi sa Intelom na proizvodnji procesora koji bi direktno radio sa MSIL kodom. Ne znam da li je to moguće izvesti ili je neka paljevina, ali ako jeste, to bi trebalo da potera .NET aplikacije brzinom svetlosti...
[ Reljam @ 14.06.2002. 02:03 ] @
Citat:
Dragi Tata:
Eh, svaki alat ima svoju primenu, a ne verujem ni da bi Gejts preporučio .NET za image processing. Tu ipak vlada stari, dobri C.

Mada, čujem neke glasine da Microsoft radi sa Intelom na proizvodnji procesora koji bi direktno radio sa MSIL kodom. Ne znam da li je to moguće izvesti ili je neka paljevina, ali ako jeste, to bi trebalo da potera .NET aplikacije brzinom svetlosti...

U to vrlo sumnjam, jer je MSIL kod u stvari prilicno high level, sto se da videti putem ILDASMa. Problem sa brzinom .NET jezici nemaju toliko zbog MSILa - cak i v1 kompajler radi prilicno dobar posao, v2 je brzi (ili se bar tako prica), vec zbog garbage collectiona, i zbog paradigme 'sve je ne-staticki objekat'. A to je vec malo teze ubrzati ;)
Medjutim, brzina nije losa (recimo oko 80% C++a), ali ono sto je ideja .NETa je da svaki deo programa moze da se pise u jeziku koji mu najbolje pasuje. Znaci pisi interfejs u C#u, a image processing u C++-u.

Dakle, sumnjam da cemo ikada videti MSIL procesor, za tim nema mnogo potrebe.

[Naravno, ovo je sve neformalno, i samo moje misljenje, i bla, bla, bla (daj Gojko ukini Sent From polje da ne moram da pisem disclaimere)]
[ Dragi Tata @ 14.06.2002. 16:57 ] @
Da, tako sam i mislio. Samo, ne znam odakle ti podaci da je brzina .NET-a 80% one od C++a. Ako pogledaš rezultate koje smo ostavili gore, .NET je sporiji i od VB6, a kamoli od C++a, i brzina mu je uproediva sa Javinom. Imaš li kakva merenja koja pokazuju drugačije?
[ Reljam @ 14.06.2002. 17:23 ] @
Nemam nista zvanicno. Imam samo testove koje sam ja radio: uzeo sam FFT kod, prebacio ga u C#i merio brzinu. Ono sto sam uradio i sto mislim da pravi bitnu razliku je to sto sam koristio unsafe pointere - to eliminise veliki deo overheada od GCa, i u stvari vise testira efikasnost ILa.
E sada, interoperabilnost se stvarno toliko jednostavno radi da nema razloga raditi FFT u unsafe C#-u - verovatno je lakse to raditi u C++-u i to povezati sa C#-om. U svakom slucaju, ono sto sam jos trebao da izmerim je performansa MC++-a - ali nikad nisam stigao to da uradim.
Siguran sam da odnos brzina C#-a i C++-a zavisi u velikoj meri od konkretne primene koje programer zeli da postigne. Ono sto sam ja izabrao je radilo sa tih 80% brzine, ali YMMV. Opet sa druge strane gomila intenzivnih operacija je podrzana u .NET frameworku i samim tim radi mnogo brze - dosta algoritama za kompresiju, hashing, enkripciju, sortiranje, itd. Za grafiku je tu Gdi+, koji stvarno resava 90% stvari oko image processinga.

Sve u svemu, zavisi od programera i konkretne aplikacije.
[ -zombie- @ 29.11.2002. 15:21 ] @
Citat:
Dragi Tata:
Mada, čujem neke glasine da Microsoft radi sa Intelom na proizvodnji procesora koji bi direktno radio sa MSIL kodom. Ne znam da li je to moguće izvesti ili je neka paljevina, ali ako jeste, to bi trebalo da potera .NET aplikacije brzinom svetlosti...


ne zvuci nemoguce. MSIL je istog nivoa slozenosti kao i java bytecode, a Java chip vec postoji.

jedino je pitanje koliki ce deo kolaca (trzista) da MS osvoji sa .Net i da li ce takvi cipovi zaziveti.

mada generalno mislim da je u takvim specijalizovanim cipovima buducnozt. pogledajte ovaj pc procesor. pre 10 god on je bio svastara koja je mogla da radi sve, ali veoma sporo. onda su se pojavili graficki 3d cipovi, usko specijalizovani. napravljen je java chip, a sad verovatno sledi i .net chip.

inace, dobar primer je i XML chip (ne znam, mada se ne zove bash tako). on ima hardversko parsiranje XML-a i XSLT transformacije, koje radi 20 puta brze nego pc proceor na istom taktu.

(nije bash svetlosna brzina, ali je prilicno brzo ;)