2015-11-26 18 views
9

Od czasu aktualizacji naszych użytkowników z Excela 2007 do 32-bitowego programu Excel 2013 nasza firma musiała zmierzyć się z problemami dotyczącymi wydajności i stabilności.Program Excel 2013 ulega awarii z powodu fragmentacji pamięci.

Musieliśmy wyłączyć akcelerację sprzętową dla niektórych użytkowników, zmienić ustawienia w Panel sterowania \ Łatwość dostępu do centrum dostępu, a nawet ulepszyć sterowniki Intel Graphics w celu poprawy stabilności, wszystkie z różnym poziomem powodzenia.

Ale jeden problem nie możemy obejść to:

Wersja 32-bitowa Excel 2013 wydaje się używać własnego menedżera pamięci do map z pamięci 32-bitowej do 64-bitowej pamięci używanej przez Windows 7.

Problem polega na tym, że gdy ta pamięć stanie się zbyt mocno pofragmentowana , Excel 2013 całkowicie się zawiesi.

Czasami po godzinie użytkowania zauważyliśmy, że program Excel 2013 próbuje wyszukać blok XX'Mb pamięci, a jeśli nie znajdzie przylegającego bloku pamięci o tym rozmiarze, będzie wypadek.

Jako firma finansowa, mamy lot starego kodu VBA w tych plikach Excel, a przejście do 64-bitowego programu Excel 2013 wprowadziłoby jeszcze więcej problemów.

Czy ktoś ma pomysł, jak rozwiązać problemy z pamięcią w programie Excel 2013 ..?

Aktualizacja

Niektórzy czytelnicy (co zrozumiałe) zapytał, dlaczego nie właśnie zainstalowano 64-bitowej wersji programu Excel 2013, szczególnie jak używasz 64-bitowego systemu Windows 7.

Powodem, by zacytować Microsoft, jest zgodność.

64-bit editions of Office 2013

„Zaleca się 32-bitowa wersja pakietu Office dla większości użytkowników, ponieważ jest bardziej kompatybilny z większością innych aplikacji, zwłaszcza osób trzecich dodatki. To dlatego w wersji 32-bitowej Pakiet Office 2013 jest instalowany domyślnie, nawet w 64-bitowych systemach operacyjnych Windows. "

Nasi użytkownicy nie chcą dzwonków, gwizdów ani funky animacji. Chcą czegoś, co jest stabilne, nawet z ich plikami Excel i VBA, który został napisany 10 lat temu. Część tego kodu wykorzystuje nawet silniki obliczeniowe FORTRAN .dll, biblioteki DAO itp.

Z punktu widzenia wsparcia IT, potrzebujemy tylko wersji programu Excel, która jest nadal obsługiwana przez firmę Microsoft.

Właśnie dlatego na razie korzystamy z 32-bitowego Excela 2013.

Pytanie brzmi, że jest to nieprzyjemny problem z 32-bitowym Excel 2013, większość firm finansowych wciąż mocno zaopatruje się w starsze aplikacje Excel/Access ... co możemy zrobić, aby uzyskać bardziej stabilne środowisko?

+1

Fragmentacja pamięci nie jest problemem ... R w pamięci RAM oznacza losowe. –

+0

To nie ma większego sensu. Czy Twoi użytkownicy korzystają z 64-bitowego systemu Windows 7? Jeśli tak, to jaki mógłbyś mieć powód, aby * nie * przeprowadzić aktualizację do 64-bitowego programu Excel? – nagyben

+0

Fragmentacja pamięci w programie PHilippSander jest z pewnością problemem. Jeśli musisz mieć ciągły blok pamięci (który jest rygorystycznym wymogiem w wielu sytuacjach), a twoja wirtualna przestrzeń adresowa jest wypełniona małymi przydzielonymi blokami, wtedy nawet jeśli masz wystarczająco dużo wolnych bajtów w swojej przestrzeni adresowej, nie będziesz w stanie przydzielić dowolną użyteczną pamięć. – GSerg

Odpowiedz

0

"Zmiana jest nieunikniona, a ci, którzy najszybciej się adaptują, najprawdopodobniej przeżyją." -Dr.Larry Fleinhardt (Numb3rs)

Gdy skończy Ci się pamięć adresowa, czy to z powodu wycieków pamięci lub ograniczeń użytkowania. Jeśli uważasz, że istnieje problem, taki jak wyciek pamięci, musisz to zrobić w firmie Microsoft, drogie zgłoszenie do pomocy technicznej jest w Twojej przyszłości. Mogą to naprawić, ale idziesz po drogiej trasie, aby utrzymać system, który łamie i/lub nie spełnia Twoich potrzeb.

Jeśli uważasz, że najlepsze rozwiązanie wymaga zachowania starego kodu, przełącz się na 64-bitowy program Excel. To robi 2 rzeczy. Daje ci większą adresowalną pamięć do pracy, z której kopie puszkę po drodze dla problemów z pamięcią. Ma także wartość dodaną polegającą na zmianie części programu, która może naprawić wszelkie problemy związane z wyciekami pamięci. Istnieją inne opcje, takie jak OpenOffice/LibreOffice z integracją VBA (Twój przebieg może się różnić).

Proponuję nauczyć się języka programowania, Python, który ma moduły Excel takie jak Pandy. Jest to potężne rozwiązanie, ale wymaga trochę czasu, ale zyskujesz na wartości w dłuższej perspektywie.

+3

Naprawdę, jedna z najdziwniejszych odpowiedzi, jakie kiedykolwiek przeczytałem, na temat uzasadnionego problemu, opisana tutaj. Przy okazji ten problem z pamięcią * jest * naprawiony w 32-bitowym programie Excel 2016. Problem po prostu odchodzi. Być może cytat powinien brzmieć: "Błędy w Excel 2013 są nieuniknione, bla bla bla .." !! –

1

Mam również do czynienia z tym królem problemu w moim projekcie, ale jak udało mi się zarządzać kodem za pomocą słowa kluczowego doevents i umieścić odpowiedni kod zarządzany pamięcią jak na końcu funkcji i procedur, wyczyścić zmienne, a następnie umieścić spodziewane tak będzie o 90% mniej awarii.

Powiązane problemy