Aktywne Wpisy
Korek95 +3
Doradzcie, czy kupić iPhone 14 plus za 4000 zł czy Redmi Note 12 pro za 1000 zł. Zmieniam tel co jakieś 5 lat. Moje zarobki netto to ok. 4,5k. Mam na to oszczędności, ale nigdy nie kupowałem sobie nic drogiego i ciężko mi wydać tyle pieniędzy. Jednak #iphone to jest jakaś tam forma prestiżu i dlatego marzy mi się taki telefon. Co byście zrobili na moim miejscu? Pytanie do dorosłych osób, a
Jakby ktos sie zastanawial jak to jest miec dzieci to dzisiaj zona pojechala o 4 w nocy do rodzicow bo jada na drugi koniec polski do jakiejs ciotki wiec moja corka o 4.40 postanowila obudzic tate obrzygujac mnie, siebie i pol lozka.
A to miala byc mila sobota spedzona z corka, mialem nadzieje na spanie do 8 i ogladanie kreskówek do 10 w lozku, spacer do moich rodzicow i tak to mialo
A to miala byc mila sobota spedzona z corka, mialem nadzieje na spanie do 8 i ogladanie kreskówek do 10 w lozku, spacer do moich rodzicow i tak to mialo
Potrzebuję zebrać listę plików ze wskazanej przez użytkownika lokalizacji np.
/home/user
(może ich też być wiele).Póki co mam wyszukiwanie takich pików zrobione jednowątkowo dlatego jest to dość powolne na 4 rdzeniowym procesorze i SSD.
W skrócie pseudo algorytm np. do wyszukiwania największych plików mam taki:
let foldery = Vec
let dużepliki = Hashmap> // Puste na początku
while !folder.empty():
- Otwórz pierwszy folder i wyrzuć go z wektora
- Wyświetl wszystkie jego "dzieci"
- Dla każdego dziecka(Folder albo plik, reszta jest ignorowana)
-- Folder
--- jeśliniejestwykluczony(Folder): // Tylko nazwa jest potrzebna
---- foldery.append(Folder)
-- Plik
--- jeśliniejestwykluczony(Folder):
---- Zbierz metadata tego pliku
---- jeśli Plik.len() > 100:
----- dużepliki.append(Pliki)
Myślałem nad Rayonem, ale nie wiem w jaki sposób obsłużyć zmienną folder, z której zarówno są zabierane elementy jak i dodawane.
W jaki sposób najoptymalniej to zrobić?
#rustlang #programowanie #algorytmy
- Nie wiem czemu ale pokazuje że "./" jest obecny w danym folderze i nie wiem jak to wyrzucić z wyników.
- Nie wiem jak działa wielowątkowość(build_parallel) - czy bez względu na ilość danych wejściowych jest używanych kilka wątków, czy dla każdego wejścia jeden wątek(wolałbym to pierwsze)
Jeśli będziesz miał high contention na muteksie, to możesz zrobić coś a la work stealing. Każdy wątek ma własny mutex + foldery i wykonuje ten algorytm. Jeśli jednemu wątkowi zabraknie pracy, to może ukraść kilka folderów z innego wątku i kontynuować. IIRC crossbeam-deque działa chyba w podobny sposób