Pagini: [1] 2   În jos
  Imprimă  
Ajutor Subiect: Linux Vs. Windows - Timp de executie  (Citit de 13500 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
asoare_13
Vizitator
« : Decembrie 02, 2004, 18:51:38 »

Am si eu o intrebare simpla, la care nu vreau drept raspuns simple pareri...
As vrea sa stiu si eu exact care este diferenta dintre timpul de executie al programelor in Pascal rulate in Windows si timpul de executie al celor rulate in Linux  Question
Dar as vrea un raspuns cu exactitate, daca se poate  Tongue
Memorat
thecata
Strain


Karma: 15
Deconectat Deconectat

Mesaje: 9



Vezi Profilul
« Răspunde #1 : Februarie 26, 2005, 11:31:08 »

Diferenta dintre timpii astia de executie este de cele mai multe ori FOARTE mare, din cate bine ai observat pana acuma.  :lol:
Diferentele sunt din cauza urmatoare: dupa cum probabil stii, Windows este un sistem de operare pe 32 de biti (astea sunt detalii legate de arhitectura procesorului) (WinXP pe 64 de biti va aparea in curand). La fel si Linux (my personal favorite). Diferentele apar din cauza ca sub Windows, problemele se evalueaza folosind Borland Pascal/C++ care sunt programe de DOS, adica pe 16 biti. Simplul fapt ca Windows trebuie sa emuleze modul de lucru sub 16 biti reduce simtitor viteza de rulare. Si inca un mic detaliu: compilatoarele astea de al Borland sunt invechite; cele mai noi au mici optimizari si genereaza executabile (putin) optimizate.
Linux nu are mod de lucru pe 16 biti. Compilatoarele folosite fpc (freepascal)/ gcc sau g++(pentru C) sunt direct pe 32 de biti, deci vor genera executabile care vor rula fara a intampina dificultati de genul emularii modului de lucru.
Cat despre optimizarile facute la compilare...nu stiu diferentele. Eventual ai putea lua un program, sa-l rulezi in Borland Pascal/C++ si dupa aceea sa il compilezi si cu alt compilator (FreePascal / GCC care au variante si pentru Windows). Daca stai sa compari timpul de executie al unui program compilat cu freepascal sub Windows, respectiv sub Linux (deci vorbim de aceelasi program cu acelasi compilator, dar sub sisteme de operare diferite) banuiesc ca nu se vor simti diferente atat de mari (eventual sub Linux vor rula, din nou  Very Happy , putin mai rapid, dar nu chiar asa de mult).

Compilatoare pentru Windows (preluate de sub Linux)
FreePascal: www.freepascal.org / www.sourceforge.net (dai un search acolo)
GCC: aici nu stiu exact ce si unde, dar cauta cu google RHIDE, DJGPP sau pur si simplu GCC (e facut de FreeSoftware Foundation pentru proiectul GNU)
Memorat
druid
Strain
*

Karma: 1
Deconectat Deconectat

Mesaje: 27



Vezi Profilul
« Răspunde #2 : Februarie 26, 2005, 16:40:58 »

Eu as recomanda MinGW - Minimalist GNU for Windows http://www.mingw.org. E o colectie de util-uri traditionale de Unix pentru windows si contine si compilatorul gcc/g++ pe langa multe altele.

Daca iti pui in PATH directorul C:\MinGW\bin (sau unde l-ai instalat) e foarte usor sa compilezi din cmd prompt un progam si poti folosi editorul tau favorit pentru scrierea surselor (gcc bla.c / g++ bla.cpp si apoi ca sa rulezi scrii direct: a - fisierul generat daca nu specifici -o bla o sa fie a.exe ).
Memorat
rgrig
De-al casei
***

Karma: 46
Deconectat Deconectat

Mesaje: 144



Vezi Profilul WWW
« Răspunde #3 : Februarie 26, 2005, 19:28:38 »

Citat din mesajul lui: TheCata
Simplul fapt ca Windows trebuie sa emuleze modul de lucru sub 16 biti reduce simtitor viteza de rulare.


AFAIK procesorul emuleaza modul de lucru "neprotejat", nu sistemul de operare.
Memorat
svalentin
Nu mai tace
*****

Karma: 88
Deconectat Deconectat

Mesaje: 704



Vezi Profilul
« Răspunde #4 : Februarie 26, 2005, 19:47:55 »

Pentru GCC:
http://www.delorie.com/djgpp/zip-picker.html

zip packerul pentru DJGPP; iti alegi ce vrei de la compilator si iti spune ce .zip-uri sa iti "instalezi".
Instalarea e simpla: le dezarhivezi in direcotrul programului (ex: c:\DJGPP); singurul lucru mai <complicat> e sa setezi in enviromental variable (in winXP, 2k) sau in autoexec.bat (win98, 95, dos..) la variabila path si directorul compilatorului\bin si sa mai pui o variabila djgpp unda sa spui calea unde gaseste djgpp.env.
(mai gasesti explicatia si pe site)
Memorat
greco
Nu mai tace
*****

Karma: 144
Deconectat Deconectat

Mesaje: 434



Vezi Profilul
« Răspunde #5 : Februarie 26, 2005, 23:07:39 »

DJGPP e aiurea rau... tre sa faci proiect nou ca sa scrii o sursa si alte tampenii din astea.. mie imi place Dev C++ trecand peste faptul ca periodic imi restarteaza pc-ul.

* Imi place in putinul timp pe care il petrec in Windoze.  :lol:
Memorat

Jump in the cockpit and start up the engines
Remove all the wheelblocks there's no time to waste
Gathering speed as we head down the runway
Gotta get airborne before it's too late.
fbkk
Client obisnuit
**

Karma: -13
Deconectat Deconectat

Mesaje: 72



Vezi Profilul
« Răspunde #6 : Februarie 26, 2005, 23:52:55 »

PPl :
1. Linux vs Windows :
Pe WINDOWS :
dak ati stii un pic assembly ,ati shtii ca in Win exista 2 tipuri d
executabile (fara scripturi (.bat)) shi anume .exe shi .com (probabil shtiati asta deja) ,dar ceea ce probabil nu shtiti este ca .com s-ar putea traduce ca
(NU d la asta vine) Copy Of Memory ,anume : un fisier .com tine EXACT instructiunile p procesor ce se executa pe acesta.(d aceea toate windows-urile sunt "win.COM")
Fisierele .EXE sunt de fapt nishte map-uri pentru shell(a se citi kernel)(da shi windows-ul are unul) de fapt ele contin instructiunile pentru procesor,dar shi resursele executabilului (iconite, bitmapuri,etc) ,antet (destul d mare ) despre  model d mem, resurse, compozitie ,etc => inainte ca un fisier .EXE sa fie executat el trebuie prelucrat d win.com (care-ii incarca resursele ,aloca mem, seteaza prioritati shi alte vrajeli ) , mai ceva ca un script => ceva latente d procesare (mai ales la programele c folosesc resurse complexe d mem),acesta este un motiv , mai sunt shi altele(nu am nici timp nici chef sa le prezint pe toate).

Pe Linux:
programele Linux contin un mic antet (care spune ca sunt binare executabile (MIME -type -ul)) shi cam atat, in rest sunt ceva gen .COM
Kernelu le incarca direct in memorie(liniar) shi le acorda un fir d executie (isi fac ele mai multe dak au nevoie).

presupun ca un fisier .COM ar fi la fel d rapid (sau aproape)p windows ca shi p linux, dar chiar compilate cu acelasi fpc , executabilele sunt mai "incete" p Win  decat p Linux.

2.Ca si compilator GNU C p Win, eu folosesc MinGW cu Dev-CPP care pare a fi un compilator puternic(multe firme (mici si mijlocii) isi compileaza programele cu el) ,NU mi-a restartat niciodata compu' (personal va recomand sa folositi cele mai noi compilatoare (au mai putine BUG-uri , de obicei)) shi e 100% compatibil cu C-ul d p Linux ,mai putin <conio.h> care nu shtiu sa existe p Linux.

Sper ca ati inteles ca ideea e ca Linux rulz ,shi in general tot ce e open-source e mai bun decat porcariile comerciale.

Sper ca nu v-am plictisit !!!
Memorat

No one should have to code the same thing twice !
wickedman
Echipa infoarena
Nu mai tace
*****

Karma: 227
Deconectat Deconectat

Mesaje: 670



Vezi Profilul WWW
« Răspunde #7 : Februarie 27, 2005, 01:58:56 »

Citat din mesajul lui: fbkk

Sper ca nu v-am plictisit !!!

ba da  Very Happy

oricat de lipsite de header-e si alte porcarii or fi binarele de linux, oricum discutam de o diferenta de timp constanta. cui ii pasa ca mai asteapta 1e-4 secunde la inceput cand lanseaza un exe?
Memorat
rgrig
De-al casei
***

Karma: 46
Deconectat Deconectat

Mesaje: 144



Vezi Profilul WWW
« Răspunde #8 : Februarie 27, 2005, 09:07:03 »

Citat din mesajul lui: wickedman
cui ii pasa ca mai asteapta 1e-4 secunde la inceput cand lanseaza un exe?


In orice caz, e o dovada clara ca open-source e mai bun decat programele comerciale Smile

Sa nu ramana cineva cu impresia ca formatul executabilelor pe Linux e un fel de COM, cam asta e definita lui ELF (cel mai raspandit ABI): http://www.caldera.com/developers/gabi/latest/contents.html
Memorat
asoare_13
Vizitator
« Răspunde #9 : Februarie 27, 2005, 09:43:43 »

Am cam inteles ideea...multumesc pentru clarificare!  Smile
Si eu fac parte din " I love LINUX" team, dar io nu prea stiu sa lucrez sub linux si in plus ... Windows e cel mai raspandit in toata lumea si toate softurile care se fac ( cele mai bune ) se fac pt windows.
Asa ca, in afar de programare...sau chestii marunte, nu stiu ce s-ar mai putea face in linux :p
Memorat
ParrAzitU
Client obisnuit
**

Karma: 0
Deconectat Deconectat

Mesaje: 73



Vezi Profilul
« Răspunde #10 : Februarie 27, 2005, 13:36:34 »

puh, pai orice.. Spre exemplu grafica.. La noi in  oras de ex la liceul de arte fac grafica cu Gimp pt ca e free si nu trebuie licenta ca si la alea de sub windows unde costa o gramada de dolari.. Deci la noi in romania unde nimeni nu vrea licenta Linux e o solutie !
Memorat

I'll be smiling as I decompose - the reaper awaits us all.
LordAnta
Strain
*

Karma: 2
Deconectat Deconectat

Mesaje: 43



Vezi Profilul
« Răspunde #11 : Februarie 27, 2005, 13:41:22 »

Citat
Asa ca, in afar de programare...sau chestii marunte, nu stiu ce s-ar mai putea face in linux :p

daca tu consideri administrarea unui server pe baza de linux un lucru marunt sau late chesti care tin de retele si servere care se fac de 1000 ori mai bine decat pe windows atunci esti nebun!!!!!!!!
Memorat

Lord Anta, over and out!!!
rgrig
De-al casei
***

Karma: 46
Deconectat Deconectat

Mesaje: 144



Vezi Profilul WWW
« Răspunde #12 : Februarie 27, 2005, 14:53:12 »

Citat din mesajul lui: asoare_13
Asa ca, in afar de programare...sau chestii marunte, nu stiu ce s-ar mai putea face in linux :p


Cam orice. Uite un exemplu de aplicatie pe care probabil o folosesti zilnic: google. Oricum, eu zic ca e bine sa le folosesti pe ambele o perioada si apoi sa te hotarasti tu care iti place. Eu am folosit numai windows vreo 10 ani si abia acum vreo 2 ani am incercat linux; acum imi pare rau ca am pierdut atata timp: linux mi se potriveste _mult_ mai bine.
Memorat
DeadStar
Client obisnuit
**

Karma: 2
Deconectat Deconectat

Mesaje: 59



Vezi Profilul
« Răspunde #13 : Februarie 27, 2005, 15:56:22 »

LordAnta.. trebuie doar sa ai un pic de balls la inceput si dupaia totul este super... Filme,muzica..tot merg.. m-am jucat si GTA..
 Win   Not talking  (sucks)
Memorat

LordAnta
Strain
*

Karma: 2
Deconectat Deconectat

Mesaje: 43



Vezi Profilul
« Răspunde #14 : Februarie 27, 2005, 16:08:37 »

deatStart ai dreptate!!! Linux-ul ii tare!!! De cand am pus mana ptr prima data pe un Red Hat 7.0, nu mi-am mai luat mana de pe linux!!! Sub linux am pornit pana si mIrc-ul, chiar am lucrat si in FoxPro ptr Ms-Dos, Borland Pasacal 7.0,Borland C++ 3.1!!! O data ce te apuci de Linux mai greu te lasi de el  Twisted Evil !!! Linux Rulz!!!! Dancing
Memorat

Lord Anta, over and out!!!
fbkk
Client obisnuit
**

Karma: -13
Deconectat Deconectat

Mesaje: 72



Vezi Profilul
« Răspunde #15 : Februarie 27, 2005, 17:50:42 »

Citat din mesajul lui: wickedman
oricat de lipsite de header-e si alte porcarii or fi binarele de linux, oricum discutam de o diferenta de timp constanta. cui ii pasa ca mai asteapta 1e-4 secunde la inceput cand lanseaza un exe?


NU e timp constant ! Si NU e numai la pornire, intrgul sistem d alocare a mem p windows mi se pare cam dubios.!?!

oricum MIE IMI PASA ( 1e-4sec/prog =100e-4sec/zi=36000e-4sec/an = 10e-4 ore/an !!!) Very Happy Very Happy Wink

Shi voi care ati rulat "orice" p Linux : nu sunt de acord ca e o solutie sa rulezi un program cu Wine (mai ales un joc) ,nu ca nu ar merge la fel d bine (n-am incercat) ca p Win dar e aiurea sa foloseshti un emulator doar d dragu sa-l folosesti p Linux.
Pentru ca (mai ales in ultimul timp) multe firme d soft au si distributii d Linux, (e.g.:Borland) shi exista echivalente pentru majoritatea softului Win pentru Linux.Majoritatea fiind mai bune (vezi BP 7.0 ,freepascal ).

P.S.: Pentru jocuri(Win) mi se pare aiurea sa foloseshti Linux.(Iti instalezi un Win shi te joci ! )
Memorat

No one should have to code the same thing twice !
rgrig
De-al casei
***

Karma: 46
Deconectat Deconectat

Mesaje: 144



Vezi Profilul WWW
« Răspunde #16 : Februarie 27, 2005, 19:51:35 »

Citat din mesajul lui: fbkk
NU e timp constant ! Si NU e numai la pornire, intrgul sistem d alocare a mem p windows mi se pare cam dubios.!?!


Unde ai gasit tu o descriere a sistemului de alocare a memoriei pe Windows? Din cate stiu eu codul este prorietary si NU e public. Si ce legatura are formatul executabilelor cu alocarea memoriei? Cat despre probleme, unix nu sta tocmai pe roze. Probabil ai auzit de OOM care se datoreaza "super-optimismului" lui malloc (i.e. promite programului memorie pe care nu o are). Asta e oarecum intentionat, pentru eficienta; dar sunt si alte probleme, vezi de exemplu http://citeseer.ist.psu.edu/440671.html
Memorat
cyron
Strain
*

Karma: 2
Deconectat Deconectat

Mesaje: 43



Vezi Profilul
« Răspunde #17 : Martie 02, 2005, 22:25:46 »

[editat de moderator]
Memorat
mindphobia
Vizitator
« Răspunde #18 : Martie 07, 2005, 13:47:25 »

Citat din mesajul lui: fbkk
PPl :
Fisierele .EXE sunt de fapt nishte map-uri pentru shell(a se citi kernel)(da shi windows-ul are unul) de fapt ele contin instructiunile pentru procesor,dar shi resursele executabilului (iconite, bitmapuri,etc) ,antet (destul d mare ) despre  model d mem, resurse, compozitie ,etc => inainte ca un fisier .EXE sa fie executat el trebuie prelucrat d win.com (care-ii incarca resursele ,aloca mem, seteaza prioritati shi alte vrajeli ) , mai ceva ca un script => ceva latente d procesare (mai ales la programele c folosesc resurse complexe d mem),acesta este un motiv , mai sunt shi altele(nu am nici timp nici chef sa le prezint pe toate).


La ONI se evalueaza pe Windows 9x? Very Happy
Citat

Sper ca ati inteles ca ideea e ca Linux rulz ,shi in general tot ce e open-source e mai bun decat porcariile comerciale.


Bullshit. Generalizare pripita.

Citat
Sper ca nu v-am plictisit !!!

Oh.. da! Pe mine cel putin.
Memorat
mindphobia
Vizitator
« Răspunde #19 : Martie 07, 2005, 13:50:26 »

Citat din mesajul lui: fbkk
Si NU e numai la pornire, intrgul sistem d alocare a mem p windows mi se pare cam dubios.!?!


Asta cu dubios a fost buna. Care-i problema ta? Brick wall
Memorat
fbkk
Client obisnuit
**

Karma: -13
Deconectat Deconectat

Mesaje: 72



Vezi Profilul
« Răspunde #20 : Martie 08, 2005, 00:00:27 »

Nu voiam sa intru in detalii, dar vad ca interesul e mare Smile
Citat
Unde ai gasit tu o descriere a sistemului de alocare a memoriei pe Windows? Din cate stiu eu codul este prorietary si NU e public.

Ai dreptate NU e public! (Fiindca varianta lunga mi s-a sters voi fi scurt  Confused )
Ce voi spune pentru alocarea mem e valabil shi pentru alte operatii:
In Win, ai API = dll's == kernel32, user32, gdi32, etc., care se incarca cu fiecare executabil Win => le poti "debuga"(cuvant nou).
Concret:Scrii un program Win32 care aloca mem intr-o functie,si deschizi o fereastra CPU din compilator (personal am folosit Delphi 7)in care vezi executia codului din API(kernel32,ntdll,user32,etc.), mergi cu F7 pana la functia care te intereseaza, deschizi fereastra CPU, shi continui cu F7 prin dll-uri.  (N-am avut ce face vreo 2 saptamani asta vara ?!? )

!!! Pentru o analiza completa a codului folosit in diverse functii API ,e nevoie de vaste cunostinte in Win32, asm, arhitectura hardware si probabil luni de munca pentru o singura functie(n-aveti decat)!

Insa pentru o idee rapida si aproximativa cred ca merge "sa te uiti un pic peste codul celor d la MS"

Citat
Si ce legatura are formatul executabilelor cu alocarea memoriei?

Nici una !

Citat
Cat despre probleme, unix nu sta tocmai pe roze. Probabil ai auzit de OOM care se datoreaza "super-optimismului" lui malloc (i.e. promite programului memorie pe care nu o are). Asta e oarecum intentionat, pentru eficienta; dar sunt si alte probleme,

Fragmentarea e o problema si pe Linux, dar e una grea de rezolvat, oriunde.
Cat despre OOM ,mie nu mi-a facut probleme nici cu programele mele, si nici alte aplicatii n-au primit "KILL" inca din cauza OOM,
Solutia ar fi RAM-i multi si swap mare ,nu ??  Smile  :lol:

NU exista soft perfect,doar "mai bun" !
Memorat

No one should have to code the same thing twice !
fbkk
Client obisnuit
**

Karma: -13
Deconectat Deconectat

Mesaje: 72



Vezi Profilul
« Răspunde #21 : Martie 08, 2005, 00:31:33 »

Citat
La ONI se evalueaza pe Windows 9x?  Very Happy

 Eh?  Buna intrebare Eh?  : NU !
(In caz ca tie ti se pare ca atunci cand vorbeam despre Win , vorbeam de Win 9x ,: vorbeam de orice Win (pe PC am XP). Ti-as zice ca diferentele intre ele nu sunt chiar asha mari (vorbesec din punct de vedere al timpului de executie),dar probabil ca o sa zici ca e absurd si n-are rost)

Citat
Bullshit. Generalizare pripita.

Zi-mi un program comercial, care e mai bun decat echivalentul sau open-source !

Citat
Quote:
Sper ca nu v-am plictisit !!!

Oh.. da! Pe mine cel putin.

Puteai sa te opresti dupa primul alineat?? , daca te-ai plictisit ,de ce ai citit pana la sfarsit ??  Wink

Citat
Asta cu dubios a fost buna. Care-i problema ta? Brick wall

Ma bucur daca nu esti deacord cu mine, imi place sa aud alte pareri, insa pana le argumentezi sunt doar pareri, si din pacate nu ti-am retinut argumentele.
Daca ma faci sa inteleg de ce ai TU dreptate,o sa recunosc ca sunt prost, bucuros ca am invatat ceva ! Wink
Memorat

No one should have to code the same thing twice !
wickedman
Echipa infoarena
Nu mai tace
*****

Karma: 227
Deconectat Deconectat

Mesaje: 670



Vezi Profilul WWW
« Răspunde #22 : Martie 08, 2005, 01:51:40 »

Citat
In Win, ai API = dll's == kernel32, user32, gdi32, etc., care se incarca cu fiecare executabil Win => le poti "debuga"(cuvant nou).
Concret:Scrii un program Win32 care aloca mem intr-o functie,si deschizi o fereastra CPU din compilator ...

adica tu stii asa de multe despre alocarea memoriei in Windows facand debugging pe cod masina?  OMG! we are not worthy ... Pray

desi nu e frumos din partea mea, am sa-l demasc pe cel care se ascunde sub pseudonimul mindphobia.
daca fbkk a pierdut doua saptamani de vara studiind astfel de probleme, dl. mentionat mai sus studiaza de ani buni sisteme de operare / arhitectura calculatoarelor / assembly / win API / win DDK si altele. nu zic sa-l credeti pe cuvant dar macar sa ascultati ce are de zis, daca va mai zice ceva.
Citat
Zi-mi un program comercial, care e mai bun decat echivalentul sau open-source !

Asta e prea de tot. Very Happy
Lasand sistemele de operare deoparte, pot sa-ti dau zeci de exemple de pachete sw closed-source / comerciale (incepand cu software-as-a-service si terminand cu IDE-uri si aplicatii desktop) care depasesc cu mult alternativele open-source / free.

Get real! Lasand MS deoparte sunt alte companii gigantice si super-profitabile in industria software pentru ca ofera produse de calitate / unice pe piata.

exemple?
project management
XML editors
Oracle, MSSQL, Adobe CS, Zend Studio, Delphi, Mathematica, VS.NET, Macromedia <whatever> ,  MS Project, MS Access, MS InfoPath, MS Visio ...
e absurd. ma opresc aici
Memorat
Cosmin
Echipa infoarena
Nu mai tace
*****

Karma: 351
Deconectat Deconectat

Mesaje: 1.799



Vezi Profilul
« Răspunde #23 : Martie 08, 2005, 04:50:50 »

Tare threadu asta windows vs linux! Astept in continuare C vs Pascal/C++/Java/C# sau ce limbaje de programare mai vreti voi.
Memorat
fbkk
Client obisnuit
**

Karma: -13
Deconectat Deconectat

Mesaje: 72



Vezi Profilul
« Răspunde #24 : Martie 08, 2005, 16:23:03 »

De fapt ,daca stau sa ma gandesc cred ca dezbatem mult si fara folos, ca pana la urma e o chestie de gust : Windows sau Linux.
 Timpul de executie, conteaza doar la olimpiada si daca shtii rezolvarea ,se incadreaza in timp pe orice platforma Very Happy ,shi daca nu ...  Sad  diferenta e de 1-2 teste in cel mai bun caz.
Citat
Tare threadu asta windows vs linux! Astept in continuare C vs Pascal/C++/Java/C# sau ce limbaje de programare mai vreti voi.


Multumesc ca m-ai facut sa-nteleg ca facem aici teoria chibritului.    Neutral
Memorat

No one should have to code the same thing twice !
Pagini: [1] 2   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines