Podmiana kilku znaków w pliku i kod szybszy o 50%, albo i lepiej. Prościej się chyba nie da.
Пікірлер: 48
@pawkapawka-yv1np9 күн бұрын
Kiedyś pisząc w Borland Pascal początkowo robiłem wstawki w asemblerze, ale później zacząłem sprawdzać jaki kod wypluwa kompilator i dzięki temu nauczyłem się pisać tak, aby wynik kompilacji był bardzo wydajny. W tym czasie jeszcze studiowałem i jak oddałem program zaliczeniowy to wykładowca pytał czemu tak dziwnie piszę. Opowiedziałem jak działa ten kompilator i jaki efekt uzyskuję. Miał minę jakby nam się role zamieniły, bo mój wykład był dosyć spójny i trwał z 10 minut. Przy czym pisałem na kartce przykłady kodu w Pascalu i Asemblerze z pamięci. Byłem wtedy na etapie tworzenia komercyjnych programów a Pascalu. Dawne czasy.
@5mxg8 күн бұрын
Tą samą metodę miałem opisać :-) Na dodatek ja miałem bugi kompilatora w złożonych wyrażeniach logicznych lub w podstawianiu 32 bitowej liczby 0
@PiotrSygutPL8 күн бұрын
👍
@Edappl2 күн бұрын
Wystarczy poprawić makefile
@pierdzielak3 күн бұрын
Teraz sobie wyobrażam ludzi którzy tylko na słuch szukają w programie OS zamiast 0S (zero S) i ich zdziwienie że nic się nie znalazło :)
@__MINT_3 күн бұрын
To właśnie zero-S by nie znaleźli. To jest O-s (litera O).
@rafatomczyk36229 күн бұрын
nie polecam używać O3 na avr-gcc chyba że masz za dużo włosów na głowie. Ten kompilator w O3 nieraz generuje błędny kod i można się zdziwić
@__MINT_9 күн бұрын
Dzięki za cynk, będę czujny. Dobrym rozwiązaniem będzie praca na domyślnym -Os i przełączenie na -O3 dopiero przy finalnej wersji kodu. Jak coś się wtedy zacznie sypać, to od razu wiadomo, dlaczego.
@rafatomczyk36229 күн бұрын
@__MINT_ proponuje O2 albo Os właśnie
@cactuslist4 күн бұрын
Na O3 kompilator potrafi sobie conieco wywalic z kodu
@Rogall278 күн бұрын
A możecie polecić jakąś strone na której znajde gotowe projekty i wsady do Arduino?
@__MINT_8 күн бұрын
Nie znam takich. Wszystko piszę sam.
@Rogall278 күн бұрын
@__MINT_ Rozumiem a ja zaczynam dopiero przygodę z Arduino i każdy taki gotowy projekt niekoniecznie skomplikowany pomógłby dodatkowo oprócz teorii poznawać w praktyce język programowania.
@__MINT_8 күн бұрын
W sieci jest tego pełno, wystarczy poszukać. Wpisz [projekt] z dopiskiem "Arduino". Wyskoczy cała masa wyników.
@MarIo-rt6gk7 күн бұрын
ChatGPT
@Fabi....9 күн бұрын
👍👊
@wiktorstanek79428 күн бұрын
A jaki to oscyloskop uzywasz z fnirsi, i czy polecasz do zastosowań niewymagajacych - szukam czegos niedrogiego i nieduzego?
@__MINT_8 күн бұрын
Fnirsi 1013D. Do analogówki i cyfrówki do 20MHz w zupełności wystarcza. Jak nie zależy Ci na ultraprecyzyjnym pomiarze parametrów sygnału, to polecam ten sprzęt.
@klabun3 күн бұрын
Super
@alm4347 күн бұрын
Jest jeszcze -Ofast
@ogurrrr3 күн бұрын
I on zawiera -O3 i inne
@timwip77879 күн бұрын
Pisać bezpośrednio po rejestrach
@__MINT_9 күн бұрын
No, to właśnie robią moje funkcje. Jakbym dał tutaj digitalWrite(), to nawet z -O3 wypadłoby fatalnie, i to względem tej nieoptymalizowanej funkcji z -Os
@timwip77879 күн бұрын
Arduino nigdy nie nie będzie szczytem wydajności, nawet równiną, a raczej tylko dnem. Jest proste, ale nie wydajne.
@piotrkuranty85126 күн бұрын
A Powedz jak przyspieszyć sam kompilator arduino. Na jednym komputerze najprostszy program potrafi minutę kompilowac gdzie na innym ten sam program skompiluje i wgra za pstrykniecie palców.
@__MINT_6 күн бұрын
Wyłączyć optymalizacje, dołożyć RAMu, podkręcić procka, ograniczyć procesy w tle. Albo zmienić komputer.
@piotrkuranty85126 күн бұрын
@__MINT_ kurcze ale to kompilator jest taki zasobożerny? Mam łapka z i5 8gen i 8Gb ramu i kompilacja to jakiś horror
@__MINT_6 күн бұрын
Po prostu sprawdź, co jest tutaj wąskim gardłem. Może pamięć jest zapchana pod korek innymi procesami.
@kubakuba51535 күн бұрын
@@piotrkuranty8512 kompilator z arduino ide jest ultra wolny, projekt speediuno który zajmuje ok 98% pamięci kompiluje w ponad 2 minuty, kompilator pratformio wraz z visual studio code generuje to samo w 20 sekund
@predatormq-9a8908 күн бұрын
Btw jak sprawuje sie taki oscyloskop ? I jaki to jest model ?
@__MINT_8 күн бұрын
Fnirsi 1013D. Do analogówki i cyfrówki do 20MHz w zupełności wystarcza. Jak nie zależy Ci na ultraprecyzyjnym pomiarze parametrów sygnału, to polecam ten sprzęt.
@BogdanStefanski-c1u5 күн бұрын
Jak można w pamięci usunąć zegar programowań ?
@__MINT_5 күн бұрын
Nie rozumiem pytania
@Chapucero_Helecho8 күн бұрын
ucięło kluczową linijkę u góry 😢
@norbertjaworowski63149 күн бұрын
Sprawdź też czas przy asemblerze 🤔
@__MINT_9 күн бұрын
Nie będzie jakiejś wielkiej różnicy. Obecnie na jeden bit danych idzie niecałe 8 cykli zegara (w wersji ręcznie optymalizowanej), i kilka cykli więcej w wersji zwykłej. 4 cykle idą na sterowanie I/O, na sprawdzanie warunków i skoki pozostają niecałe 4. Ciężko zejść niżej.
@alexloktionoff68337 күн бұрын
O3 moze zwiekszyc rozmiar w 1.5 razy I sie nie zmisci. Lepiej dodac _attribute_ O3 tylko do niezbednych funcie w codzie
@__MINT_7 күн бұрын
Albo szybki kod, albo mały rozmiar, nie można mieć wszystkiego. Ale jak komuś się chce, to można decydować dla każdej funkcji.
@alexloktionoff68337 күн бұрын
@@__MINT_ no tak ale dla całego projektu to raczej zabardzo.
@wilcekmay90522 күн бұрын
kup ESP32 xD a przy okazji na mikrokontrolerach akurat rozmiar kodu ma znaczenie więc polecam optymalizacje
@__MINT_2 күн бұрын
ESP32 to inna bajka, i po części pójście na łatwiznę. To ma być wyzwanie, takie jak optymalizacje do granic możliwości na AVR. Dopóki kod mieści się w pamięci, jego rozmiar nie ma znaczenia
@wilcekmay9052Күн бұрын
@@__MINT_ tak, ale jak będziesz mieć wypchaną pamięć, a potem będziesz chciał dołączyć coś do kodu, np jakiś kolejny czujnik, to się nagle okaże że trzeba refactor całości robić, a to będzie bardzo czasochłonne. Nie lepiej od razu pilnować by nie był niepotrzebnie duży?
@__MINT_Күн бұрын
Wszystko zależy od tego, jak sobie rozplanujesz projekt. Ja zazwyczaj z góry wiem, czego od niego oczekuję, i od samego początku staram się optymalizować kod. Nie dokładam kolejnych, wcześniej nieplanowanych elementów.
@SloikOgorkow9 күн бұрын
chodzi jak złułf i pływający
@TPGxyz8 күн бұрын
Lepiej użyć clang z flagą -Oz
@__MINT_8 күн бұрын
W dokumentacji pisze, że -Oz zmniejsza rozmiar wynikowego wsadu jeszcze bardziej od -Os. A nie o to tutaj chodzi, równie dobrze wsad może 32KB zająć, ale ma chodzić jak najszybciej się da. Nie chcę widzieć na oczy rzeczy typu użycie pętli (czyli instrukcji warunkowej) aby przesunąć 16 bitową zmienną o 4 bity w lewo (takie przekręty robił avr-gcc). Daje się 4 razy add i adc, i zrobione