User Tools

Site Tools


spotkania:005:info

Współrzędne

  • Termin: 13 lutego 2014.
  • Start: 18:00
  • Miejsce: Budynek Instytutu Informatyki Uniwersytetu Wrocławskiego. Joliot Curie 15. Sala numer 141.

Zapisywać się można na tej stronie. Prosimy o wpisywanie się z imienia i nazwiska, celem łatwiejszej identyfikacji uczestników – dane te będą widoczne wyłącznie dla administratorów. Zachęcamy także do zapisania się na grupę mailingową – będą tam wysyłane przypomnienia oraz inne istotne informacje. Jeśli chcesz zgłosić prezentację, napisz do Roberta Matusewicza oraz Bartka Szurgota.

Prezentacje

Poniżej znajduje się lista zgłoszonych tematów. Nadal trwają zapisy chętnych do poprowadzenia prezentacji.


libclang: in compiler territory

fragment prezentacji Michał w trakcie prezentacji Clang to nie tylko kompilator. To także biblioteka do przetwarzania kodu źródłowego. Dzięki niej możemy m.in. korzystać z drzewa składniowego, rozwijać makra i docierać do precyzyjnej informacji o lokalizacji symboli i identyfikatorów. Stąd prosta droga do tworzenia wyjątkowych narzędzi deweloperskich.

Prowadzący: Michał Bartkowiak
Slajdy
Nagranie (screencast)


lightning talk: memory model

wśród licznych zmian C++11 wprowadza wielowątkowość do standardu. prócz elementów oczywistych, jak klasa wątku czy mutex, pojawia się model pamięci. na prezentacji pokrótce przedstawione zostaną założenia oraz konsekwencje. całość będzie podparta przykładami pokazującymi jaki kod (nie)działa poprawnie i dlaczego.

Prowadzący: Bartek 'BaSz' Szurgot
Slajdy
Nagranie (screencast)


Pozostałe materiały

Intro - slajdy

Możliwe usprawnienia do prezentowanego kodu:

  1. zastosowanie instrukcji wektorowych
  2. wyrównanie rozmiaru filtru do całkowitej wielokrotności rozmiaru instrukcji wektorowych
  3. lista to fatalny wybór dla przechowywania danych historycznych - powinien być wektor
  4. zastosowanie bufora cyklicznego w miejsce list:
    1. arytmetyka modulo dla “dużych” procesorów, z odpowiednimi instrukcjami (czytelność)
    2. zastosowanie sprawdzenia wyjścia za zakres dla mikrokontrolerów (wydajność - modulo jest przeważnie emulowane programowo)
  5. można zastosować arytmetykę stałoprzecinkową (szczególnie ważne na mikrokontrolerach)
  6. zamiast bufora cyklicznego można też zastosować wektor i “cofać” (vector::erase) zawartość tylko co jakiś czas, aby zaoszczędzić na cyklach.
  7. przydałaby się asercja upewniająca się, że rozmiar obu kontenerów jest równy
  8. boost::zip w miejsce pętli
  9. usunąć nieużywane argc i argv
  10. brak try-catcha w main()ie
  11. std::string tworzony w pętli
  12. inicjowanie przez N zamiast T{N} (T nie będącym typem prostym wymaga to c-tora nie będącego explicit)
  13. lexical_cast jest wolny - dla wydajności warto pomyśleć nad innym mechanizmem
  14. przenoszenie jest źle zrobione w c-torze
  15. przydałby się typedef Fir::value_type - dla spójności
  16. for(int…) zamiast for(vector::size_type…)
  17. for(int…) - lepiej zastosować odpowiedni c-tor
  18. c-tor nie sprawdza czy rozmiar filtru jest niezerowy

Piwo

Po spotkaniu planujemy piwkować. Aby zapewnić odpowiednią ilość rezerwacji, wpisujcie się na doodla

spotkania/005/info.txt · Last modified: 2014/02/16 21:33 by baszerr