2015-11-26 3 views
9

С момента обновления наших пользователей от Excel 2007 до 32-разрядного Excel 2013 наша компания столкнулась с проблемой производительности и стабильности.Ошибка Excel 2013 из-за фрагментации памяти

Нам пришлось отключить аппаратное ускорение для некоторых пользователей, изменить настройки в Панель управления \ Простота центра доступа и даже обновить драйверы графической подсистемы Intel для повышения стабильности, все с разным уровнем успеха.

Но один вопрос, который мы не можем обойти это:

32-разрядная версия Excel 2013 появляется использовать свой собственный менеджер памяти на карту с 32-битной памяти на 64-битной памяти, используемой Windows 7.

Проблема в том, что эта память будет слишком фрагментирована, Excel 2013 полностью потерпит крах.

Иногда, после всего лишь часа использования, мы видели попытку Excel 2013 по поиску блока памяти XX'Mb, и если он не может найти непрерывный блок памяти такого размера, он будет авария.

В качестве финансовой компании у нас есть лот устаревшего кода VBA в этих файлах Excel, а переход к 64-разрядному Excel 2013 приведет к еще большему количеству проблем.

Так кто-нибудь есть идеи, как исправить проблемы с памятью с помощью Excel 2013 ..?

Update

Некоторые читатели (по понятным причинам) спрашивали, почему мы не только установили 64-битную версию Excel 2013, в частности, как мы бежим 64-разрядная Windows 7

Причиной, цитируя Microsoft, является совместимость.

64-bit editions of Office 2013

«Мы рекомендуем 32-разрядную версию Управления для большинства пользователей, поскольку он более совместим с большинством других приложений, особенно сторонних надстроек. Поэтому 32-разрядная версия Office 2013 установлен по умолчанию даже в 64-разрядных операционных системах Windows ».

Наши пользователи не хотят колокола, свистки или фанки анимации. Они хотят что-то стабильное, даже с файлами Excel и VBA, которые были написаны 10 лет назад. Некоторые из этого кода даже используют двигатели расчета FORTRAN .dll, библиотеки DAO и т. Д.

И с точки зрения ИТ-поддержки нам просто нужна версия Excel, которая по-прежнему поддерживается Microsoft.

Вот почему мы сейчас используем 32-разрядный Excel 2013.

Вопрос в том, что это неприятная проблема с 32-разрядным Excel 2013 года, большинство финансовых компаний по-прежнему активно поставляют в устаревшие приложения Excel/Access ... что мы можем сделать, чтобы сделать эту среду более стабильной?

+1

фрагментация памяти не является проблемой ... R в ОЗУ стоит случайным образом. –

+0

Это не имеет большого смысла. Ваши пользователи используют 64-разрядную Windows 7? Если да, то какая возможная причина может возникнуть для * не * обновления до 64-разрядного Excel? – nagyben

+0

@PhilippSander Фрагментация памяти, безусловно, является проблемой. Если у вас должен быть непрерывный блок памяти (который является строгим требованием во многих ситуациях), и ваше виртуальное адресное пространство заполняется маленькими выделенными блоками, то даже если у вас достаточно свободных байтов в вашем адресном пространстве, вы не сможете выделять любую полезную память. – GSerg

ответ

0

«Изменения неизбежны, и те, кто быстрее адаптируется, скорее всего выживут». -Доктор.Larry Fleinhardt (Numb3rs)

После того, как вы закончите адресную память, вы сделали это из-за утечек памяти или ограничений использования. Если вы считаете, что существует проблема, подобная утечке памяти, вам нужно будет взять ее с собой Microsoft, дорогостоящий билет поддержки будет в вашем будущем. Они могут исправить это, но вы просто идете по дорогостоящему маршруту, чтобы поддерживать систему, которая ломается и/или не отвечает вашим потребностям.

Если вы считаете, что ваше лучшее решение включает в себя сохранение старого кода, то переключитесь на Excel 64-bit. Это делает 2 вещи. Это дает вам большую адресную память для работы, с которой ударяет по дороге проблемы памяти. Он также имеет добавленную стоимость смены частей программы, которые могут исправить любые проблемы, которые возникают из-за утечек памяти. Существуют и другие варианты, такие как OpenOffice/LibreOffice с интеграцией VBA (ваш пробег может отличаться).

Я предлагаю изучать язык программирования Python, который имеет модули Excel, такие как Pandas. Это мощное решение, но для его использования требуется некоторое время, но в долгосрочной перспективе вы получите большую ценность.

+3

Действительно, один из самых странных ответов, которые я когда-либо читал в законной проблеме, о которой сообщалось здесь. Кстати, эта проблема с памятью * * исправлена ​​в Excel 2016 32-бит. Проблема просто уходит. Возможно, цитата должна быть «Ошибки в Excel 2013 неизбежны, бла-бла-бла ..» !! –

1

Я также столкнулся с этим королем проблемы в своем проекте, но поскольку я управлял кодом с ключевым словом «домены», а также надлежащим образом управлял кодом памяти, как в конце функции и процедур, очистил переменные и после этого разместил события это будет на 90% меньше краха.

Смежные вопросы