• 61 Posts
  • 249 Comments
Joined 3 years ago
cake
Cake day: May 2nd, 2022

help-circle

  • Czy jest jakiś cel rozwoju tych wszystkich klawiatur mechanicznych? Są jakieś ideały do których się dąży?

    Myślę, że jest szereg kierunków rozwoju i każdy sam definiuje sobie, czy któryś z nich go interesuje.
    Ja np. poszedłem w kierunku klawiatur programowalnych, bo mam swój fork QMK z różnymi usprawnieniami.
    Są też ludzie, których interesuje bardziej ergonomia (klawiatury dzielone/ortoliniowe), akustyka albo wygląd. Jeszcze inna nisza dąży do minimalizacji liczby klawiszy.

    Koleś na filmiku na pewno robi sobie reklamę, ale o tuningu klawiatur powiedział prawdę.
    Mi wystarcza przesmarowanie stabilizatorów, ale niektórzy wymieniają i smarują sprężyny w każdym przełączniku i wkładają na PCB różne folie/gąbki, żeby dopasować dźwięk do swoich preferencji.
    Odnośnie ideałów, kiedyś modne były przełączniki “klikające”. Dzisiaj bardziej popularne są przytłumione dźwięki (tzw. “thock”).








  • No i tak właśnie robię. Chcę napisać narzędzie, które wizualizuje flow przetwarzania jakichś danych w dość skomplikowanym systemie. Celem jest ułatwienie analizy niedziałających przypadków na maszynach deweloperów.

    Wprowadzenie takiego tracingu na poziomie kodu źrodłowego jest trywialne, ale wtedy zaczynają się pytania o wpływ na wydajność, utrzymanie tego mechanizmu, itp.

    Lepiej integrować ten mechanizm na etapie budowania kodu na maszynie dewelopera, albo jeszcze później, hookując kluczowe miejsca w gotowej binarce.
    Tak naprawdę to problem rozwiązałoby reflection z C++26, ale sporo czasu minie, zanim ta wersja pojawi się w toolchainie :-)








  • Mnie wyszło, że to nie pamięć jest wolna tylko abstrakcje systemu operacyjnego.

    To prawda, szczególnie, że koszt przełączenia kontekstu jest coraz wyższy (chociażby ze względu na meltdown/spectre itp.).

    Możliwe, że dorównałbyś autorowi, ale w rzeczywistości marnowałbyś moc obliczeniową na niwelowanie opóźnienia. Prawdopodobnie zablokowałbyś wszystkie procesy. Jądro by je kolejno odblokowywało w trakcie napływu danych.

    Tak, zablokowałbym więcej procesów, ale N czekających jednocześnie procesów otrzyma więcej danych niż jeden.
    Żeby nie być gołosłownym, odczyt 13 GB ze zmapowanego pliku z zimnym cachem dysku:

    • 1 wątek - 25.9s,
    • 2 wątki - 15,4
    • 4 wątki - 9,0s

    Spodziewam się, że io_uring byłby znacznie efektywniejszy, ale wypadałoby porównać oba przypadki z tą samą liczbą wątków zamiast sztucznie ograniczać mmapa.


  • To porównanie jest nie do końca uczciwe.
    Rozwiązanie oparte na mmap jest jednowątkowe, więc wszystkie pagefaulty potrzebne do załadowania danych spowalniają program.
    W przykładzie z kolejką IO koleś ma 6 dodatkowych workerów.

    Mogę się założyć o czekoladę z okienkiem, że dodanie kilku workerów prefaultujących z wyprzedzeniem strony z mmapowanymi danymi, przyspieszyłoby znacząco odczyt. Oczywiście io_uring będzie nadal szybszy, ale przewaga nie będzie tak znacząca.





  • Personally I can’t conceive how posting comments on websites could lead to any kind of friendship.
    We used to have much better tools to meet people online - IRC, instant messengers. Places, where you could easily switch from a group chat to 1:1 discussion with someone.

    While technically possible with some blogging sites, or platforms like Fediverse/Reddit, it requires so much effort, that few people will care to do that.

    On IRC there are still small communities of people who have known each other for 20-30 years. But in practice it has been completely replaced by Discord.