Rozwijanie pętli podczas kompilacji
Rozwiń pętle za pomocą @parameter for.
Rozwijanie pętli podczas kompilacji to bezpłatna lekcja Mojo Academy na CoddyKit. To lekcja 2 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Mojo Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Mojo Academy zawiera 4 lekcji w sumie.
Pętle rozwijane przez kompilator
Rozwijanie pętli oznacza, że kompilator wypisuje każdą iterację jako kod liniowy, usuwając narzut zliczania i wykonywania skoków pętli. ⚙️
Dekorator @parameter for
Umieść @parameter przy pętli for, której zakres jest znany w czasie kompilacji, a Mojo całkowicie ją rozwinie zamiast wykonywać ją w czasie działania.
@parameter
for i in range(4):
print(i)Granica musi być stała
Zakres pętli musi być wartością znaną w czasie kompilacji, aby kompilator dokładnie wiedział, ile kopii treści pętli wygenerować.
alias N = 8
@parameter
for i in range(N):
process(i)Indeks staje się stałą
W rozwiniętej pętli indeks jest w każdej kopii rzeczywistym parametrem, więc można go używać tam, gdzie dozwolone są wyłącznie wartości czasu kompilacji.
@parameter
for i in range(4):
arr[i] = i * iPo co w ogóle rozwijać pętle?
Rozwijanie usuwa wykonywane w każdej iteracji operacje skoku i zwiększania licznika, zapewniając procesorowi uporządkowany ciąg instrukcji, który może on efektywnie potokować.
Łączy się z SIMD
Rozwinięte treści pętli często zasilają operacje SIMD, dzięki czemu każda wygenerowana kopia może obsługiwać jedną grupę pasm wektora, zapewniając maksymalną przepustowość.
Indeksowanie pasm SIMD
Indeks czasu kompilacji pozwala uzyskać dostęp do poszczególnych pasm wektora SIMD, czego zwykła zmienna pętli działająca w czasie wykonywania nie zawsze potrafi dokonać.
@parameter
for i in range(4):
total += vec[i]Większy kod, szybsze działanie
Rozwijanie zamienia większy plik binarny na mniejszą liczbę wykonywanych instrukcji. To opłacalna wymiana w krótkich, często wykonywanych pętlach wewnętrznych uruchamianych miliony razy.
Nie rozwijaj wszystkiego
Rozwijanie rezerwuj dla małych, często wykonywanych pętli wewnętrznych. Rozwijanie dużych zakresów nadmiernie rozbudowuje kod i może pogorszyć wydajność pamięci podręcznej instrukcji.
Narzędzie czasu kompilacji
@parameter for to czyste metaprogramowanie: pętla nigdy nie istnieje w czasie działania, ponieważ kompilator wcześniej rozwinął ją do płaskiego kodu. 🚀
Połącz ze stałymi
Zdefiniuj granicę za pomocą aliasu, aby jedna nazwana stała określała liczbę rozwinięć. Kod pozostanie przejrzysty i łatwy do ponownego dostrojenia.
alias TILE = 4
@parameter
for i in range(TILE):
work(i)Szybkie sprawdzenie
Przypomnij sobie, co @parameter robi z pętlą for.
Podsumowanie
@parameter for rozwija w czasie kompilacji pętle o statycznie określonych granicach: indeks staje się stałą, narzut znika, a często wykonywane pętle działają szybciej. 🎯
Ucz się Mojo dzięki korepetycjom AI — za darmo
Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.
- Kursy
- 30
- Lekcje
- 120
Często zadawane pytania
Czy lekcja „Rozwijanie pętli podczas kompilacji” jest bezpłatna?
Tak — pełny tekst „Rozwijanie pętli podczas kompilacji” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Mojo Academy, przejdź na CoddyKit PRO. Kurs Mojo Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Rozwijanie pętli podczas kompilacji”?
Rozwiń pętle za pomocą @parameter for. Ćwiczysz Mojo Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Mojo Academy?
Nie wymagamy żadnego doświadczenia. Mojo Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 2 z 4.
Ile czasu zajmuje lekcja „Rozwijanie pętli podczas kompilacji”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Mojo Academy?
Tak. Każda lekcja Mojo Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- Algorytmy parametryczne
- Rozwijanie pętli podczas kompilacji
- Kompilacja warunkowa
- Ograniczenia i kontrole statyczne