Wierzę przez projektowaniu implementors GC, nie można przyspieszyć GC z zniweczenia. Jestem pewien, że wolą się nie martwić się o jak / kiedy GC prowadzi - traktować go tak wszechobecne Istota ochrony i czuwa nad i dla ciebie ... (łuki głową w dół, podnosi pięść do nieba) .. ,
Osobiście często jawnie ustawić zmienne null gdy skończę z nimi jako forma dokumentacji własnej. I nie deklaruje, używać, a następnie ustawić na null później - ja NULL natychmiast po ich już nie są potrzebne. Mówię wyraźnie: „Ja jestem z wami zrobić oficjalnie ... zniknie ...”
Konieczne jest uniemożliwienie w języku GC'd? Nie jest to pomocne dla GC? Może tak, może nie, nie wiem na pewno, przez projektowanie Naprawdę nie mogę go kontrolować, a niezależnie od dzisiejszej odpowiedzi z tej wersji lub że przyszłe implementacje GC może zmienić odpowiedź poza moją kontrolą. Plus, jeśli / kiedy Zerowanie jest zoptymalizowany na to trochę więcej niż fantazyjny komentarzu jeśli będzie.
Ja figura jeśli to sprawia, że moim zamiarem wyraźniejszy do kolejnej słabej głupca, który następuje w moje ślady, a jeśli to „może” potencjalnie pomóc GC czasem, wtedy warto do mnie. Głównie to sprawia, że czuję się czyste i jasne, a Mongo lubi czuć czyste i jasne. :)
Patrzę na to tak: istnieją języków programowania, aby pozwolić ludziom dać innym ludziom pomysł intencyjny oraz kompilator prośbą zadanie, co robić - kompilator zamienia ten wniosek w innym języku (czasami kilka) dla CPU - CPU (s) może dać prześmieszny co język używany, ustawienia zakładki, komentarze stylistyczne akcenty, nazw zmiennych, itd - CPU wszystko o strumieniu bitowym, który mówi to, co rejestruje i rozkazy i miejsc pamięci, aby kręcić. Wiele rzeczy napisane w kodzie nie przekształcić co spożywane przez CPU w sekwencji mamy określony. Nasz C, C ++, C #, Lisp, Babel, asemblera lub cokolwiek jest teoria, a nie rzeczywistość, napisany w sprawozdaniu z pracy. Co widać nie jest to, co masz, tak, nawet w języku asemblera.
Rozumiem mentalności „zbędnych rzeczy” (jak pustych wierszy) „są niczym innym, jak hałas i zaśmiecać kodu.” To było mnie wcześniej w mojej karierze; I całkowicie rozumiem. W tym momencie ja skłaniam się ku tym, co sprawia, że kod jaśniejsze. To nie jest tak Dodaję nawet 50 wierszy „szumu” do moich programów - to kilka linijek tu czy tam.
Istnieją wyjątki od każdej reguły. W scenariuszach z ulotnej pamięci, pamięci statycznej warunkach wyścigowych, pojedynczych, korzystanie z „nieświeży” danych i wszelkich tego rodzaju zgnilizny, że jest inaczej: trzeba zarządzać swoją własną pamięć, blokowania i znoszący tak apropos, ponieważ pamięć nie jest częścią GC'd Universe - miejmy nadzieję, że każdy to rozumie. Resztę czasu z języków GC'd to kwestia stylu, zamiast konieczności lub gwarantowany wzrost wydajności.
Pod koniec dnia, upewnij się, że rozumiesz, co kwalifikuje się do GC, a co nie; Blokada, a zużyty i powodują utratę odpowiednio; na wosk, wosk off; wdech i wydech; i do wszystkiego innego mówię: Jeśli czuje się dobrze, zrób to. Może się wahać ... tak jak powinno ...