Почему моя система такая медленная, когда у меня так много оперативной памяти?

8

Итак, у меня есть компьютер с 3,45 ГБ оперативной памяти в соответствии с моей ОС (XP). У меня 2 ГБ виртуальной оперативной памяти.

Моя компания расширяет возможности Excel, ссылаясь на другие рабочие листы, что израсходует много ресурсов. Часто во время выполнения вычислений, сохранения и т. Д. Программа иногда зависает на целых 10 минут.

Когда я смотрю, в чем проблема, я замечаю, что процессор обычно работает на 8-12%, а объем оперативной памяти обычно составляет 250 000 КБ. Это заставляет мой компьютер работать медленно, что будет иметь смысл, если у меня будет только 512 или, может быть, гигабайт оперативной памяти. Я знаю, что 250000 - это довольно много памяти для ОС, но имея всего 6 ГБ, я бы ожидал гораздо лучшей производительности.

Есть ли объяснение, почему это будет работать так медленно?

редактировать: я должен уточнить. Я ищу больше концепции, которая стоит за этим, а не просто решение для моего компьютера, работающего медленно (это должно было стать примером). Я чувствовал, что должен иметь возможность использовать почти всю свою оперативную память, прежде чем замечать серьезные изменения скорости, которые могут повлиять на всю мою систему.

Zombian
источник
Какой процессор у вас есть? Кроме того, 4 ГБ оперативной памяти не так много. Среднее в лучшем случае, но это самая минимальная рекомендация, которую я бы дал сегодня всем.
Дарт Андроид
Вряд ли это «в среднем в лучшем случае» для системы с 32-битной XP.
Джо Интернет
1
@Joe Отношение к максимальной емкости ОС не имеет значения - только отношение к количеству приложений, которые средний пользователь использует в эти дни, и к тому, сколько памяти они занимают. Правда, добавление еще не будет иметь никакого эффекта, пока он не перейдет на 64-битную ОС.
Дарт Андроид
ИМО, вы не можете удалить контекст hw из «среднего». OP работает под управлением Windows XP, у которой рекомендуемый минимум ОЗУ составляет 128 МБ, а поддерживаемый минимум - 64 МБ. Таким образом, поддерживаемый минимум примерно в 55 раз, вероятно, выше среднего.
Джо Интернет

Ответы:

11

Могут ли некоторые из этих электронных таблиц быть в локальной сети? Если да, то какое у вас соединение с файлами в локальной сети (100 Мбит, Гигабит, беспроводной и т. Д.)?

Excel очень "болтливый". Особенно, когда вы имеете дело со справочными таблицами и данными, распределенными по различным ресурсам, приложению может потребоваться много информации для отправки и получения необходимой информации. Если большинство файлов находятся на общих сетевых ресурсах и сетевых дисках, это может объяснить, по крайней мере, часть медлительности, которую вы испытываете.

Кроме того, независимо от того, сколько памяти вы используете, вы, вероятно, обнаружите, что файл Excel.exe обычно не занимает столько памяти, сколько вы ожидаете. Есть ли другие процессы, которые выполняются на вашем компьютере, которые не нужны? Много значков на панели задач (рядом с часами), которые вы не представляете, как они туда попали или для чего они нужны?

Наконец, многие компании используют Excel далеко за пределами своих лучших функций, как, кажется, делает ваша компания (почему, о, почему они не используют базу данных, когда им нужна база данных, и оставляют Excel для простых функций записи и обработки данных ??? ?), Я обнаружил, что при сравнении скорости Excel на наших старых / более медленных компьютерах (4-летние настольные компьютеры IBM 8215 и 9645) и более новых / более быстрых компьютерах (6-месячные настольные ПК, 3269, 9964), и нет существенной разницы ,

В зависимости от того, как написаны макросы и код, соединяющий электронные таблицы, могут существовать жесткие ограничения в отношении того, насколько быстро эта электронная таблица может собирать и обрабатывать необходимые данные.

Все, что вы можете сделать, это определить и смягчить все возможные моменты медлительности, которые вы можете, и надеяться на лучшее.

music2myear
источник
Вау, ты это прибил! Я только что понял это с помощью предыдущего поста и увидел этот ответ позже. И да, я согласен с базой данных. Мне сказали, что причина была "потому что мы не хотим платить DBA". Вместо этого они платят мне, чтобы я тратил 3 часа в день, крутя мои пальцы в ожидании Excel. Я уверен, что частью проблемы может быть VBA, так как я в основном тоже самоучка, но то, что я замечаю, это, скорее, проблема локальной сети. Спасибо!
Zombian
4
Всегда пожалуйста. Хорошей новостью является то, что в Excel могут быть относительно эффективные способы работы. Обычная задача - найти количество строк данных. Некоторые люди будут искать предустановленный максимум для всех строк данных, предполагая, что другие способы рискуют сообщить последнюю строку, когда они сталкиваются с первой пустой ячейкой, не осознавая, что есть более быстрые способы, чем ручная проверка всего диапазона, который не дает сбоя при первая пустая ячейка. Еще одна хорошая практика в кодировании Excel - загрузка целых таблиц в массивы, что позволяет хранить их локально в памяти. Такие мелочи складываются и помогают ускорить процесс.
music2myear
1
Потратьте эти 3 часа в день на изучение теории SQL и баз данных, а также на то, как улучшить свои навыки в Excel VBA. Хотя наличие выделенного администратора базы данных хорошо для очень сложных вещей или очень больших железных вещей, не так уж сложно начать работать с чем-то вроде выпуска SQL Server Express.
Джо Интернет
1
@Joe: Или Access (который был бы более дружественным для компании, потому что, вероятно, все они уже установили его, но гораздо легче, чем Excel, когда-нибудь перейти на SQL Server)
BlueRaja - Дэнни Пфлугхофт
Я не могу придумать ни одного преимущества, которое Access мог бы принести в этой ситуации, кроме возможности рисовать кнопки на формах. Если вам это действительно нужно, Visual Studio Express по-прежнему будет лучшим выбором.
Джо Интернет
6

Windows XP не очень хорошо справляется с использованием более 1 ГБ ОЗУ. Некоторые приложения могут использовать больше, но ни одно приложение не может использовать более 2 ГБ одновременно, по крайней мере по умолчанию - это самое большое виртуальное адресное пространство, которое может видеть приложение. Есть режим, который позволяет адресное пространство 3 ГБ, но это может вызвать проблемы совместимости для большого количества программного обеспечения.

Если ваша машина использует только 0,25 ГБ, это выглядит довольно странно - если только память не является вашим узким местом.

Если ваша машина «зависает», я думаю, что у вас много доступа к жесткому диску. Это может сделать проблему использования памяти Windows XP актуальной - Windows 7 гораздо более агрессивна в отношении прогнозирования того, что вы будете использовать в ближайшем будущем, и кеширования. Windows XP даже не будет использовать столько памяти для кеша, не говоря уже о том, чтобы попытаться выполнить прогнозное кеширование, так что у вас гораздо больше шансов «разбить» жесткий диск.

Если это проблема, некоторые варианты для рассмотрения ...

  1. Попробуйте использовать виртуальный диск, чтобы минимизировать использование жесткого диска. Поместите документы туда и убедитесь, что все временные файлы также хранятся там. Есть даже несколько доступных виртуальных дисков, которые будут использовать оперативную память за пределами 4 ГБ, к которым 32-битная Windows XP может получить доступ.

  2. Используйте массив raid с чередованием, чтобы улучшить производительность жесткого диска.

  3. Используйте твердотельный жесткий диск, но имейте в виду, что если ваше приложение выполняет много операций записи, это может привести к чрезмерному износу этого SSD. Кроме того, Windows XP не оптимизирована для твердотельных накопителей - ищите обновления для поддержки Trim.

По сути, идея заключается в том, чтобы (1) заставить вашу систему использовать ОЗУ или (2, 3) инвестировать в оборудование, которое уменьшит узкие места вашей производительности.

Steve314
источник
Спасибо! Я использую перемещаемый профиль, и это заставило меня понять, что чтение / запись на сервер для файлов, над которыми я работаю, является, вероятно, большой частью проблемы. Кроме того, хорошо задокументировано! Еще раз спасибо.
Zombian
2

Похоже, вы используете 32-разрядную операционную систему (вы не говорите наверняка в вопросе), в этом случае вы ограничены 3,45 ГБ адресуемой памяти. Windows просто не знает ни о какой памяти выше этого предела.

Это означает, что при запуске программ, которые используют много ресурсов, вы будете большую часть времени выполнять подкачку на диск, поскольку ОС вынуждена обмениваться данными в памяти с данными на диске. Вы могли бы попытаться увеличить размер вашего файла подкачки (предполагая, что вы подразумеваете под виртуальной памятью), но вам лучше позволить Windows справиться с этим.

Вам нужно будет установить 64-битную операционную систему, чтобы получить какие-либо преимущества в производительности вашей памяти.

ChrisF
источник
1
Вы хотите сказать, что даже если я установлю 8 ГБ оперативной памяти на моем 32-битном компьютере, у меня будет только 3,45 ГБ? а остальное никогда не будет использовано?
Pacerier
1
@Pacerier - что-то в этом роде. Для каждого процесса существует ограничение в 2 ГБ, а ограничение связано с характером ОС - 2, повышенное до 32-й мощности, составляет 4 ГБ, поэтому вы не можете пойти выше.
ChrisF
2

Я подозреваю что-то совершенно иное, чем текущие ответы: мне интересно, установлено ли у вас обновление «Проверка файлов Microsoft Office для Office 2003, 2007 Office и Office 2010».

Он сводит сетевой доступ к файлам Excel до CRAWL. Мне понадобилось около 1 минуты, чтобы открыть файл 21k. Как только он сорвется, взорвитесь!

См. Мой пост здесь о сбое сервера и соответствующую статью базы знаний, в которой это отмечено как «известная проблема».

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

KCotreau
источник
Вот Это Да! Это звучит интенсивно! К счастью, я использую Excel 2010, и я уже несколько месяцев замечаю это (в сообщении говорится, что обновление было в начале этого месяца). Спасибо за головы, хотя. Я бы хотел, чтобы все оказалось так просто!
Zombian
@Zombian Хорошо, по крайней мере, вы проверили. Да, это не влияет на Excel 2010, так как проблематичные функциональные возможности обновления встроены, но не такие глупые, как в 2003/2007. Это обновление вызвало у профессиональных админов много времени и усилий. Я также хотел бы, чтобы это было так легко для вас.
Котро
1

В других ответах упоминаются вещи, которые могут повлиять на ваши проблемы, но ни в одном из них не упоминается, что в Excel есть ограничения встроенной памяти; он не будет использовать всю оперативную память ПК.

Вот некоторые из ограничений, которые имеет Excel:

  • Excel 5: ограничено до 16 МБ
  • Excel 95/97/2000: ограничено до 64 МБ
  • Excel 2002: ограничено до 128 МБ
  • Excel 2003: ограничен рабочим набором 1 ГБ , меньше для реальных рабочих книг
  • Excel 2007: ограничен рабочим набором 2 ГБ , меньше для реальных рабочих книг
  • Excel 2010: ограничено 2 ГБ в 32-разрядном Excel, 8 терабайт ( 8000 ГБ ) в 64-разрядном Excel

Источник и дополнительная информация: ограничения памяти Excel , Чарльз Уильямс, Microsoft Excel MVP

Стивен Ното
источник