Dlaczego mój system jest tak wolny, gdy mam tak dużo pamięci RAM?

8

Mam więc komputer z 3,45 GB pamięci RAM zgodnie z moim systemem operacyjnym (XP). Mam 2 GB wirtualnej pamięci RAM.

Moja firma przesuwa Excel do granic możliwości odwoływania się do innych arkuszy, które pochłaniają wiele zasobów. Często, gdy uruchomione są obliczenia, zapisywanie itp., Program wydaje się zawieszać na czasami nawet 10 minut.

Gdy patrzę na to, na czym polega problem, zauważam, że procesor zwykle działa na poziomie około 8-12%, ale pamięć RAM ma zwykle ponad 250 000 KB. Powoduje to, że mój komputer działa wolno, co miałoby sens, gdybym miał tylko 512, a może gigabajt pamięci RAM. Wiem, że 250 000 to całkiem sporo pamięci do wykorzystania w systemie operacyjnym, ale mając w sumie 6 GB, oczekiwałbym znacznie lepszej wydajności.

Czy istnieje wyjaśnienie, dlaczego miałoby działać tak wolno?

edycja: powinienem wyjaśnić. Szukam więcej koncepcji tego nie tylko rozwiązania mojego komputera działającego powoli (to miał być tylko przykład). Byłem przekonany, że powinienem być w stanie wykorzystać prawie całą pamięć RAM, zanim zauważyłem poważne zmiany prędkości, które wpłynęłyby na cały mój system.

Zombie
źródło
Jaki masz procesor? 4 GB pamięci RAM to niewiele. W najlepszym razie średnia, ale jest to absolutna minimalna rekomendacja, której mógłbym dziś wszystkim polecić.
Darth Android,
Nie jest to „średnia w najlepszym wypadku” dla systemu z XP w wersji 32-bitowej.
Joe Internet
1
@Joe Relacja do maksymalnej pojemności systemu operacyjnego jest nieistotna - tylko związek z liczbą aplikacji, które przeciętny użytkownik używa obecnie i ilością zajmowanej pamięci. To prawda, że ​​dodanie kolejnych nie przyniesie efektu, dopóki nie zaktualizuje się do 64-bitowego systemu operacyjnego.
Darth Android,
IMO nie można usunąć kontekstu sprzętowego z „średniej”. OP działa w systemie Windows XP, który ma zalecaną minimalną pamięć RAM 128 MB, a obsługiwany minimum 64 MB. W przybliżeniu 55 razy obsługiwane minimum jest prawdopodobnie powyżej średniej.
Joe Internet

Odpowiedzi:

11

Czy niektóre z wymienionych arkuszy kalkulacyjnych mogą znajdować się w sieci LAN? Jeśli tak, jakie masz połączenie z plikami w sieci LAN (100 Mb, Gigabit, sieć bezprzewodowa itp.)?

Excel jest bardzo „czatujący”. Zwłaszcza, gdy masz do czynienia z referencyjnymi arkuszami kalkulacyjnymi i danymi rozłożonymi na różne zasoby, aplikacja może potrzebować dużo komunikacji, aby wysyłać i otrzymywać niezbędne informacje. Jeśli większość plików znajduje się w udziałach sieciowych i dyskach sieciowych, może to wyjaśniać przynajmniej część spowalniania, którego doświadczasz.

Ponadto, niezależnie od tego, ile pamięci używasz, prawdopodobnie plik excel.exe zwykle nie zajmuje tyle pamięci, ile się spodziewasz. Czy na komputerze działają inne procesy, które nie są konieczne? Wiele ikon paska zadań (obok zegara), że nie masz pojęcia, jak się tam dostali lub do czego służą?

Wreszcie wiele firm korzysta z programu Excel daleko poza jego najlepszymi funkcjami, tak jak wygląda na to, że Twoja firma (dlaczego, och, dlaczego nie korzystają z bazy danych, gdy potrzebują bazy danych i nie pozostawiają programu Excel prostym funkcjom rejestrowania i przetwarzania danych?) ?), Znalazłem, że porównując prędkość Excela na naszych starszych / wolniejszych komputerach (4-letnie komputery stacjonarne IBM 8215 i 9645) i nowszych / szybszych komputerach (6-miesięczne komputery stacjonarne, 3269, 9964), i nie ma znaczącej różnicy .

W zależności od sposobu zapisywania makr i kodu łączącego arkusze kalkulacyjne, mogą istnieć twarde ograniczenia co do szybkości, z jaką arkusz kalkulacyjny może zbierać i przetwarzać potrzebne dane.

Wszystko, co możesz zrobić, to zidentyfikować i złagodzić wszystkie możliwe punkty spowolnienia, jakie możesz, i mieć nadzieję na najlepsze.

music2myear
źródło
Wow, przybiłeś to! Właśnie zorientowałem się przy pomocy poprzedniego postu i zobaczyłem tę odpowiedź później. I tak, zgadzam się co do bazy danych. Powiedziano mi, że powodem było „ponieważ nie chcemy płacić DBA”. Zamiast tego płacą mi, że spędzam 3 godziny dziennie, obracając kciuki, czekając na Excela. Jestem pewien, że częścią problemu może być VBA, ponieważ przede wszystkim sam jestem samoukiem, ale to, co zauważam, jest prawdopodobnie bardziej problemem LAN. Dzięki!
Zombian
4
Nie ma za co. Dobrą wiadomością jest to, że mogą istnieć stosunkowo wydajne sposoby wykonywania zadań w programie Excel. Częstym zadaniem jest znalezienie liczby wierszy danych. Niektóre osoby będą szukać z góry ustalonego maksimum dla wszystkich wierszy danych, zakładając, że inne sposoby ryzykują zgłoszenie ostatniego wiersza, gdy napotkają pierwszą pustą komórkę, nie zdając sobie sprawy, że istnieją szybsze sposoby niż ręczne sprawdzenie całego zakresu, który nie zawiedzie na pierwsza pusta komórka. Inną dobrą praktyką w kodowaniu programu Excel jest ładowanie całych tabel do tablic, co utrzymuje je w lokalnej pamięci. Takie małe rzeczy sumują się i przyspieszają.
music2myear
1
Poświęć te 3 godziny dziennie na naukę SQL i teorii baz danych oraz na doskonalenie umiejętności obsługi Excel VBA. Chociaż posiadanie dedykowanego DBA jest dobre dla bardzo trudnych rzeczy lub bardzo dużych żelaznych rzeczy, nie jest zbyt trudno zacząć od czegoś takiego jak edycja SQL Server Express.
Joe Internet
1
@Joe: Lub Access (który byłby bardziej przyjazny dla firmy, ponieważ prawdopodobnie wszyscy już ją mają, ale o wiele łatwiej niż Excel migrować kiedyś do SQL Server)
BlueRaja - Danny Pflughoeft
Nie mogę wymyślić żadnej korzyści, jaką Access przyniósłby w tej sytuacji, innej niż możliwość rysowania przycisków na formularzach. Jeśli naprawdę tego potrzebujesz, Visual Studio Express jest nadal lepszym wyborem.
Joe Internet
6

Windows XP nie radzi sobie zbyt dobrze z używaniem więcej niż około 1 GB pamięci RAM. Niektóre aplikacje mogą zużywać więcej, ale żadna pojedyncza aplikacja nie może używać więcej niż 2 GB na raz, przynajmniej domyślnie - jest to największa wirtualna przestrzeń adresowa, jaką może zobaczyć aplikacja. Istnieje tryb, który pozwala na przestrzeń adresową 3 GB, ale może powodować problemy ze zgodnością wielu programów.

Jeśli twój komputer używa tylko 0,25 GB, wydaje się to dość dziwne - chyba że pamięć nie jest twoim wąskim gardłem.

Jeśli twój komputer „wydaje się zawiesić”, domyślam się, że robisz dużo dostępu do dysku twardego. To może sprawić, że problem z wykorzystaniem pamięci systemu Windows XP będzie istotny - Windows 7 jest znacznie bardziej agresywny w przewidywaniu, czego będziesz używać w najbliższej przyszłości i buforowaniu go. Windows XP nawet nie zużyje tak dużej ilości pamięci na pamięć podręczną, nie mówiąc już o próbach buforowania predykcyjnego, więc znacznie bardziej prawdopodobne jest „zepchnięcie” dysku twardego.

Jeśli to jest problem, niektóre opcje do rozważenia to ...

  1. Spróbuj użyć ramdysku, aby zminimalizować użycie dysku twardego. Umieść tam dokumenty i upewnij się, że są tam również przechowywane pliki tymczasowe. Dostępne są nawet niektóre dyski RAM, które będą używać pamięci RAM poza 4 GB, do których 32-bitowy system Windows XP może uzyskać dostęp.

  2. Użyj macierzy RAID z paskowaniem, aby poprawić wydajność dysku twardego.

  3. Użyj półprzewodnikowego dysku twardego - pamiętaj jednak, że jeśli aplikacja wykonuje dużo operacji zapisu, może to powodować nadmierne zużycie tego dysku SSD. Ponadto system Windows XP nie jest zoptymalizowany pod kątem dysków SSD - wypatruj aktualizacji obsługujących funkcję Trim.

Zasadniczo chodzi o (1) wymuszenie użycia przez system pamięci RAM lub (2, 3) zainwestowanie w sprzęt, który zmniejszy wąskie gardło w wydajności.

Steve314
źródło
Dziękuję Ci! Korzystam z profilu mobilnego, co uświadomiło mi, że odczyt / zapis na serwerze plików, nad którymi pracuję, jest prawdopodobnie dużą częścią problemu. Również dobrze udokumentowane! Dzięki jeszcze raz.
Zombian
2

Wygląda na to, że używasz 32-bitowego systemu operacyjnego (nie pytasz o to jednoznacznie w pytaniu), w takim przypadku jesteś ograniczony do 3,45 GB pamięci adresowalnej . Windows po prostu nie wie o żadnej pamięci przekraczającej ten limit.

Oznacza to, że podczas uruchamiania programów, które używają dużej ilości zasobów, będziesz stronicował na dysku przez większość czasu, ponieważ system operacyjny musi wymieniać dane w pamięci z danymi na dysku. Możesz spróbować zwiększyć rozmiar pliku strony (zakładając, że masz na myśli wirtualną pamięć RAM), ale lepiej byłoby pozwolić Windowsowi zarządzać tym.

Będziesz musiał zainstalować 64-bitowy system operacyjny, aby zyskać dodatkowe korzyści z wydajności pamięci.

ChrisF
źródło
1
Czy chcesz powiedzieć, że nawet jeśli zainstaluję 8 GB pamięci RAM na moim 32-bitowym urządzeniu, będę miał tylko 3,45 GB? a reszta nigdy nie zostanie wykorzystana?
Pacerier
1
@Pacerier - coś takiego. Istnieje limit 2 GB na proces, a limit wynika z charakteru systemu operacyjnego - 2 podniesione do 32. mocy to 4 GB, więc nie można przejść wyżej.
ChrisF,
2

Podejrzewam, że istnieje coś zupełnie innego niż obecne odpowiedzi: Zastanawiam się, czy masz zainstalowaną aktualizację „Walidacja plików pakietu Microsoft Office dla Office 2003, 2007 Office i Office 2010”.

Zapewnia dostęp do sieci plików Excel do CRAWL. Otwarcie pliku 21k zajęło mi około 1 minuty. Jak tylko spadnie, huk !, wróć do normy.

Zobacz mój post tutaj na temat błędu serwera i powiązany artykuł z bazy wiedzy, w którym odnotowano to jako „znany problem”.

/server/286427/slow-opening-of-excel-files-on-the-network

KCotreau
źródło
Łał! Brzmi intensywnie! Na szczęście korzystam z programu Excel 2010 i zauważyłem to również od miesięcy (post informował, że aktualizacja była na początku tego miesiąca). Dzięki za heads-upy. Chciałbym, żeby to nie było takie proste!
Zombian
@Zombian OK, przynajmniej sprawdziłeś. Tak, nie ma to wpływu na program Excel 2010, ponieważ problematyczna funkcjonalność aktualizacji jest wbudowana, ale nie jest niemądra jak na 2003/2007. Ta aktualizacja spowodowała, że ​​wielu profesjonalnych administratorów dużo czasu i pociągania włosów. Chciałbym też, żeby to było dla ciebie takie łatwe.
KCotreau,
1

Inne odpowiedzi wspominają rzeczy, które mogą przyczynić się do problemów, ale wydaje się, że żadna z nich nie wspomina, że Excel ma wbudowane limity pamięci; nie zużyje całej pamięci RAM komputera.

Oto niektóre z ograniczeń programu Excel:

  • Excel 5: ograniczony do 16 MB
  • Excel 95/97/2000: ograniczony do 64 MB
  • Excel 2002: ograniczony do 128 MB
  • Excel 2003: ograniczony do 1 GB zestawu roboczego, mniej dla faktycznych skoroszytów
  • Excel 2007: ograniczony do 2 GB zestawu roboczego, mniej dla faktycznych skoroszytów
  • Excel 2010: ograniczona do 2 GB 32 bitów Excel 8 terabajtów ( 8000GB ) w 64-bitowym Excel

Źródło i więcej informacji: Granice pamięci Excel , Charles Williams, Microsoft Excel MVP

Steven Noto
źródło