W artykułach o sprytnym kodzie i mikrooptymalizacjach postawiłem tezę, że często większa wydajność kodu, którą usprawiedliwiamy zmniejszenie czytelności, jest fikcją. Aby to stwierdzić potrzebujemy danych. Tymi danymi są czas wykonania aplikacji i kod asemblerowy generowany przez kompilator. Dzisiaj opiszę narzędzie przeglądarkowe pozwalające nam analizować właśnie kod asemblerowy. A jest nim Compiler Explorer.
Continue readingKategoria: Bez kategorii
Mikrooptymalizacje są bez sensu
Poza próbą napisania jak najsprytniejszego kodu robiącego wszystko w jednej linijce o czym pisałem ostatnio, drugim największym grzechem programistów C jest próba optymalizowania wszystkiego i wszędzie. Jest to koronny argument usprawiedliwiający nieczytelny kod. A ta optymalność bardzo często jest fikcją. Nie jest poparta żadnymi pomiarami dla naszego konkretnego przypadku. Bazuje tylko na legendach i przekazach ustnych kultywowanych przez kolejne pokolenia programistów C. O ile kiedyś – w zamierzchłych czasach – te zasady miały jakiś sens, teraz najczęściej kompilatory mogą wykonać tą robotę za nas. Albo nie musimy w ogóle się tym przejmować, bo już nam wystarczy RAMu. A my możemy cieszyć się kodem, który da się rozczytać.
Continue readingZapowiedź BitConf 2019, do wygrania darmowe bilety
Zapraszam Was na 20 września 2019 do Bydgoszczy, gdzie odbędzie się konferencja BitConf, na której będę miał przyjemność wystąpić. Jedna ze ścieżek będzie dotyczyła systemów embedded. To święto dla naszej społeczności, ponieważ do tej pory mimo, że firm działających w branży było coraz więcej, niechętnie dzieliliśmy się publicznie naszymi doświadczeniami na konferencjach w Polsce. Zdarzały się pojedyncze wystąpienia, jakieś mniejsze eventy, ale nie przypominam sobie całej ścieżki na temat embedded. BitConf 2019 będzie więc nie tylko okazją do posłuchania na żywo osób z branży, ale również do wymiany doświadczeń w kuluarach i budowania społeczności. Pokażmy więc, że jest zainteresowanie taką tematyką.
Konkurs
Mam do rozdania dwa darmowe bilety na BitConf. Z tej okazji przygotowałem mały konkurs. Aby wziąć w nim udział należy:
- Zapisać się na Newsletter ucgosu.pl – >>LINK<<
- Opisać jakąś ciekawostkę, projekt (najlepiej własny), newsa itp. związane z systemami embedded i wysłać do mnie mailem
- Jedna osoba może wysłać kilka zgłoszeń
- Ostateczny termin wysyłania zgłoszeń – piątek 23.08.2019 godz. 23.00
Autorów dwóch najciekawszych ciekawostek nagrodzę biletami na BitConf. Dodatkowo ciekawostki opublikuję na blogu albo na Facebooku. Dlatego najlepiej w mailu dodajcie od razu informację o autorze, którą mogę umieścić we wpisie (imię i nazwisko/nick/anonim, czy chcecie dodatkowo mail, adres do strony/githuba).
Tablice przyspieszające wyszukiwanie elementów
Kolejnym – po Lookup Table – tematem związanym z tablicami, którym się zajmę jest przyspieszenie wyszukiwania elementów. Zwykle nasze możliwości w tym zakresie ograniczają się do podawania indeksu tablicy albo wyszukiwania w pętli. Możemy jednak przyspieszyć te operacje wykorzystując dodatkowe tablice z mapowaniem indeksów, albo skorzystać z hash table.
Continue readingInterfejsy w C
Poprzednio pisałem o obiektowości w C, dzisiaj kolej na kolejny wzorzec zapożyczony z języków wyższego poziomu – interfejsy. W tym artykule opiszę jak je implementować w C i jakie dzięki temu możemy odnieść korzyści.
Continue reading