Pamięć odnosi się do fizycznych urządzeń używanych do tymczasowego lub stałego przechowywania programów lub danych w celu ich wykorzystania w komputerze lub innym cyfrowym urządzeniu elektronicznym.
Czytałem więc pytanie o zmuszeniu modułu śmieciowego C # do uruchomienia tam, gdzie prawie każda odpowiedź jest taka sama: możesz to zrobić, ale nie powinieneś - z wyjątkiem bardzo rzadkich przypadków . Niestety nikt nie wyjaśnia, jakie są takie przypadki. Czy możesz mi powiedzieć w jakim scenariuszu wymuszenie zbierania śmieci …
Niedawno przeprowadziłem wywiad w Amazon. Podczas sesji kodowania ankieter zapytał, dlaczego zadeklarowałem zmienną w metodzie. Wyjaśniłem mój proces, a on wezwał mnie do rozwiązania tego samego problemu przy mniejszej liczbie zmiennych. Na przykład (nie było to z wywiadu), zacząłem od metody A, a następnie ulepszyłem ją do metody B, usuwając …
Jak rozumiem, w Javie pamięć stosu zawiera prymitywy i wywołania metod, a pamięć sterty służy do przechowywania obiektów. Załóżmy, że mam klasę class A { int a ; String b; //getters and setters } Gdzie będzie przechowywany prymityw aw klasie A? Dlaczego pamięć sterty w ogóle istnieje? Dlaczego nie możemy …
W każdym miejscu, w którym spojrzałem, jest napisane, że doublejest lepsze niż floatpod każdym względem. floatzostał przestarzały doublew Javie, więc dlaczego jest nadal używany? Dużo programuję w Libgdx, a one zmuszają cię do korzystania float(deltaTime itp.), Ale wydaje mi się, że doublełatwiej jest pracować z pamięcią i pamięcią. Przeczytałem również …
Bardzo chętnie studiuję najlepsze praktyki w zakresie hartowania przestrzeni. Na przykład przeczytałem (choć nie mogę już znaleźć tego artykułu), że niektóre podstawowe części łazików Marsa nie korzystały z dynamicznej alokacji pamięci, w rzeczywistości było to zabronione. Przeczytałem również, że staroświecka pamięć podstawowa może być lepsza w kosmosie. Patrzyłem na niektóre …
Co sprawia, że pamięć podręczna procesora jest o wiele szybsza niż pamięć główna? Widzę pewne korzyści w wielowarstwowym systemie pamięci podręcznej. Ma to sens, że wyszukiwanie w mniejszej pamięci podręcznej jest szybsze. Ale musi być coś więcej.
Usiłuję wyjaśnić komuś błędy segmentacji i zastanawiałem się nad ekranem zabijania na poziomie 256 w Pacmanie, jak jest on wywoływany przez przepełnienie liczb całkowitych i jak podobne jest zachowanie do „nieznanego stanu” często opisywanego w segmentacji wina. Chcę powiedzieć, że jest to dobry przykład tego, co nazywam „nieobsługiwanym segfaultem”, ale …
Podczas kompilowania kodu C i patrzenia na asembler wszystkie stosy rosną do tyłu w następujący sposób: _main: pushq %rbp movl $5, -4(%rbp) popq %rbp ret -4(%rbp)- Czy to oznacza, że wskaźnik bazowy lub wskaźnik stosu przesuwają się w dół po adresach pamięci zamiast w górę? Dlaczego? Zmieniłem $5, -4(%rbp)się $5, …
Chcę dowiedzieć się o wartościach zerowych lub referencjach zerowych. Na przykład mam klasę o nazwie Apple i utworzyłem jej instancję. Apple myApple = new Apple("yummy"); // The data is stored in memory Potem zjadłem to jabłko i teraz musi być zerowe, więc ustawiłem je jako zerowe. myApple = null; Po …
Ludzie, którzy są przyzwyczajeni do bezużytecznych języków, często boją się zarządzania pamięcią przez C ++. Istnieją narzędzia, takie jak auto_ptri, shared_ptrktóre obsłużą wiele zadań zarządzania pamięcią. Wiele bibliotek C ++ poprzedza te narzędzia i ma swój własny sposób obsługi zadań zarządzania pamięcią. Ile czasu spędzasz na zadaniach związanych z zarządzaniem …
Ostatnio próbowałem wyjaśnić wskaźniki w sposób wizualny, jako fiszki. Pytanie 001: To jest rysunek lokalizacji w pamięci komputera. Czy to prawda, że jego adres to 0x23452? Czemu? Odpowiedź: Tak, ponieważ 0x23452opisuje, gdzie komputer może znaleźć tę lokalizację. Pytanie 002: Czy to prawda, że znak bjest przechowywany w miejscu pamięci 0x23452? …
Można przypuszczać, że praca na niezmiennych danych z pojedynczymi przypisaniami wymaga więcej pamięci, ponieważ ciągle tworzysz nowe wartości (chociaż kompilatory pod pokrywami wykonują sztuczki wskaźnikowe, aby to nie było problemem). Ale słyszałem już kilka razy, że straty w wydajności są równoważone przez zyski w sposobie, w jaki procesor (w szczególności …
Przeglądałem programowanie w C i przeszkadza mi tylko kilka rzeczy. Weźmy na przykład ten kod: int myArray[5] = {1, 2, 2147483648, 4, 5}; int* ptr = myArray; int i; for(i=0; i<5; i++, ptr++) printf("\n Element %d holds %d at address %p", i, myArray[i], ptr); Wiem, że int może pomieścić maksymalną …
Jakie zalety literałów łańcuchowych jako tylko do odczytu uzasadniają (-ies / -ied): To kolejny sposób na zastrzelenie się w stopę char *foo = "bar"; foo[0] = 'd'; /* SEGFAULT */ Niemożność eleganckiego zainicjowania tablicy słów do odczytu i zapisu w jednym wierszu: char *foo[] = { "bar", "baz", "running out …
Pamięć (i blokady zasobów) są zwracane do systemu operacyjnego w deterministycznych punktach podczas wykonywania programu. Przepływ sterujący programu sam w sobie wystarczy, aby wiedzieć, gdzie z pewnością dany zasób może zostać zwolniony. Dokładnie tak, jak ludzki programista wie, gdzie pisać, fclose(file)gdy program z nim skończy. GC rozwiązują ten problem, ustalając …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.