- A hozzászóláshoz be kell jelentkezni
- 4546 megtekintés
Hozzászólások
Éppen a napokban gondolkoztam el rajta, hogy érdemes -e C nyelven lekódolni bármit is (teljesítmény szempontjából), mert a Java, Python, C#, stb. hatalmas sebességgel fejlődik.
Nos, a teszted azért elég jól megválaszolta a kérdést.
Köszönöm. :)
--- GTK programozás C nyelven ---
http://hu.wikibooks.org/wiki/GTK%2B_programoz%C3%A1s_C_nyelven
- A hozzászóláshoz be kell jelentkezni
Fejlődik mint állat, csak aztán azt veszed észre, hogy a kiváló JAva megette mind a 16GB memóriát a szerverben. (És nem, nem én írtam a kódot.) Tudom hogy elég frusztráltan hangzik, de én még nem találkoztam normálisan futó (itt én sebességet és memória zabálást is értek) java programmal, mondjuk tipikusan enterspájz alkalmazásoknál.
Megint a Cisco VPNSC/ISC nevű csodát hoznám fel példának, aki használt már olyat tudja miről beszélek.
Üdv
Godot
- A hozzászóláshoz be kell jelentkezni
Ha ilyen nyelvet kell preferálni, akkor szerintem a Python egész jó választás lehet... vélemény...? :)
--- GTK programozás C nyelven ---
http://hu.wikibooks.org/wiki/GTK%2B_programoz%C3%A1s_C_nyelven
- A hozzászóláshoz be kell jelentkezni
Nem is a teljesítmény szempontjából, de van egy projektunk, a GUG ami egy Python alapú elosztott rendszer és az volt a látványos, hogy 5 hónap alatt olyan rendszert sikerült összerakni 0-ról, ami azóta is kiválóan működik, egy játéknak alig tekintő rendszeren, a ClusterGrid-en. Én nagyon elégedett vagyok a fejlesztési hibajavítási ciklussal és a produktivitással.
- A hozzászóláshoz be kell jelentkezni
Telko környezetben csináltunk Python alapon rendszert (kb. 4 emberévnyi fejlesztés, flame on C++-ban duplája-triplája lett volna flame off).
Sebesség gond, memória panasz, core dump, hiba nincsenek.
- A hozzászóláshoz be kell jelentkezni
Java ügyben két dolgot láttam, ami megeszi a memóriát. Az egyik a tapasztalatlan programozó (bennragadó referencia), a másik alkalmazásszerver oldali cache.
- A hozzászóláshoz be kell jelentkezni
Kérdés, mi a feladat.
Ha gyors programot kellene írnom, bizonyára C++-ban állnék neki. Ha inkább hamar kell kifejleszteni, és nem baj, ha fél mp helyett mondjuk 4 mp a futás ideje, akkor meg python.
A pythonnal egy bajom volt, hogy jó lazán bánik a memóriával, tehát ha több százezer objektumot létrehozok (fájlból töltöttem láncolt listát), akkor hajlamos megzabálni a memóriát.
Mindenesetre itt is igaz: megfelelő szerszámot a munkához.
G
- A hozzászóláshoz be kell jelentkezni
> Mindenesetre itt is igaz: megfelelő szerszámot a munkához.
Állítólag ez a jelmondat a pornó-szakmában is... :)
--- GTK programozás C nyelven ---
http://hu.wikibooks.org/wiki/GTK%2B_programoz%C3%A1s_C_nyelven
- A hozzászóláshoz be kell jelentkezni
A D nyelvet erdekes lett volna felvenni. Ugyanazt a kodot fordithatod es interpretalhatod is. Ezzel kapcsolatban egy apro megjegyzes: a nyelv nem feltetlenul hatarozna meg, hogy forditod vagy interpretalod. (Tehat nem nyelveket, hanem forditokat illetve futtatasi kornyezeteket hasonlitasz ossze.) Ebbol adodik az is, hogy egy kicsit torz a kijelenetes, hogy az interpretalt nyelvekben hatekonyabban lehet programozni. Termeszetesen ez igaz, de nem azert, mert a nyelv interpretalt, hanem azert, ment az interpretalt nyelvek nagy resze modern nyelv. Es a modern nyelvek rendelkeznek azokkal az eszkozokkel, amelyekkel hatekonyabban lehet dolgozni.
- A hozzászóláshoz be kell jelentkezni
Egyetértek a pontosítással.
- A hozzászóláshoz be kell jelentkezni
Ah, pedig mar vartam az okos otleteket a Ruby-ban irt OS-hez me'hogy a C elavult, meg az assembly is. :) Most csalodtam. Tenyleg, meg lehet kapni a referencia kodokat? Lehet hogy atirnam Free Pascalba, csak a poen kedveert, a legujabb 2.1.1 SVN fordito ugyanis tud par aranyos optimalizalos aprosagot, aztan furja a kivancsisag az oldalam. :P
- A hozzászóláshoz be kell jelentkezni
Kár, hogy az internal linker még csak windowsra van (mármint még nincs elf támogatás)... ezt a feature-t várom a legjobban:)
- A hozzászóláshoz be kell jelentkezni
Ott a link a kódokra a szövegben csak rajta. A gép megvan a min futtattam, ha valaki küld kódokat le tudom futtatni. Azért érdemes megnézni a hivatkozott összehasonlító dolgokat mert sok mindent megcsináltak már.
- A hozzászóláshoz be kell jelentkezni
Nagyrészt perl-ben írt OS:
http://perllinux.sourceforge.net/
- A hozzászóláshoz be kell jelentkezni
Egy másik ilyen pl a Mandriva :-p :-D
Ki is dobtam :-)
- A hozzászóláshoz be kell jelentkezni
Már csak a perlben írt perl hiányzik.
- A hozzászóláshoz be kell jelentkezni
Pythonban írt Python: http://codespeak.net/pypy/dist/pypy/doc/news.html
- A hozzászóláshoz be kell jelentkezni
Azok a százalékok ott a táblázatban ugyan mit jelentenek vajon?
- A hozzászóláshoz be kell jelentkezni
Ha nem volna nyilvánvaló: a C sebességét vettem alapnak (100%) ehhez képest mennyi a futási ideje a többinek: Futási idő C program/Futási idő más program.
- A hozzászóláshoz be kell jelentkezni
Még mindig nem értem.
Konkrét példával: a C-s int test 100%, a javas 2%, akkor ezt a két értéket hogyan kell szoroznom/osztanom/összeadnom/stb, h valami értelmes mérőszámot kapjak? (merthogy az általad írt "Futási idő C program/Futási idő más program"-ból az jön ki, h a java 50x gyorsabb, mint a C, ami azért engem meglep (; nem beszélve a ruby 0.01%-áról...)
- A hozzászóláshoz be kell jelentkezni
Ezt komolyan kérdezed?
- A hozzászóláshoz be kell jelentkezni
Tehát gyak azt kapom meg, hogy a C program futási ideje, hány százaléka az éppen adotténak?
Software is like sex, it's better with a penguin. :D (r)(tm)(c)
- A hozzászóláshoz be kell jelentkezni
Hát nézd a számokat (; Ha a C program 100% időt igényelt, a java 2%-ot, a ruby meg 0.01 %-ot, akkor a java 50-szer, a ruby pedig 10k-szer gyorsabb a C-nél. Namost ez szerintem nem valószínű (; szóval akkor hogy is van?
- A hozzászóláshoz be kell jelentkezni
A fenti állítás szerint, C idő/X idő. Ha ez százalék akkor azt kapod, hogy a C ideő hány százaléka az éppen adott nyelven írt prog idejének. Akkor viszont a Rubynak kell 10000szer annyi idő..Az viszont irdatlan nagy számnak tűnik.
Software is like sex, it's better with a penguin. :D (r)(tm)(c)
- A hozzászóláshoz be kell jelentkezni
Pedig annyi volt. Int-ben a C nagyon nagyon nagyon megvert mindenkit.
- A hozzászóláshoz be kell jelentkezni
Pont fordítva: a konkrét példánál maradva java int futási ideje a C program 50x-ese volt azaz a teljesítménye a C-hez képest 2%.
- A hozzászóláshoz be kell jelentkezni
En nagyon kivancsi lennek a gcc 4.0ra vagy 4.1re -O2vel.
- A hozzászóláshoz be kell jelentkezni
Arra én is, bár a 4.0 biztosan lassabb a 3.4-nél.
Viszont nem tudom, hogy a 4.1 hol áll...
"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o
- A hozzászóláshoz be kell jelentkezni
He-he... azért 100% fölötti érték egy sem volt...:-)))
Magyarul a mezei C kódolásnál semmiféle faxnis csicsa-micsa cucc nem ad gyorsabb kódot, más kérdés, hogy egy kisebb webes munkár épeszű ember PHP-ban ír meg és nem C-ben szerveroldali alkalmazásként.
- A hozzászóláshoz be kell jelentkezni
Egy tipp a Java-hoz: a -server kapcsolót akkor használd, ha _hosszú_ ideig tudod futtatni a tesztet. Néhány tesztesetednél esélye sincs a JVM-nek arra, hogy optimalizáljon. Valahogy a listás tesztet nem fogtam, hogy ott mit is vizsgáltál, de most idő hiányában csak rápillantottam. Ha érdekel, akkor segíthetek rendbetenni a Java-s részt.
- A hozzászóláshoz be kell jelentkezni
Hajrá. Mivel ott a kód szívesen várok minden hozzájárulást. Egyébként már ilyen időtartamok alatt is (> 10 sec) a -server kapcsoló hozott valamit a konyhára.
Most még különféle Pythonokkal fogok próbálkozni, mert én azt szeretem ;)
- A hozzászóláshoz be kell jelentkezni
Psyco-t mindenképp nézd meg, ha még nem tetted, ha csodákat nem is művel de közel van hozzá. :)
Szerk:
Közben már látom, hogy használtad...
"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o
- A hozzászóláshoz be kell jelentkezni
Ha a hirek igazak a 6.02-es javaban, mar lesz -hyper kapcsoló is, amit a StarTrek-bol vettek at..:))
En mar is hozzais szoltam az oldaladon.. (ne vedd zokon..) annak ellenere, hogy tele van a t.kom a osszehasonlito tesztekkel.:-)
Fri
- A hozzászóláshoz be kell jelentkezni
Ami azert elegge be tudja folyasolni az eredmenyeket:
- a vas (foleg az architektura) amin teszteltel
(mondok egy peldat: tavaly proof-of-concept gyanan megirtam egy grafikai effektet pure c-ben, semmi asm/mmx. 2.5ghz ppc g5-on 80fps-t ment, egy p3 1000-esen 2 fps-t. elsosorban cache/memoria kezelesi kulonbsegek miatt. ugyanazzal a gcc verzioval, -O3 mindket esetben).
erdemes lenne kulonbozo vasakon is letesztelni.
- a compiler opciok (gondolom max optimalizacion toltad)
foleg gcc-nel eleg sok varoacio van.
- java eseten a JIT nagyon sokat dob, ugy hallottam 80-90% kozeli eredmenyt lehet elerni a C-hez kepest. a nektek kijott 2% nem valami meggyozo...
- java eseten meg lehetne nezni pl. a gcj-t is (a gcc java compilere), ez nativ kodot fordit java forrasbol.
A'rpi
ps: a python nagyon jo, ha pl. szoveg fileokat kell feldolgozni/generalni vagy egyszeru cgi scriptet kell irni, es az embernek nincs gyomra a perl-hez, de matekozni szerintem nem valami hatekony benne... :(
- A hozzászóláshoz be kell jelentkezni
1. Dell 2650 dual Xeon 2Ghz-n teszteltem 1G memória
2. Nem optimalizáltam ki a végletekig semmit sem (idő hiány)
3. Sok mindent meglehetne nézni még csak bird idővel és erővel
4. Nem is akarok python-ban matekozni, de a tesztek azt mutatják, hogy semilyen script nyelven nem érdemes matekozni, főleg lebegő pontos műveleteket.
- A hozzászóláshoz be kell jelentkezni
Java -client és -server a C++-hoz képest 85-105%-t tud hozni.
- A hozzászóláshoz be kell jelentkezni
Ami azert elegge be tudja folyasolni az eredmenyeket:
Banatos kisf@szom! Remelem, hogy ezt csak poenbol irtad igy, kulonben nagyot kellene csalodnom benned A'rpi. :)
- A hozzászóláshoz be kell jelentkezni
Üdv,
Ez az összehasonlítás szép és jó, de hasznos akkor lett volna, ha nem a C-hez hasonlítjuk az interpretált nyelveket, hanem egymáshoz.
Bár így is össze lehet őket vetni egymással, de a C teljesítményével nem összemérhetőek.
Azt is figyelembe kellene venni, hogy az interpreterek nagy részét (ha nem mindet) C/C++-be(a)n írják. És persze mind más optimalizációval/fordítóprogrammal.
Zolee
- A hozzászóláshoz be kell jelentkezni
A kérdés úgy merült fel, hogy a natív (C, Fortan)-hoz képest eljött-e már az interpretált nyelvek ideje, a konkrét, esetben teljesítményben. Szerintem én össze tudnám hasonlítani a fenti táblázat alapján a csak interpretált nyelveket egymáshoz képest is. (az osztás művelet csodákra képes :)
- A hozzászóláshoz be kell jelentkezni
Nem értem, miért olyan rossz a Perl objektum kezelése. Pedig nincs is annál hatékonyabb, mint amikor egy objektum attributumait név (string) szerint egy hash táblából keressük ki.
Na de komolyra fordítva a szót: Valami több platformos, GUIs, netet használó alkalmazást kéne összehasonlítani, amiben mondjuk kis szöveg parse-olás is van. (Pl. böngésző, SIP kliens vagy épp IP Centrex.)
- A hozzászóláshoz be kell jelentkezni
Amíg egy nyelvből az összehasonlíthatóság miatt szándékosan csak a lehetőségek töredékét használjuk fel, addig ez nem sokat mond az egész nyelvről.
http://wiki.python.org/moin/PythonSpeed
- A hozzászóláshoz be kell jelentkezni
Szolgálati közlemény: Az int mérés el volt rontva, mint arra felhívták a figyelmemet a hozzászólások között. Köszönöm. A -O2 kapcsoló hatására a fordító kioptimalizálta az egész loop-ot ennek volt köszönhető a nagy eltérés a nyelvek között ebben a szekcióban. Szégyellem magam, hogy nem vettem észre :( Javítva.
- A hozzászóláshoz be kell jelentkezni
Szia Feri!
Ezeknek a nyelveknek egy része speciális feladatokra készült. Érdemes lenne lefuttatni a tesztet mondjuk 1000 szimultán kérésre, szálkezeléssel, bájtkód állapotban.
Egy másik érdekes teszt: http://www.timestretch.com/FractalBenchmark.html
--
Aries
http://aries.mindworks.hu
http://mindworks.hu/blog/aries
- A hozzászóláshoz be kell jelentkezni
A megállapítással tökéletesen egyetértek, ahány nyelv annyiféle cél, fókusz. Mindegyiknek megvan a maga létjogosultsága. Akkor még nem is beszélünk az olyan egzotikumoknak számító nyelvekről, mint a prolog, az scheme, sml stb.
Sokan sokféle testet futtattak már ez ügyben a leírásban találsz linkeket is.
Nem áll szándékomban a végletekig csiszolni a dolgot arra sajnos nincs időm :)
- A hozzászóláshoz be kell jelentkezni
Csak arra akartam reagálni, amit korábban is írtak, hogy a teszt eredményét nagyban befolyásolják a körülmények. A java pl. elég jól vette ki magát, pedig a virtuális gép élből bekapkodja a maga százegynehány MB-ját. Tehát ha egy indulástól befejezésig tesztet nézzük 128MB RAM-on, akkor gyakorlatilag az utolsó helyen végezne a java, itt pedig a második.
A nyelv csak egy eszköz, az, aki fejleszt vele, tudja, mik a határai és a körülményeket úgy alakítja, a kitűzött célt megvalósítsa. Nem elvárható, hogy egy fejlesztő 2-nél több nyelven beszéljen „anyanyelvi szinten”, de az sem, hogy minden egyes új projekthez egy új csapatot kelljen verbuválni. Ennek a költségei jóval magasabbak a körülmények alakításánál.
--
Aries
http://aries.mindworks.hu
http://mindworks.hu/blog/aries
- A hozzászóláshoz be kell jelentkezni
Mondjuk én szeretném azt hinni, hogy egy jó programozónak mindegy milyen nyelven beszél. Meg azt is hogy igen is elvárható, hogy 2-nél több nyelven beszéljen jól. Pont azért, hogy megfelelő nyelvet választhasson a megfelelő feladathoz.
- A hozzászóláshoz be kell jelentkezni
Ahogy a mondás is tartja:
"Az igazi programozó akármilyen nyelvben is bír FORTRAN programokat írni."
Valahogy ez úgy működik, hogy az ember megtanul egy nyelvet, akkor már könnyen megtanul újakat, szinte bármennyit.
De az, hogy valaki "anyanyelvi szinten" használjon egy nyelvet az egész más. Ahhoz fel kell venni a nyelv gondolkodását. Ilyen szinten tényleg nem lehet több nyelvet tudni, max 1-2-t.
"...handing C++ to the average programmer seems roughly comparable to handing a loaded .45 to a chimpanzee."
-- Ted Ts'o
- A hozzászóláshoz be kell jelentkezni
Lazán kapcsolódik a témához, néhány esszé programozási nyelvekről és egyebekről:
http://www.paulgraham.com/articles.html
Kicsit osztja az észt de azért többnyire van benne valami, meg hát le is tett valamit az asztalra. Asszem.
- A hozzászóláshoz be kell jelentkezni