sfaturi aplicatie web vc++ 2008

Intrebari despre programarea cu VC++ incluzand mediul de dezvoltare, instalare, setari, debugger, compilator, linker si documentatie.
viorel2005
Membru
Membru
Posts: 208
Joined: 24 May 2008, 09:41

sfaturi aplicatie web vc++ 2008

Post by viorel2005 » 01 Nov 2008, 11:34

Salut!

Pentru o aplicatie pentru facut predictii via internet se foloseste ca baza de date SQL Server Enterprise 2008, server web IIS, si C# 2008 pentru interactiunea cu utilizatorul.
As dori sa stiu care e cea mai buna solutie pentru a implementa un algoritm de predictie in C++ astfel incat sa am cea mai buna performanta pe partea de web.
Mai precis cum as putea folosi codul nativ intr-o aplicatie web scrisa in C# sa am performante mai bune decat sa se investeasca in hardware etc.



User avatar
Marius Bancila
Fondator
Fondator
Posts: 2344
Joined: 11 Jul 2007, 11:45
Judet: Timiş
Location: Timisoara
Contact:

Re: sfaturi aplicatie web vc++ 2008

Post by Marius Bancila » 01 Nov 2008, 13:21

Well, daca codul care face predictii e in C++ si serviciul web e C#, ai nevoie de o aplicatie (a se citi DLL) mixed-mode care sa faca conexiunea intre cele 2 lumi.

Intrebarea mea e: ce fel de predictii faci, si chiar e nevoie de C++? Nu pot fi implementate in C#?
Marius Bancila
Fondator Codexpert, Microsoft MVP VC++
Site personal | Blog

Dragos Cojocari
Membru++
Membru++
Posts: 789
Joined: 11 Jul 2007, 14:11

Re: sfaturi aplicatie web vc++ 2008

Post by Dragos Cojocari » 01 Nov 2008, 17:12

Calitartea algoritmului ese mult mai importanta decat limbajul in care il scrii. Eu ti-as recomanda sa scrii algoritmul in C#. Daca merge prost acolo sigur va merge prost si in C++/C/Assembler.

Dark
Banned
Banned
Posts: 75
Joined: 21 Nov 2007, 19:29
Judet: Bucureşti

Re: sfaturi aplicatie web vc++ 2008

Post by Dark » 01 Nov 2008, 18:11

Da, sigur codul C# are aceeasi performanta ca C++/C/ASM. Tot ce conteaza pe lumea asta sint teoria complexitatii si studiile academice, implementarea reala nu are niciodata nimic de zis. In nici un caz nu exista tone de exemple in care doua implementari cu aceeasi complexitate asimptotica prezinta diferente imense de performanta deoarece unul a fost scris de un academician si altul de un programator din lumea reala. Quicksort e intotdeauna mai incet decit heapsort pentru ca worst-case e patratic. Un program compilat in MSIL nu are cum sa fie mai incet decit unul compilat in cod nativ. Ruby nu este mai incet decit ASM. Programele managed nu au nevoie in general de mai mult RAM pentru a rula decit alea native. Programele care au nevoie de eficienta sint scrise in C++ pentru ca aia care le fac sint prosti si incapatinati, ca ar merge la fel de bine si in Visual Basic. Toata lumea stie ca JIT are oportunitati de optimizare nebanuite si inaccesibile unui compilator de C++, ca doar asa a scris un bou de la marketing intr-o fituica. Codul C++ este obligatoriu mai putin lizibil decit echivalentul C#. Bine ati venit in secolul absoluturilor, unde poti programa cum vrei, ca merge.

Pardon de off-topic.

neagu_laurentiu
Membru++
Membru++
Posts: 919
Joined: 23 Jul 2007, 11:32

Re: sfaturi aplicatie web vc++ 2008

Post by neagu_laurentiu » 01 Nov 2008, 19:21

Dark wrote:Pardon de off-topic.
Continua, continua... poate or sa le intre ceva la cap celor nascuti cu C#/Java in brate !

LE: MS/SUN/etc. sunt firme ce urmaresc profitul (ca noi toti dealtfel). Profitul apare unde e multimea. Multimea doreste managed. Toata lumea e fericita.
Unix-like (marea majoritate) nu urmareste profitul. Intamplator C/C++ e rege pe sistemele lor ?

User avatar
Ovidiu Cucu
Fondator
Fondator
Posts: 3778
Joined: 11 Jul 2007, 16:10
Judet: Iaşi
Location: Iasi
Contact:

Re: sfaturi aplicatie web vc++ 2008

Post by Ovidiu Cucu » 01 Nov 2008, 19:40

:reallymad: :biggrin:

neagu_laurentiu
Membru++
Membru++
Posts: 919
Joined: 23 Jul 2007, 11:32

Re: sfaturi aplicatie web vc++ 2008

Post by neagu_laurentiu » 01 Nov 2008, 19:47

E weekend :yahoo:

User avatar
Silviu Ardelean
Senior
Senior
Posts: 1175
Joined: 12 Jul 2007, 09:22
Judet: Timiş
Location: Timisoara
Contact:

Re: sfaturi aplicatie web vc++ 2008

Post by Silviu Ardelean » 01 Nov 2008, 20:22

Viorel2005 se poate convinge daca chiar merita sa 'lipeasca" lumea managed cu ceea unmaged scriind algoritmul respectiv in ambele limbaje si realizand un mic benchmark (ce sa implice calculul timpului de executie) pentru ambele variante de algoritmi.
In alta ordine de idei, in marea majoritate a cazurilor, tind sa-i dau dreptate lui Dark si Dragos, privind rezutatul final al timpului de executiei a algoritmului in ambele limbaje.

viorel2005
Membru
Membru
Posts: 208
Joined: 24 May 2008, 09:41

Re: sfaturi aplicatie web vc++ 2008

Post by viorel2005 » 02 Nov 2008, 12:10

1.Cred ca cea mai buna solutie ar fi fost probabil atl server. Dar din pacate nu mai este sustinut de microsoft.Pentru predictie se foloseste o retea neurala.
Problema este apelul unui dll din lumea unmanaged in lumea managed de mai multe ori cand site-ul are un trafic mare.
2.Cea ce nu am inteles la compararea codului generat de VC++ 2008 si VC# 2008 este daca codul managed este optimizat pentru procesorul avut la dispozitie fata de codul nativ
care nu este optimizat decat daca scrii o parte din el in assembly?

User avatar
Ovidiu Cucu
Fondator
Fondator
Posts: 3778
Joined: 11 Jul 2007, 16:10
Judet: Iaşi
Location: Iasi
Contact:

Re: sfaturi aplicatie web vc++ 2008

Post by Ovidiu Cucu » 02 Nov 2008, 12:14

viorel2005 wrote: 2.[...] codul managed este optimizat pentru procesorul avut la dispozitie fata de codul nativ
care nu este optimizat decat daca scrii o parte din el in assembly?
Nu cred asa ceva. Ai vazut undeva scris?

neagu_laurentiu
Membru++
Membru++
Posts: 919
Joined: 23 Jul 2007, 11:32

Re: sfaturi aplicatie web vc++ 2008

Post by neagu_laurentiu » 02 Nov 2008, 12:20

viorel2005 wrote:nu mai este sustinut de microsoft
Atunci fa totul in C#, ca tot e sustinut ! Daca mergi dupa astfel de principii...
viorel2005 wrote:Problema este apelul unui dll din lumea unmanaged in lumea managed de mai multe ori cand site-ul are un trafic mare.
Nu stiu care sa fie problema...
viorel2005 wrote:daca codul managed este optimizat pentru procesorul avut la dispozitie fata de codul nativ care nu este optimizat
Teoretic, da... in practica insa am observat ca VC++ (cu optimizarile setate) genereaza un cod mult mai rapid decat cel obtinut de CLR...

neagu_laurentiu
Membru++
Membru++
Posts: 919
Joined: 23 Jul 2007, 11:32

Re: sfaturi aplicatie web vc++ 2008

Post by neagu_laurentiu » 02 Nov 2008, 12:30

Legat de calitatea codului, inainte de a intra in asm, iti propun un test banal atit in C# cat si C++:

Code: Select all

j=0;
for(i=0;i<=999999999;i++)
  j++;
In release, cu optimizarile la maximum atit C# cat si C++/CLI & .NET executa bucla de nebun si pierde timpul pe cand C++ unmanaged se prinde ca am fost natarau si rezolva "ecuatia" dintr-o singura linie ;)

Dragos Cojocari
Membru++
Membru++
Posts: 789
Joined: 11 Jul 2007, 14:11

Re: sfaturi aplicatie web vc++ 2008

Post by Dragos Cojocari » 14 Nov 2008, 15:31

Dark wrote:Tot ce conteaza pe lumea asta sint teoria complexitatii si studiile academice, implementarea reala nu are niciodata nimic de zis.
Cunosc atitudinea, o aveam si eu acuma 10 ani. :) Pe scurt: daca merge in 30 de minute in C# nu va reusi nimeni sa il faca sa mearga in 5 secunde in ASM. In plus un algoritm bun scirs in C# e mai rapid ca unu prost scris in C++ (e un exemplu pe chiar pe forumul asta).
neagu_laurentiu wrote:Unix-like (marea majoritate) nu urmareste profitul. Intamplator C/C++ e rege pe sistemele lor ?
Bullshit. Si Biserica Catolica urmareste profitul.
neagu_laurentiu wrote:In release, cu optimizarile la maximum atit C# cat si C++/CLI & .NET executa bucla de nebun si pierde timpul pe cand C++ unmanaged se prinde ca am fost natarau si rezolva "ecuatia" dintr-o singura linie ;)
Pai in astfel de cazuri nu schimbi limbajul ci programatorul.

Dark
Banned
Banned
Posts: 75
Joined: 21 Nov 2007, 19:29
Judet: Bucureşti

Re: sfaturi aplicatie web vc++ 2008

Post by Dark » 14 Nov 2008, 16:31

Dragos Cojocari wrote: Pe scurt: daca merge in 30 de minute in C# nu va reusi nimeni sa il faca sa mearga in 5 secunde in ASM.
Pe cit de scurt, pe atit de gresit. Exista nenumarate exemple de sporuri de viteza de 2000% (adica 20x) la trecerea de la C++ bun la ASM bun. De C# nici nu are rost sa discutam. Generalizarile de genul asta sint din start sortite cosului de gunoi al practicii. Evident, depinde de domeniul problemei, ca intr-adevar nu poti optimiza aplicatii care nu fac nimic cu CPU-ul schimbind modul in care programezi CPU-ul. In cazul de fata insa nu s-a specificat ce prezice algoritmul de predictie, asa ca vorbim "in general". In general programele ruleaza pe calculatoare, nu pe foaie, si d-aia mai conteaza si alte lucruri in afara de Big-O.
Dragos Cojocari wrote: In plus un algoritm bun scirs in C# e mai rapid ca unu prost scris in C++ (e un exemplu pe chiar pe forumul asta).
Exista vreun studiu conform caruia "algoritmii se implementeaza mai bine" in C# decit in C++ (ma vad nevoit sa pun ghilimele din cauza penibilitatii ideii)? Ca daca nu, nu vad sensul comparatiei. Codul prost e mai prost decit codul bun, codul bun e mai bun decit codul prost, decit sa-ti fie rau, mai bine sa-ti fie bine, iarna nu-i ca vara, hai sa dam cu tifla celor care au atitudini demodate de care noi ne-am dezbarat in urma zecilor de ani de experienta si intelepciune.

Dragos Cojocari
Membru++
Membru++
Posts: 789
Joined: 11 Jul 2007, 14:11

Re: sfaturi aplicatie web vc++ 2008

Post by Dragos Cojocari » 14 Nov 2008, 19:10

Dark wrote:
Dragos Cojocari wrote: Pe scurt: daca merge in 30 de minute in C# nu va reusi nimeni sa il faca sa mearga in 5 secunde in ASM.
Pe cit de scurt, pe atit de gresit. Exista nenumarate exemple de sporuri de viteza de 2000% (adica 20x) la trecerea de la C++ bun la ASM bun. De C# nici nu are rost sa discutam. Generalizarile de genul asta sint din start sortite cosului de gunoi al practicii. Evident, depinde de domeniul problemei, ca intr-adevar nu poti optimiza aplicatii care nu fac nimic cu CPU-ul schimbind modul in care programezi CPU-ul. In cazul de fata insa nu s-a specificat ce prezice algoritmul de predictie, asa ca vorbim "in general". In general programele ruleaza pe calculatoare, nu pe foaie, si d-aia mai conteaza si alte lucruri in afara de Big-O.
Vezi ca nu ai aplicat corect negatia la ce am zis eu. :) Ai negat doar premiza.
Dark wrote:Exista vreun studiu conform caruia "algoritmii se implementeaza mai bine" in C# decit in C++ (ma vad nevoit sa pun ghilimele din cauza penibilitatii ideii)? Ca daca nu, nu vad sensul comparatiei. Codul prost e mai prost decit codul bun, codul bun e mai bun decit codul prost, decit sa-ti fie rau, mai bine sa-ti fie bine, iarna nu-i ca vara, hai sa dam cu tifla celor care au atitudini demodate de care noi ne-am dezbarat in urma zecilor de ani de experienta si intelepciune.
Daca te-ai relaxa putin si ai citi cap coada ce am scris probabil ai intelege ce am spus acolo. Mai incerc odata: un algoritm prost ( citeste incet) nu se repara schimband limbajul de programare ci schimband algoritmul. Faptul ca limbajul e C++/C#/C/ASM nu are relevanta daca algoritmul prost. Iar un algoritm bun scris intr-un limbaj "lent" va avea rezultate mai bune decat un algoritm prost scris intr-un limbaj "rapid". In rest, numai de bine. :)

Post Reply