Kategorie:
54

LinuxDNA – szybsze jądro z kompilatorem Intela

LinuxDNA to projekt, którego celem jest stworzenie i utrzymywanie źródeł jądra systemu Linux, kompatybilnych z kompilatorem Intela. Programiści właśnie odnotowali swój pierwszy duży sukces.

Sukcesem bowiem należy nazwać udane skompilowanie jądra w wersji 2.6.22. Nie chodzi jednak o przeprowadzenie kompilacji zakończonej bez błędów, ale uzyskanie w pełni kompatybilnego, działającego jądra, które może stać się podstawą do budowy systemu operacyjnego.

W tym momencie wielu czytelników zada sobie w duchu pytanie, czy jest w ogóle sens takich działań, skoro od lat bardzo dobrze spisuje się kompilator GCC. Autorzy projektu odpowiadają, że tak, gdyż może to dać spore zyski w wydajności, średnio 8% – 9%, ale dla niektórych fragmentów jądra nawet do 40%. ICC, czyli kompilator Intela, tworzy – jak zapewniają – lepiej zoptymalizowany kod wynikowy. Dzieje się tak, gdyż korzysta on z dwóch technik optymalizacji IPO (Inter Procedural Optimization) oraz PGO (Profile Guided Optimization).

IPO jest mechanizmem heurystycznym, gdy tymczasem PGO służy specjalnemu profilowaniu kodu. Działa to w taki sposób, że początkowo kompilator dodaje modyfikacje służące analizie wykorzystania kodu, a następnie dokonuje ponownej kompilacji, wprowadzając zmiany, mające na celu przyśpieszenie wykonywania plików wynikowych w najważniejszych, najczęstszych zastosowaniach. W ten sposób – spekulują twórcy projektu – można tworzyć profile jądra przeznaczone do konkretnych zadań – np. sprawdzające się lepiej jako podstawa do budowy systemu obliczeniowego lub też serwera sieciowego. Choć optymalizacja PGO jest dostępna również w GCC to kompilator Intela ma dawać lepsze wyniki.

W tej chwili istnieje jeszcze kilka problemów, które programiści projektu muszą rozwiązać, nim rozpoczną prace nad adaptacją nowszej wersji jądra. Głównym brakiem są problemy z wykorzystaniem sterowników udostępnianych jedynie w postaci binarnej. Twórcy LinuxDNA wierzą jednak, że uda im się szybko uporać z tą niedogodnością.

Głównymi programistami są:

  • LuYi Cheng: Chiński haker jądra, który doprowadził je do stanu pełnej używalności.
  • Feilong H: Pracownik Intela, który dostarczył wiedzy potrzebnej do napisania wymaganych łatek.
  • Nieznany haker z Broadcom, który służył wiedzą i wsparciem technicznym.
  • Claude Tyler McAdams: Haker oraz przedstawiciel projektu.

Tutaj znajduje się strona projektu.

Więcej informacji: http://www.linuxjournal.com/content/linu...c-compiler

«
»

Znalazłeś literówkę? Zgłoś ją używając formularza!


Jeśli uważasz, że ten nius jest nieobiektywny, przedstawia nieprawdziwe wydarzenie, jest spamem lub nie spełnia standardów serwisu, napisz raport.

Niusy na podobny temat:

Komentarze (RSS)

Komentarze są prywatnymi opiniami dodających je osób. Prosimy o zachowanie kultury wypowiedzi. Komentarze obraźliwe oraz obniżające poziom serwisu będą usuwane. Więcej w regulaminie komentowania.

113 komentarzy

zwiń wątek Apage  2 marca 2009 o godz. 16:59 #
Gravatar

Kiedy powstanie projekt wykorzystujący kompilator microsoftu?

(Poniżej tego poziomu komentarze nie będą zagnieżdżane)
zwiń wątek ak47  2 marca 2009 o godz. 17:05 #
Gravatar

wtedy gdy go założysz

 
zwiń wątek jrs  2 marca 2009 o godz. 17:19 #
Gravatar

Chcesz uruchamiać jądro Linuksa z poziomu Windowsa?

zwiń wątek MichalK  2 marca 2009 o godz. 17:45 #
Gravatar

Przeciesz to juz bylo dawno. Nie pamietam nazwy ale normalnie w windows uruchamialo sie warste linuksa z jadrem umozliwiajac uruchamianie linuksowych aplikacji wprost w windows. Działało. Moze ktos pamieta nazwę?

zwiń wątek Sławek  2 marca 2009 o godz. 18:04 #
Gravatar

Limo??

 
zwiń wątek Art  2 marca 2009 o godz. 18:07 #
Gravatar

Cygwin? :)

 
zwiń wątek Tomasz Torcz  2 marca 2009 o godz. 18:35 #
Gravatar

colinux.

 
zwiń wątek Noctivivans  2 marca 2009 o godz. 18:54 #
Gravatar

andlinux

 
zwiń wątek Maciej Piechotka  2 marca 2009 o godz. 19:14 #
Gravatar

Ale raczej nie chodzi o jądro…

 
zwiń wątek Rsh  2 marca 2009 o godz. 20:13 #
Gravatar

ORLY? "andLinux uses coLinux as its core which is confusing for many people. coLinux is a port of the Linux kernel to Windows. " — http://andlinux.org/

 
zwiń wątek i  2 marca 2009 o godz. 23:16 #
Gravatar

jest też takie coś http://ring3k.org/

 
zwiń wątek vampire  3 marca 2009 o godz. 0:51 #
Gravatar

To byl Monkey Linux.

Nawet chyba kiedys go uzywalem wraz z Windows 95 lub 98.

 
zwiń wątek [r4]  3 marca 2009 o godz. 9:03 #
Gravatar

Monkey Linux to była taka śmieszna dystrybucja na pięciu dyskietkach, którą można było rozpakować do katalogu na partycji FAT i stamtąd — po zamknięciu systemu Windows, albo z poziomu DOSa — uruchomić loaderem. Odpalał się normalny Linux ze środowiskiem graficznym.

Nie sądzę jednak, żeby o to chłopakom wyżej chodziło :)

 
zwiń wątek marcinsud  3 marca 2009 o godz. 13:44 #
Gravatar

ulteo zapewne o to chodzi, ale opcja instalacji w windows chyba została porzucona, bo coś nie mogę znaleźć na ich stronie. Ulteo Virtual Desktop w każdym bądź razie, ściągasz plik exe instalujesz i masz, pewnie to jak nazwa wskazuje Linux w wirtualnej maszynie, ale nie musisz o tym wiedzieć, by korzystać.

 
 
 
zwiń wątek Apage  2 marca 2009 o godz. 18:29 #
Gravatar

No nie wiem za co te minusy! Przecież MS robi taki dobry kompilator!

A dla tych co niewiedzą jak się nazywa linuks w windows:

>colinux

zwiń wątek Rsh  2 marca 2009 o godz. 18:49 #
Gravatar

Microsoftowy kompilator nie dlatego nie skompiluje Linuksa, że jest jakiś ułomny (bo nie jest), ale dlatego, że Linux jest napisany z użyciem bardziej GNU C i nastawiony był od zawsze na wspieranie jedynie GCC i jego rozszerzeń. Fakt kompilacji Linuksa przez ICC świadczy o zGNUwieniu ICC. :-)

zwiń wątek Apage  2 marca 2009 o godz. 21:02 #
Gravatar

Ale pewnie freeBSD da rade, co? ;p

 
zwiń wątek pijaczek  2 marca 2009 o godz. 22:57 #
Gravatar

@Apage: nie da rady, bo w przeciwieństwie do tego co pisze Rsh jest "ułomny" – znaczy się nie potrafi generować plików coff, a jedynie exe (kompilatory potrafiące więcej nie są udostępniane przez microsoft). Poza tym raczej nikt rozsądny by tego nie zrobił ponieważ kompilator z VS jest dużo wolniejszy od ICC, i wolniejszy od GCC (visual studia compiler przewagę miał w czasie gcc3, ale od tego czasu gcc przyspieszył znacznie i w serii 4 wyprzedził szybkością kod binarny generowany przez kompilator MS).

 
zwiń wątek Rsh  2 marca 2009 o godz. 23:14 #
Gravatar

Ja bym nie stawiał tak bardzo na tą przewagę szybkości GCC nad MSVC. Jeszcze niedawno był flame na osnews jak to MS'owe kompilatory generują szybszego Firefoksa. :) Co do ułomności to może w tym kontekście rzeczywiście, ale ogólnie to jest to dośc dobry kompilator – sam go nie używam, ale mam znajomych, którzy silnie go testują.

 
zwiń wątek LV  2 marca 2009 o godz. 23:29 #
Gravatar

Chłopcze, nie wiesz to nie pisz, w tym momencie zachowałeś się gorzej niż trasz w najbardziej kontrowersyjnych wypowiedziach.

Kompilator optymalizujący (bo tak się nazywa kompilator używany przez Visuala) kompiluje do COFFa właśnie (konkretnie MS COFF – COFF zawierający dodatkowe), następnie COFFy są ew. linkowane do PE COFF-a (czyli execi, dll-ki itd.). Kompilator to cl.exe, linker – link.exe. Składnia wywołania klamotów jest podobna do gcc, icc czy inszego lcc. CL tak samo jak G++ bez podania przełącznika '-c' po skompilowaniu przekazanych plików prześle COFF-y do linkera, z nim, nadal tak samo jak G++, wyłącznie skompiluje COFF-y.

Zgadnij, po co w Menu Start Masz coś takiego jak Visual Studio 200x Command Prompt? Chociaż pewnie nigdy nie miałeś zainstalowanego Visuala – wiedziałbyś, że to konsola do ręcznej kompilacji, dokładnie takiej samej jak robi się to z kompilatorami GNU czy Intela.

Samego Visual Studio, jako IDE, też widać nie używałeś, kompilacja a budowa projektu to nie to samo – można skompilować konkretne pliki co COFF-ów bez linkowania binarki, i to bez posługiwania się linią poleceń.

 
zwiń wątek pijaczek  2 marca 2009 o godz. 23:36 #
Gravatar

Nie chciałbym Cie zmartwić, ale windowsowa wersja firefox'a z tego co wiem jest budowana z użyciem gcc ;p (a dokładniej mingw32), ale zaraz sprawdzę dokładniej. Przewaga odpalonego firefox'a pod wine jest optymalizacja samego wine – to tak jak przy testach ray tracerów, natywnie pod windowsem działa 3-4 razy woniej niż pod wine (wine swoją przewagę traci jak programy zaczynają używać gpu). Jakbyś przetestował szybkość firefox'a pod windowsem i pod linuxem natywnie to pod linuksem nieznacznie wygrywa… ale wine jakimś magicznym sposobem robi to samo szybciej (nie zagłębiałem się w to dokładniej).

 
zwiń wątek pijaczek  2 marca 2009 o godz. 23:48 #
Gravatar

@Rsh: co do oficjalnego build'a firefoxa niee miałem racji – jest zlinkowany msvcrt.dll – jednak szybsze są buildy z mingw32, ale i one pod wine dostają dodatkowych magicznych sił ;p.

 
zwiń wątek Apage  3 marca 2009 o godz. 0:39 #
Gravatar

Dzięki za oświecenie! Od lat już niczego nie kompilowałem i nie jestem w temacie. A ile to się człowiek nasłuchał o fullwypaśności kompilatorów komercyjnych zwłaszcza mikrosoft i badziewności gcc

 
zwiń wątek trasz  3 marca 2009 o godz. 9:52 #
Gravatar

@Apage: Nie sadze. Za to coraz bardziej daje rade kompilowac je LLVM-em.

@pijaczek: Podaj mi jeden konkretny przyklad programu, ktory skompilowany GCC jest szybszy niz kompilatorem Microsoftu. Tylko nie popelniaj tych samych bledow, co Thar kiedys, porownujac program kompilowany pod GCC ze wstawkami asemblerowymi (napisanymi tak, zeby byly nieprzenosne) z tym samym kodem kompilowanym LC, ale bez wstawek.

GCC _nadal_ ma kompletnie zwalona optymalizacje kodu. I nie oczekiwalbym poprawy – GCC jest po prostu zbyt duze i zbyt zabalaganione. Za kilka lat po prostu przejdzie sie na LLVM i zapomni o GCC.

 
zwiń wątek jellonek  3 marca 2009 o godz. 10:12 #
Gravatar

trudno sie tu z traszem nie zgodzic.

jak sie zobaczy na wlasne oczy kod clang-llvm uruchomiony pod maszyna llvm-jit i dzialajacy do 15-20% szybciej od gcc4.3 -O3 to nieco szczena opada.

to ile mozna w gcc poprawic pokazuje kompilacja kodu posredniego llvm do natywnej binarki – ktora, jak nie trudno sie domyslic – wykonuje sie jeszcze szybciej niz z uzyciem maszyny jit osiagajac czasem niemal 50% zysku wzgledem gcc4.3.

 
zwiń wątek Rsh  3 marca 2009 o godz. 11:40 #
Gravatar

W sumie to fakt JIT'a nie ma większego znaczenia. Koniec końców kod i tak ląduje w pamięci, a to jaki to będzie kod zależy tylko i wyłącznie od ustawionych przejść optymalizacji. (pomijając, że zazwyczaj JIT nie może mieć agresywnych optymalizacji ze względu na potrzebę szybkości skompilowania)

 
zwiń wątek Thar  3 marca 2009 o godz. 12:32 #
Gravatar

Tylko nie popelniaj tych samych bledow, co Thar kiedys, porownujac program kompilowany pod GCC ze wstawkami asemblerowymi (napisanymi tak, zeby byly nieprzenosne) z tym samym kodem kompilowanym LC, ale bez wstawek.

Lol? Co, gdzie, jak kiedy? Ja tobie podawałem program jako przykład tego, czemu nie jest pisany pod MSVC – bo kompilator wielu instrukcji nie wspiera. Ani słowa o asemblerze.

Skoro już, to napiszę, że asembler w x264 oczywiście JEST przenośny i nie ma nic wspólnego z używanym kompilatorem. Dokładnie odwrotnie, niż napisał trasz. Ale to mnie nie dziwi ;)

 
zwiń wątek Thar  3 marca 2009 o godz. 12:49 #
Gravatar

Jeszcze jedno. Kolejny raz przejawiasz tendencję do przedstawiania faktów tak, jak ci wygodnie. Dlaczego clang za kilka lat miałby się wreszcie nadawać do użytku a gcc nie miałoby poprawić optymalizacji? Przecież w obydwu kierunkach – obsłudze kodu w clang i optymalizacji w gcc – prace ciągną się od lat. Na clangu kompiluje się coraz więcej kodu, gcc 4 dużo lepiej optymalizuje od poprzednich wersji. A, zapomniałem – clang to BSD-like, ta licencja w magiczny sposób czyni kod dziesięciokrotnie lepszym ;>

Twoja moherowa krucjata przeciw wszystkiemu co nie trafia w twoje licencyjne gusta jest znacznie bardziej intensywna niż pojawiające się od czasu do czasu komentarze paranoicznych antyfanów Apple. Próbowałeś to leczyć, czy może w devteamie FreeBSD prestiż jest proporcjonalny do umiejętności trollowania?

 
zwiń wątek pijaczek  3 marca 2009 o godz. 12:53 #
Gravatar

@LV: No właśnie MS COFF, a nie zwykły COFF (przekonałem się o tym jak napisałem mini jąderko i chciałem linkować – nie dało się i jedyne co w necie na ten temat w necie znalazłem to właśnie to, że kompilator MS nie potrafi zrobić zwykłych COFF i nie da się go użyć do kompilacji systemu – jeśli wiesz więcej na ten temat to byłbym wdzięczny jakbyś napisał).

@trash: Bardzo dużo – przykładami niech będą blender i lame (jasne nie na oficjalnym stabilnym gcc (mingw32) dla windowsa (bo on jest w wersji 3.4.5 z 2006 roku, ale buildy 4.3.3 – możesz zbudować sobie sam lub użyć wersji przygotowanych przez kogoś, np. http://www.tdragon.net/recentgcc/)). Niestety w kwestii szybkości kodu visual studio prawie stoi w miejscu od kilku wersji, a konkurencja nie śpi i gcc go ostatnio wyprzedziło.

 
zwiń wątek trasz  3 marca 2009 o godz. 13:24 #
Gravatar

@Thar: Trudno, zeby kompilator MSVC wspieral kompletnie niestandardowe i proprietarne rozszerzenia GCC. Rownie dobrze moznaby sie przyczepic, ze GCC nie wspiera rozszerzen MSVC. A x264 potrafi uzywac tylko tych pierwszych – przy kompilacji innymi kompilatorami pewne optymalizacje sa wylaczone, bo nikt nie zadal sobie trudu zapewnienia przenosnosci.

@Thar: Z dwoch powodow. Po pierwsze, LLVM ma lepsza strukture wewnetrzna. Po prostu latwiej zaimplementowac to, co jest potrzebne. Po drugie, LLVM ma coraz mocniejsze wsparcie komercyjne, a GCC na odwrot.

@pijaczek: A teraz przeczytaj jeszcze raz to, co napisalem o kodzie GCC-only, uzywajacym niestandardowych rozszerzen uznawanych GCC.

 
zwiń wątek Thar  3 marca 2009 o godz. 13:59 #
Gravatar

Ale mnie to ani nie obchodzi, ani nie mam na to wpływu – napisz to programistom. To oni używają niestandardowych rozszerzeń gcc, ergo najwyraźniej im odpowiadają/są wygodne/potrzebne. Trudno, żeby używali kompilatora który karze im wykonywać więcej pracy, gdy alternatywa jest wolnodostępna. ;>

Nie wiem, jaką strukturę wewnętrzną ma LLVM, ale to zdaje się jest jedynie backend? Clang dzieli z nim jakiekolwiek fragmenty kodu?

 
zwiń wątek pijaczek  3 marca 2009 o godz. 14:11 #
Gravatar

@trash: to były tylko przykłady. Nie wiem do końca jak to jest z lame, ale blender nie używa wstawek asm i też nie ma używa żadnych tricków/rozszerzeń gcc, a rendering buildów z gcc4 jest znacząco szybszy.

BTW. programy nie są gcc only, a visual jest "asm intel" only dlatego optymalizacje (np. z użyciem instrukcji procesora np sse…) pisane w notacji at&t na nim nie działa (a szkoda że nie tak jak gcc intel i at&t (at&t jest standardowo, a aby użyć notacji intela trzeba użyć ".intel_syntax noprefix" przed kodem i ".att_syntax noprefix" po kodzie w intelowskiej notacji)).

 
zwiń wątek pijaczek  3 marca 2009 o godz. 14:20 #
Gravatar

@trasz: co do "zapomni się o gcc" to coś tego nie widzę (mimo, że bardzo chciałbym aby LLVM się prężnie rozwijał), bo gcc ostatnio ruszył w kierunku optymalizacji, zaczyna się planować implementacje w nim openCL (co da dodatkowego kopa aplikacją, ale nie będzie kompatybilne z visualem więc różnica będzie jeszcze większa, pomiędzy aplikacjami kompilowanymi gcc vs visual), i co najważniejsze najszybciej adaptuje standard C++0x, na który z niecierpliwością czekają programiści.

 
zwiń wątek trasz  3 marca 2009 o godz. 14:44 #
Gravatar

@Thar: Ale w tym momencie twoj przyklad – w tym konkretnym przypadku x264 – jest bezuzyteczny, bo nie porownujesz wydajnosci tego samego kodu kompilowanego dwoma roznymi kompilatorami – porownujesz wydajnosc _roznego kodu_.

@pijaczek: Kiedy ostatni raz ktos probowal mi to udowodnic, tez twierdzil, ze nie ma zadnych nieprzenosnych wstawek. Wiec – sorry, nie uwierze dopoki nie obejrze.

A co do notacji AT&T – mozesz pokazac mi kawalek standardu, ktory mowi, ze ta notacja jest w jakis sposob standardowa?

 
zwiń wątek Thar  3 marca 2009 o godz. 15:42 #
Gravatar

@trasz: mój przykład _w ogóle_ nie odnosił się do wydajności, a do powodów używania gcc. Wymyśliłeś coś sobie a teraz powtarzasz z uporem maniaka. x264 nawet się pod msvc nie kompiluje.

 
zwiń wątek pijaczek  3 marca 2009 o godz. 15:59 #
Gravatar

@trasz: Nikt nie broni sprawdzić – aby zaoszczędzić Ci czasu sprawdź sam "render", czyli katalog "source/blender/render/" w źródłach.

Notacja AT&T obowiązuje na wszystkich platformach i tylko na x86 jest używana także notacja intela.

 
zwiń wątek puppy  3 marca 2009 o godz. 22:49 #
Gravatar

Ostatnio piszę pewien program, który stanowczo potrzebuje jak najszybszego generowanego kodu – generuje każdą kombinację znaków dla podanego charsetu i długości, dokleja do tego pierwsze 2 oraz 1 ostatni znak z md5 tej kombinacji, w notacji hex, następnie wyrzucaja na stdout [potem to zmienię na mmap ;) ]

Z ciekawości [tworzyłem w VS] przetestowałem też GCC oraz ICC, oto wyniki: http://wklej.org/id/58834/
(4 znaki, charset a-z0-9; test był powtórzony wielokrotnie)

Flagi:

<code>

GCCF:=-Wall -O2 -I../pinky/ -funroll-loops

ICCF:=/fast -I../pinky/

MSCF:=/Ox /Oi /Ot /GL /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_UNICODE" /D "UNICODE" /FD /EHsc /Gy /arch:SSE2 /W3 /nologo /TP /errorReport:prompt

</code>

 
zwiń wątek bies  3 marca 2009 o godz. 23:26 #
Gravatar

Do bani flagi gcc. Spróbuj te podane w komentarzach na LWN. Teraz nie masz nawet SSE (o ile to nie jest gcc na win64).

 
zwiń wątek pijaczek  3 marca 2009 o godz. 23:58 #
Gravatar

@puppy: Rozbawiłeś mnie ;p MSCF jest optymalizowany dobrze, a GCC jest dobrze spowalniany ;p

M.IN. Użyłeś optymalizacje poziomu 2, a nie 3, nie pozwoliłeś mu optymalizować sse2, a mscf tak (-msse2), użyłeś -funroll-loops który robi kod większy i często wolniejszy, nie użyłeś -fomit-frame-pointer (zależnie od hosta mogło akurat być automatycznie włączone z -O2).

Podsumowując poczytaj manual'a gcc na temat optymalizacji i wtedy rób testy ;p

 
zwiń wątek puppy  4 marca 2009 o godz. 16:48 #
Gravatar

Akurat loop unroll jest bardzo przydatny i przyspiesza kod – chyba że to w gcc się jakoś inaczej zachowuje, bo ogólnie się to stosuje przy optymalizacji – w msc i icc mam włączone. I fakt, po dodaniu -msse2 oraz -O3 i -fomit-frame-pointer (oraz loop unroll) szybkość wzrosła – generuje szybszy kod (przynajmniej w moim poor-man's benchmark) niż MSC, choć nadal jest w tyle za intelem. Jednak przy wywaleniu loop unrolling szybkość spada o całą sekundę i gcc nadal jest na ostatnim miejscu ;)

Zatem podsumowując: w moim przypadku intel > gcc > msc. Procesor 32bit, 1,6 ghz, ht.

 
zwiń wątek pijaczek  4 marca 2009 o godz. 18:31 #
Gravatar

@puppy: nikt tu nie neguje, że intel z nich jest najszybszy, unroll-loops jak napisałem tworzy kod wolniejszy stosunkowo często (częściej przyspiesza, ale to nie zmienia fakt, że rozwijanie pętli potrafi być szkodliwe) i to we wszystkich kompilatorach (to zależy od programu czy z unroll-loops jest szybszy czy wolniejszy), dlatego lepiej sprawdzić. Poza tymi optymalizacjami jest jeszcze wiele innych (np. -mfpmath=sse, -ffast-math), które mogą przyspieszyć działanie programu – listę optymalizacji z opisem masz pod "gcc -c –help=optimizers", a listę włączonych/wyłączonych optymalizacji masz pod "gcc -c -Q [optymalizacje] –help=optimizers"

 
zwiń wątek Maciej Piechotka  4 marca 2009 o godz. 23:19 #
Gravatar

Dodam jeszcze że na oko (tzn. patrząc na to co wypluje) -fgcse-* daje dobre efekty. Tzn. nie odkłada wartości co chwila na stos.

 
zwiń wątek bies  5 marca 2009 o godz. 1:14 #
Gravatar

No i oczywiście -march=native, PGO oraz inne drobiazgi (man gcc i odrobina inwencji bardzo pomaga). A w ogóle możesz pokazać ten program (źródła)?

 
zwiń wątek puppy  5 marca 2009 o godz. 17:51 #
Gravatar

Pokazać mogę, czemu niiii, ale wiele osób umrze jak zobaczy mój failcode ;-) więc – nie oglądać przy jedzeniu!
http://dl-client.getdropbox.com/u/28596/Stuff/pin
+ Makefile http://wklej.org/id/60404/
Na swoją obronę powiem, że pracuję nad zmianą printf w coś "troszkę" bardziej optymalnego.

 
zwiń wątek pijaczek  5 marca 2009 o godz. 20:23 #
Gravatar

akurat lepiej printf niż strumienie z c++, które są dużo wolniejsze przez synchronizację (można ją wyłączyć std::ios_base::sync_with_stdio (false);, ale i tak nie wyprzedzi printf'a).

 
 
 
 
zwiń wątek slepiec  2 marca 2009 o godz. 17:18 #
Gravatar

a ten zysk wydajności to tylko na procesorach Intela ? czy optymalizacja w tym przypadku nie jest zależna od platformy ?

(Poniżej tego poziomu komentarze nie będą zagnieżdżane)
zwiń wątek nie_sTrasz (Dee)  2 marca 2009 o godz. 20:07 #
Gravatar

Optymalizacja AFAIK nie, ale w kodzie generowanym przez ICC jest dodawane sprawdzanie, czy odpalamy to na "prawidłowym" procu. Tylko, że to już spatchowano :P

 
zwiń wątek Jabbas  2 marca 2009 o godz. 23:28 #
Gravatar

afair niezależnie od procesora – przecież w końcu Intel nie wsadza do swoich prockow dodatkowego kawałka krzemu, który to podwaja prędkość działania go – jeśli użyjesz ICC.

zwiń wątek Alinoe  2 marca 2009 o godz. 23:57 #
Gravatar

Na liście mailingowej qt znalazłem kiedyś wpis że na athlonie przy jakichś tam operacjach matematycznych icc potrafił być nawet o 60 % szybszy (choć to było chyba w czasach gcc 3 nie 4), dlatego widać że to jest raczej niezależne od procesora. Ale żeby nie było tak różowo dla icc, gcc był chyba wydajniejszy w operacjach na strumieniach o ile sie nie myle.

 
 
 
zwiń wątek seth  2 marca 2009 o godz. 17:22 #
Gravatar

Sami hakierzy pracują nad tym jądrem :P ciekawe kiedy ich pozamykają :)

(Poniżej tego poziomu komentarze nie będą zagnieżdżane)
zwiń wątek kwahoo  2 marca 2009 o godz. 17:52 #
Gravatar

taaa, a mi się podoba ten news bo używa PRAWIDŁOWEGO słownictwa, a nie jakiejś medialnej propagandy wg której haker == włamywacz.

zwiń wątek trasz  2 marca 2009 o godz. 18:03 #
Gravatar

@kwahoo: To, ze mit o rzekomo prawidlowych znaczeniach slowa 'hacker' cieszy sie w srodowiskach zwiazanych z Linuksem spora popularnoscia nie znaczy jeszcze, ze jest prawdziwy. Bo nie jest. Slowo 'haker' na okreslenie osoby wlamujacej sie do komputerow bylo uzywane juz we wczesnych latach osiemdziesiatych. A ludzie znajacy sie na komputerach zwykle okreslali sie mianem 'inzynierow', tak samo jak dzisiaj zreszta.

zwiń wątek asd  3 marca 2009 o godz. 11:59 #
 
zwiń wątek Maciej Piechotka  4 marca 2009 o godz. 23:26 #
Gravatar

Jak rozumiem np. Kevin Mitnick jest w "środowisku związanym z Linuksem"? W swojej książce (tzn. co najmniej 1) używa słowa haker w znaczeniu osoba znająca się na komputerach a nie włamywacz (z odpowiednim przypisem).

 
 
zwiń wątek mith  2 marca 2009 o godz. 19:03 #
Gravatar

Haker to osoba znająca się bardzo dobrze na programowaniu, która zna wiele sztuczek programistycznych, inaczej haków (ang. hacks). Najzwyczajniej w świecie, a że ktoś nie zna etymologii słowa, jego problem. To tak, jakby się upierać, że zamek jest tylko błyskawiczny – a kamiennych nie ma i nie było.

zwiń wątek Pablo  2 marca 2009 o godz. 20:00 #
Gravatar

Niemniej jednak uważam że seth został potraktowany niesprawiedliwie. Plus za humor!

 
zwiń wątek mith  2 marca 2009 o godz. 21:09 #
Gravatar

Ja tam gościa (chyba, w sieci nigdy nie wiadomo) nie minusowałem. Od kiedy piszę na LN, staram się w ogóle nie rozdawać ocen ;)

 
zwiń wątek Botnet Server 7  2 marca 2009 o godz. 21:51 #
Gravatar

Niektórzy nie rozumieją żartu nawet gdy są uśmiechy wstawione.

 
zwiń wątek puppy  3 marca 2009 o godz. 10:22 #
Gravatar

To ty nie rozumiesz etymologii. Słowo to powstało na jakiejś amerykańskiej uczelni (mit?) gdy studenci się włamywali do pokoi w których stały komputery.

@trasz, wyżej: Bo wannabe pokroju ESR rozsiewają takie idiotyzmy. Nie mają dosc talentu, więc wmawiają ludziom bzdury.

Smieszne jest to, niedlugo kazdy kto zrobil ./configure && make && make install bedzie hakerem. Bo uzywa luniksa i kompiluje programy!

 
zwiń wątek tadzik_  3 marca 2009 o godz. 11:36 #
Gravatar

A jakieś źródło? Bo jesteś raczej osamotniony w swojej teorii.

 
 
zwiń wątek aph  2 marca 2009 o godz. 20:13 #
Gravatar

Jak więc dziś nazwiesz ludzi, którzy byli włamywaczami i nazywali siebie hackerami zanim ruch wolnego oprogramowania (który tak chętnie sobie ten termin przywłaszczył) w ogóle się skrystalizował? Owszem, pionierzy WO mogli być jednocześnie hackerami, ale to nie znaczy, że dziś kogoś można tak nazywać, tylko dlatego, że jest zdolnym programistą.

zwiń wątek asassello  2 marca 2009 o godz. 20:52 #
Gravatar

I ci i ci są hakerami, bo zdaje się, że zarówno programiści MIT czy Harvardu nazywali się tak od lat sześdziesiątych, jak i istnieli hakerzy-włamywacze od mniej więcej tego okresu (tak przynajmniej pisze niejaki Bruce Sterling).

Niemniej jednak niezależnie od powyższego – chyba zawsze ludzi grzebiących w jakiś sposób przy jajkach nazywano albo hakerami albo andrologami.

 
zwiń wątek LV  2 marca 2009 o godz. 21:10 #
Gravatar

Problem tylko w tym, że portowanie jajka na inny kompilator to nudna robota, która nie wymaga jakichś szczególnych umiejętności programistycznych, a przede wszystkim przeczytania manuali obu kompilatorów. System jako taki się nie zmienia, kod został napisany, teraz tylko trochę dekoratorów itd. ulega zmianom, małe fragmenty zostają przepisane z pseudostandardu GNU C na ISO 9898 i tyle. Nie wiem czy ma sens nazywanie hackerem kogoś, kto wykonuje praktycznie mechaniczną robotę… Już większym wyzwaniem jest przeniesienie aplikacji z jednego systemu operacyjnego na inny, zakładając że pierwotnie przenośności nie planowano – takie rzeczy to praktycznie codzienność.

Bądźmy szczerzy, jeżeli absolwent lepszej uczelni po informatyce nie jest wstanie tego zrobić to na papier absolutnie nie zasługuje.

 
zwiń wątek mith  2 marca 2009 o godz. 21:11 #
Gravatar

Plus za andrologów ;)

 
 
 
zwiń wątek Bing  2 marca 2009 o godz. 17:58 #
Gravatar

Poczytaj kim jest haker!!

zwiń wątek Vogel  2 marca 2009 o godz. 18:22 #
Gravatar

Zaiste… Ironia to trudna rzecz…

zwiń wątek tadzik_  2 marca 2009 o godz. 19:46 #
Gravatar

Ironizować też trzeba umieć

 
zwiń wątek Rsh  2 marca 2009 o godz. 20:53 #
Gravatar

Nie no koniec świata. Jakby 'hakierzy' i emotikony nie były wystarczającą sugestią. Mam nadzieję, że te -17 punktów dla setha(na chwilę obecną) to nie jest przez niezrozumienie ironii, bo to niezbyt dobrze by świadczyło o czytelnikach OSnews.pl

 
zwiń wątek kwahoo  3 marca 2009 o godz. 20:33 #
Gravatar

A ja chcę się podzielić plusami z seth [aktualnie +59/-13]! Nie występowałem przeciwko niemu, serio.

Choć gdyby napisał:

[ironia] Sami hakierzy pracują nad tym jądrem :P ciekawe kiedy ich pozamykają :) [ironia]

to chyba by nikt minusa nie postawił…

 
zwiń wątek tadzik_  3 marca 2009 o godz. 22:33 #
Gravatar

Niektórzy mają po prostu straszną zajawę na punkcie "haker != cracker" że nawet dowcip to dla nich obraza ; )

 
 
 
zwiń wątek DeBill  3 marca 2009 o godz. 12:46 #
Gravatar

"Nieznany haker z Broadcom, który służył wiedzą i wsparciem technicznym." – To się chwali :) . Pozdrawiam bohatera :) .

Powyższą dyskusję na temat tego kim jest haker chcę nieco rozbudować. Kilka lat wstecz dość intensywnie interesowałem się owym zagadnieniem, więc dorzucę swoje trzy grosze. Otóż mniej istotne jest to 'kim' jest haker a bardziej istotna jest tzw. 'postawa hakera'. W niektórych środowiskach za hakera uznaje się człowieka, który – na ogół – posiada sporą wiedzę na określony temat oraz stara się pokonywać trudności pojawiające się podczas studiowania danego tematu dla własnej – dzikiej ;) – przyjemności. Poświęca na to dni/tygodnie/miesiące/lata, pogłębia wiedzę, próbuje obejść problem na różne sposoby. Zdarza się, że robi to dla pieniędzy (początkowo to mnie zdziwiło, że zarabianie na 'hakerstwie' jest wg wielu hakerów OK), ale najważniejsza jest satysfakcja z pokonania trudności. Znacznie mniej istotna jest dziedzina w której owy haker się porusza. Otóż nie musi to być wcale informatyka. Równie dobrze może to być elektronika, fizyka czy matematyka (itp. itd.).

Myślę, że jest to najtrafniejszy opis hakera z jakim się spotkałem. Może problem stanowi nazewnictwo – przecież haker kojarzony jest tylko z IT. Z czasem może powstaną inne nazwy innych hakerów :) .

zwiń wątek puppy  3 marca 2009 o godz. 22:19 #
Gravatar

Ostatnie zdania to bzdura, ale fajna, bo tylu ludziom bez realnej wiedzy i talentu daje szansę by się tak nazwać. Po co studiować latami, by się naprawdę nauczyć – od teraz wystarczy grać na flecie by zostać hakerem.

Eh, jeszcze raz. Hack narodziło się na określenie studentów włamujących się do sal z komputerami, by je używać. Przeczytajcie tekst tzw. "The mentor", on był znacznie wcześniej niż bicie piany do fetchmaila.

Nazywa się tak też tymczasowe poprawki w kodzie, które same w sobie wołają o pomstę do nieba, tak badziewne to rozwiązanie – doraźne, na szybko i wymaga szybkiej zmiany na coś lepiej przetestowanego. Działa – owszem, ale nic poza tym. W każdej chwili może przestać działać.

Ale hakerem nie jest _żaden_ programista tylko dlatego że zrobił jakiś projekt. To jest stricte związane z penetracją systemu by czerpać z tego korzyści*, kropka. W tym artykule nie wspomniano ani jednego hakera, mimo że wszystkich nazwano tym tytułem. Smutne, jak propaganda robi swoje.

* – niekoniecznie "realne", może to być np. sama zabawa czy nauka. Ale _nie_ chodzi tu o robienie dobrych uczynków i uczenie admina na czym polega jego praca.

zwiń wątek Maciej Piechotka  4 marca 2009 o godz. 23:38 #
Gravatar

Hmm. Zaczynam się zastanawiać czy w pewien sposób ESR (albo ktoś zapewne wcześniej) nie miał racji pisząc o 'kulturze hakerów'. Tzn. 'hakerstwo' to nie tylko znajomość programowania etc. ale także pewien hmm… styl bycia.

Jeśli chodzi o hacki to hackiem nazwałbym także 'obejście' systemu. API systemu/system nie pozwala zrobić A mimo że powinno. Hack to (m. innymi) krótki kod obchodzący to – w nieelegancki acz potencjalnie jedyny możliwy spoób.

 
 
 
 
zwiń wątek strange unknown  2 marca 2009 o godz. 17:22 #
Gravatar

Brawa dla intela. Niech się chłopaki wezmą za najnowsze jądro, wyrzucą stare, śmieciowe sterowniki, zbędne moduły i skompilują całość pod x86_64, a może coś z tego wyjdzie. Uprzedzając lament malkontentów siedzących na 486 czy k6 300 – jajko 2.4 jest dla was :) . Podejście 'x86_64 only' to przyszłość, a zachowywanie ciągłej zgodności z i386/686 to regres.

(Poniżej tego poziomu komentarze nie będą zagnieżdżane)
zwiń wątek Art  2 marca 2009 o godz. 18:11 #
Gravatar

Może nie przesadzaj z tym 2.4, aczkolwiek tak mi przyszedł pomysł do głowy, że x64bit_only mogło by być dobrym powodem do otwarcia linii 2.8.x.

Przy okazji obok userspace i kernelspace przydałby się jeszcze driverspace gdzieś pomiędzy, żeby nie zaśmiecać właściwego rdzenia sterownikami do kamer czy tunerów.

 
zwiń wątek sprae  2 marca 2009 o godz. 18:33 #
Gravatar

Niby po co? Na świecie nie istnieje tylko intel i amd produkujące najnowsze odmiany rodzin x86. Wiele sprzętu przemysłowego działa na niezależnych produktach x86 z gałęzi innych niż najnowsze. Często są to jakieś mikrokontrolery z rdzeniem 486 i zegarem 200 i więcej MHz.

zwiń wątek Marcin Juszkiewicz  2 marca 2009 o godz. 21:08 #
Gravatar

Tylko, że te urządzenia na rdzeniu 486 porażają wręcz wydajnością. Mam na biurku komputerek z procesorem Vortex86SX 300MHz i sorry ale nie znalazłem jeszcze komputera wolniejszego od niego. ARM-y są wydajniejsze od tego czegoś…

http://marcin.juszkiewicz.com.pl/2009/02/20/does-

zwiń wątek sprae  2 marca 2009 o godz. 22:49 #
Gravatar

O fajny test. Rzeczywiście mój stary Pentium ma większy transfer. Mimo wszystko pracuje znośnie na jajku 2.6.2x analizując trendy forexowe gdzieś w szafie.

Czytuje Twojego bloga i muszę przyznać, że zabawek masz co niemiara ;-) (zazdroszczę).

 
zwiń wątek Marcin Juszkiewicz  3 marca 2009 o godz. 12:07 #
Gravatar

Wiele z tych zabawek tylko 'przewija' mi się przez ręce – przychodzą i odchodzą.

 
 
zwiń wątek marcinsud  3 marca 2009 o godz. 14:05 #
Gravatar

np 8051 bardzo często spotykany w maszynach i innych urządzeniach nie nastawionych na szczególne obliczenia.

 
 
zwiń wątek Ef  2 marca 2009 o godz. 18:50 #
Gravatar

nie samym x86 człowiek żyje

zwiń wątek t3d  2 marca 2009 o godz. 19:37 #
Gravatar

No dokładnie. Właśnie miałem odpowiedzieć strange unknown że 64 bitowy ARM to przyszłość, a dla x86 powinna być tylko gałąź 2.2 :P

 
zwiń wątek abcman  2 marca 2009 o godz. 21:09 #
Gravatar

…lecz każdym słowem, które pochodzi z ust Bożych… :)

 
 
zwiń wątek Maciej Piechotka  2 marca 2009 o godz. 19:28 #
Gravatar

1. Nie sądze żeby utrzymanie kodu x86 było jakoś szczególnie kosztowne. Większość sterowników już jest. Kod do stronicowania powinien wyglądać podobnie (choć zgoda – nie identycznie).

2. x86 nadal się stosuje. Choćby komputer z którego piszę ma 32-bitowy procesor.

3. Nawet na procesorach 64-bitowych stosuje się systemy 32-bitowe z różnych powodów (hint

zwiń wątek ak47  2 marca 2009 o godz. 19:56 #
Gravatar

ad 2/3.

32 bitowy userspace wcale nie determinuje 32 bitowego kernelspace

zwiń wątek Rsh  2 marca 2009 o godz. 20:21 #
Gravatar

Swoją drogą czy jakieś mainstrimowe distro używa takiego hybrydowego rozwiązania? (przestrzeń użytkownika 32 bity, a jądro 64 bity) Wiem o System Rescue CD, które dostarcza taką opcję (dzieki temu np. można się chrootować do 64 bitowych systemów).

 
zwiń wątek http://gajownik.id.f  2 marca 2009 o godz. 20:45 #
 
zwiń wątek wiktorw  2 marca 2009 o godz. 22:32 #
Gravatar

Na pewno jest to planowane w nadchodzącej Fedorze 11 :)

 
zwiń wątek 123  3 marca 2009 o godz. 17:52 #
Gravatar

debian chyba idzie tak zainstalować

 
zwiń wątek Maciej Piechotka  4 marca 2009 o godz. 23:42 #
Gravatar

ad ad 2. Wspaniale. Ale mój 32-bitowy procesor determinuje brak 64-bitowego jądra ;) . A on na razie w zupełności mi wystarcza[1]. Jeśli chodzi o ad 3 to zgoda.

[1] Linux to nie Windows – nie ma służyć do wydawania $$$ by uruchomić nowszą wersję ;)

 
 
 
zwiń wątek mgrela  2 marca 2009 o godz. 21:28 #
Gravatar

Istotnie straszne. Wsparcie dla 32bitowych (a fuj) procesorow intela. Toz to prawie jak utrzymywanie portu linuksa na Commodore 64 !

Ja tam zawsze myslalem, ze sterowniki do kernela to sie pisze tak, zeby byly przenosne pomiedzy x86 a amd64 no ale ja to glupi jestem. Jezeli jest kolega w stanie dostarczyc liste "starych i smieciowych" sterownikow bedzie ona nieoceniona pomoca dla developerow kernela. Wszak przyslowie mawia, ze Linus bardziej nawet niz dodane linijki kodu ceni sobie usuniete linijki kodu.

Pozdrawiam,

zwiń wątek jellonek  3 marca 2009 o godz. 10:21 #
Gravatar

ale jesli 64bit kernel "kuca do miecza"* co ma miejsce na chwile obecna, to migracja "na sile" w gore jest sporym bledem. zapominasz tez ze nie kazdy obecnie uzywany procek z rodziny x86 ma rozszerzenia 64bit. dlaczego linux mialby sie kierowac tylko na jeden konkretny rodzaj sprzetu (niemal od samego poczatku byl wieloplatformowy).

*"kuca do miecza" – stara karta telewizyjna na pci, uruchomiona pod 32bit jajem/userlandem bardzo ladnie dziala – przy 64bit jaju/userlandzie, ten sam sprzet "przytyka".

 
 
 
zwiń wątek POX  2 marca 2009 o godz. 18:19 #
Gravatar

"lepiej zoptymalizowany" zabrzmiało tak, jakby coś optymalnego można było ulepszyć (nota bene nasi politycy także szukają "bardziej optymalnych" rozwiązań)

(BPANMSP – na polibudzie zbyt wiele razy odmieniałem słowo "optymalny" przez wszystkie przypadki)

(Poniżej tego poziomu komentarze nie będą zagnieżdżane)
 
zwiń wątek Linuksiarz  2 marca 2009 o godz. 20:32 #
Gravatar

Czy techniki optymalizacji IPO oraz PGO sa opatentowane przez intela?

Jesli nie to czy kompilatory z gcc (przynajmniec g++) stosuja te techniki?

Jesli nie i jesli nie sa opatentowane to kiedy gcc bedzie robic z tych technik uzytek?

Zakladam ze ludzie pracujacy nad gcc pokonczyli te same uczelnie techniczne co ludzie pracujacy nad icc….

(Poniżej tego poziomu komentarze nie będą zagnieżdżane)
zwiń wątek Linuksiarz  2 marca 2009 o godz. 20:50 #
Gravatar

Doczytalem ze GCC ma PGO a co z IPO?

Zakladam ze nie ma, ale moze ma inne heurystyki?

zwiń wątek bies  3 marca 2009 o godz. 5:18 #
Gravatar

PGO jest i działa nie najgorzej. IPO jest w drodze. Na razie można robić sztuczki.

 
 
zwiń wątek mith  2 marca 2009 o godz. 21:15 #
Gravatar

Ludzie, przecież od początku w tekście BYŁO NAPISANE, że GCC używa PGO, ale ponoć intelowski kompilator robi to lepiej. Nie mam natomiast wiedzy na temat IPO.

 
zwiń wątek LV  2 marca 2009 o godz. 21:24 #
Gravatar

Zakladam ze ludzie pracujacy nad gcc pokonczyli te same uczelnie techniczne co ludzie pracujacy nad icc….

ROTFL. Co mają uczelnie do rozwoju kompilatora, oprogramowania w ogóle? Hm, idąc tym tokiem rozumowania John Carmack nie był w stanie stworzyć cholernie optymalnych silników gier 3D bo nie ma dosyć przeciętne wykształcenie…

Przypominam, że uczelnia wyższa to nie podstawówka, gdzie wkłada się do łba informacje (jak się niektórym wydaje), a miejsce gdzie wskazuje się kierunki rozwoju i wymaga samodzielnego podążania nimi. Uczelnia nie zrobi z człowieka chociaż kiepskiego programisty…

zwiń wątek LV  2 marca 2009 o godz. 21:43 #
Gravatar

Ekhm, *'bo ma', przeklęte pisanie na raty…

 
 
zwiń wątek trasz  3 marca 2009 o godz. 9:57 #
Gravatar

@Linuksiarz: Pierwsze kompilatory potrafiace automatycznie wektoryzowac kod pojawily sie gdzies ze trzydziesci lat temu. Wektoryzacja kodu w GCC weszla kilka lat temu. Daj im troche czasu. ;-)

 
 
zwiń wątek rmrmg  2 marca 2009 o godz. 20:59 #
Gravatar

Dlaczego trzeba kernel przystosowywać do innego niż gcc kompilatora?

Przecież C jest ustandaryzowane. Wiem że są jakieś GNU rozszerzenia, które dają przedziały w case i jakieś inne cuda ale to chyba nie przez to? Czy to znaczy, że kernel nie trzyma się standardów?

(Poniżej tego poziomu komentarze nie będą zagnieżdżane)
zwiń wątek abcman  2 marca 2009 o godz. 21:12 #
Gravatar

Ogólnie rzecz biorąc, kod źródłowy kernela nie jest źródłem cnót. Jak to powiedział Torvalds: "Dijkstra chyba mnie nienawidzi…".

zwiń wątek jellonek  3 marca 2009 o godz. 10:25 #
Gravatar

bardzo delikatne okreslenie ;)

az dziw ze trasz sie nie wypowiedzial :>

 
zwiń wątek [r4]  3 marca 2009 o godz. 21:03 #
Gravatar

Napisał :) To jest w komentarzach źródeł jądra, jeśli dobrze pamiętam wieść gminną. :)

 
 
 
zwiń wątek http://fijam.eu.org/  2 marca 2009 o godz. 22:27 #
Gravatar

Polecam trzeźwiące komentarze na LWN: http://lwn.net/Articles/320795/

(Poniżej tego poziomu komentarze nie będą zagnieżdżane)
 
zwiń wątek p.  2 marca 2009 o godz. 23:25 #
Gravatar

PGO – już kilka lat temu pisali o próbach z PGO w GCC. O ile pamiętam wynik były słabe – tzn. profilowanie (eksperymentowanie) było lepsze od "zgadywania" przebiegu programu o ułamki procent. Dlatego nie zawracali sobie nim głowy.

Czy ktoś ma aktualniejsze info na temat profili w GCC?

(Poniżej tego poziomu komentarze nie będą zagnieżdżane)
zwiń wątek bies  3 marca 2009 o godz. 5:19 #
Gravatar

man gcc i /-fprofile-generate /-fprofile-use

 
 
zwiń wątek dxm  3 marca 2009 o godz. 7:12 #
Gravatar

A jak to wygląda od strony licencji na której jest jądro? Czy linker intela nie dorzuci jakiś własnościowych bebechów? A może tylko kompilator jest intela a linker już nie?

(Poniżej tego poziomu komentarze nie będą zagnieżdżane)
 
zwiń wątek Neonique  3 marca 2009 o godz. 19:45 #
Gravatar

Swego czasu pamiętam, że twórca Tiny C Compiler też chwalił się lepszym kodem wynikowym i szybszym czasem kompilacji. Jeżeli można uzyskać tak duży skok w wydajności jak można przeczytać w newsie, kosztem jedynie zmiany kompilatora to chyba warto w to zainwestować czas i środki.

(Poniżej tego poziomu komentarze nie będą zagnieżdżane)
zwiń wątek jellonek  4 marca 2009 o godz. 15:22 #
Gravatar

tcc ma zdecydowanie gorszy kod wynikowy, jak i zdecydowanie krotszy czas kompilacji.

 
 
zwiń wątek ujrytjryjry  4 marca 2009 o godz. 19:24 #
Gravatar

Mam pytanie jak widze do znawców i hakerów.

Gdzie mogę znależć najmniejszy kompilator . Taki do nauki pisania kompilatorów. Najlepiej by uzywał jednak flex i bison. Coś prostego, cos co posłuzyło by mi do nauki pisania czegos dla siebie.

Gramatyka pewnie musiała by być troche uproszczona, ale prosze o pokazanie uzytecznych linków. w google lwasciwie nic nie znalazłem,albo kobyły, albo tylko opis samego lexa

(Poniżej tego poziomu komentarze nie będą zagnieżdżane)
zwiń wątek Maciej Piechotka  4 marca 2009 o godz. 23:49 #
Gravatar

Jeśli chodzi niekoniecznie o C to na stronach llvm masz opis. Co prawda musisz kod w asm sam 'wypluć' ale rezygnując na razie z skomplikowanej alokacji rejestrów etc. wystarczy trzymać wszystko na stosie i ładować do rejestrów[1] przed operacją.

[1] Potem ewentualnie dodać alokacje rejestrów.

 
 
zwiń wątek czyjawiem  24 czerwca 2009 o godz. 13:57 #
Gravatar

Czy takie cos pojdzie pod ubuntu ii nic mi sie nie sypnie bo bym se zapakowal takie jajo

(Poniżej tego poziomu komentarze nie będą zagnieżdżane)
 

Uwaga! Niektóre komentarze, m.in. te dodane przez niezalogowanych i nowych użytkowników, są ręcznie moderowane. Jeśli Twój komentarz nie ukaże się od razu, nie dodawaj go ponownie, tylko cierpliwie poczekaj na akceptację.

W komentarzach możesz używać prostych znaczników HTML. Przykłady:
  • Link: <a href="http://osnews.pl">OSnews: niusy IT</a>,
  • Wytłuszczenie: <strong>tekst pogrubiony</strong>,
  • Kursywa: <em>tekst pochylony</em>,
  • Przekreślenie: <strike>tekst przekreślony</strike>,
  • Kod: <code>printf("blok kodu");</code>,
  • Cytat: <blockquote>cytat</blockquote>
Uwaga: jeśli dodasz nieznany znacznik, będzie on niewidoczny, gdyż system filtruje takie znaczniki.

Wszystkie autorskie niusy w serwisie publikowane są na licencji Creative Commons Uznanie autorstwa 2.5 Polska.

Twoja sugestia