Czasami podczas korzystania z naszych komputerów dzieje się coś naprawdę dziwnego, co w ogóle nie ma sensu… na przykład kopiowanie prostego obrazu do schowka i zawieszanie się komputera z tego powodu. Obraz to obraz, prawda? Dzisiejszy post SuperUser zawiera odpowiedź na zdziwiony dylemat czytelnika.
Dzisiejsza sesja pytań i odpowiedzi jest dostępna dzięki uprzejmości SuperUser - części Stack Exchange, grupy witryn internetowych z pytaniami i odpowiedziami.
Oryginalne zdjęcie dzięki uprzejmości Wikimedia .
Pytanie
Czytnik SuperUser Joban Dhillon chce wiedzieć, dlaczego skopiowanie obrazu do schowka na jego komputerze zawiesza go:
Bawiłem się niektórymi obrazami map wysokości i znalazłem ten:
( http://upload.wikimedia.org/wikipedia/commons/1/15/Srtm_ramp2.world.21600×10800.jpg )
![]()
Obraz ma rozmiar 21 600 * 10 800 pikseli. Kiedy klikam prawym przyciskiem myszy i wybieram „Kopiuj obraz” w przeglądarce (używam Google Chrome), spowalnia mój komputer, aż się zawiesza. Potem muszę ponownie uruchomić. Jestem ciekawy, dlaczego tak się dzieje. Przypuszczam, że jest to rozmiar obrazu, chociaż po zapisaniu na moim komputerze ma tylko około 6 MB. Używam również systemu Windows 8.1
Dlaczego zwykły obraz miałby zawieszać komputer Jobana po skopiowaniu go do schowka?
Odpowiedź
Dostawca SuperUser Mokubai ma dla nas odpowiedź:
„Kopiuj obraz” kopiuje do schowka dane surowego obrazu, a nie sam plik obrazu.
Surowe dane obrazu będą miały wielkość 21 600 x 10800 x 3 (obraz 24-bitowy) = 699 840 000 bajtów danych. To około 700 MB danych, które Twoja przeglądarka próbuje skopiować do schowka.
JPEG kompresuje surowe dane za pomocą algorytmu stratnego i może uzyskać całkiem dobrą kompresję. Stąd sprężony plik ma tylko 6 MB.
Powodem, dla którego powoduje to spowolnienie komputera, jest to, że prawdopodobnie wypełnia on pamięć co najmniej 700 MB danych obrazu, których przeglądarka używa do wyświetlenia obrazu, oraz kolejne 700 MB (wraz z tym, co narzut wiąże się ze schowkiem) do przechowywania go w schowku i niemałą moc obliczeniową potrzebną do konwersji obrazu do formatu, który można przechowywać w schowku.
Istnieje prawdopodobieństwo, że jeśli masz mniej niż 4 GB fizycznej pamięci RAM, te kopie danych obrazu zmuszają komputer do wyprowadzenia pamięci stronicowania do pliku wymiany, aby spełnić oba wymagania dotyczące pamięci w tym samym czasie. Spowoduje to spowolnienie programów i dostępu do dysku, ponieważ używają dysku i próbują użyć danych, które mogły właśnie zostać stronicowane.
W skrócie: nie używaj schowka do przechowywania dużych obrazów, chyba że masz dużo pamięci i trochę czasu do stracenia.
Jak ładne wykresy? Oto, co się dzieje, gdy ładuję ten obraz w Google Chrome, a następnie kopiuję go do schowka na moim komputerze z 12 GB pamięci RAM:
![]()
Zaczyna się w dolnym punkcie przy użyciu 2,8 GB pamięci RAM, ładowanie obrazu przebija go do 3,6 GB (w przybliżeniu 700 MB), a następnie kopiowanie go do schowka wzrasta do 6,3 GB pamięci RAM, zanim powróci do 4,5-cio, jakiego można by się spodziewać po programie i dwóch kopiach dość dużego obrazu.
To potężne 3,7 GB danych obrazu, nad którymi pracuje się w szczycie, co jest prawdopodobnie obrazem początkowym, ilością zarezerwowaną dla schowka i być może kilkoma buforami konwersji. To wystarczy, aby rzucić na kolana każdą maszynę z mniej niż 8 GB RAM-u.
O dziwo, robiąc to samo w przeglądarce Firefox, po prostu kopiuje obraz plik zamiast obrazu dane (bez strasznego wzrostu pamięci).
Masz coś do dodania do wyjaśnienia? Dźwięk w komentarzach. Chcesz przeczytać więcej odpowiedzi od innych zaawansowanych technicznie użytkowników Stack Exchange? Sprawdź cały wątek dyskusji tutaj .