|
Excel и память
|
|||
---|---|---|---|
#18+
Доброго времени суток. Столкнулся с такой проблемой. При открытие приложения Excel оно занимает 11,8 МБ памяти по диспетчеру. Далее я запускаю макрос, который: 1) в папке по умолчанию поочередно открывает все .xml-файлы 2) копирует выборочно 12 столбцов данных на лист книги, из которой запущен макрос, с небольшими косметическими изменениями. 3) полученный диапазон записывает (добавляя) в .csv-файл после 50 шага Excel занимает 1 280 МБ, и работает до тех пор пока не "отъест" все ресурсы. После чего падает. Как можно ограничить отъедание ресурсов? фаайлов 8 тысяч и 160 раз запускать вручную не слишком удобно. Ниже привел усеченный код без копирования. Для меня главное, что он работающий за одним исключением. С уважением, Федор. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2016, 11:26 |
|
Excel и память
|
|||
---|---|---|---|
#18+
Teodorix, попробуйте закрывать с явным указанием "без сохранения" Код: vbnet 1.
И попробуйте вместо очистки листа CLCSHEET.Range("A1:Z65000").Clear удалять его целиком и создавать заново. А может, лучше даже создавать новую книгу при обработке каждого файла и закрывать ее без сохранения. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2016, 13:27 |
|
Excel и память
|
|||
---|---|---|---|
#18+
Казанский, А можно поподробнее о "А может, лучше даже создавать новую книгу при обработке каждого файла и закрывать ее без сохранения." Я полагал, что команда Код: vbnet 1.
Создает новую книгу. Или вы подразумевали новый экземпляр? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2016, 14:09 |
|
Excel и память
|
|||
---|---|---|---|
#18+
TeodorixСоздает новую книгуДаже сам метод называется Open - открыть. Нет, он открывает указанную книгу. Создание новой книги происходить через метод .Add ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2016, 14:15 |
|
Excel и память
|
|||
---|---|---|---|
#18+
Казанский, спасибо за дельные советы The_Prist, спасибо за дельный пинок. Благодаря "И попробуйте вместо очистки листа CLCSHEET.Range("A1:Z65000").Clear удалять его целиком и создавать заново. А может, лучше даже создавать новую книгу при обработке каждого файла и закрывать ее без сохранения." скорость "жора" уменьшилась на 15%, однако тенденция не меняется. Видимо решение придется искать в плоскости второго экземпляра приложения. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2016, 14:39 |
|
Excel и память
|
|||
---|---|---|---|
#18+
Teodorix, Я вот не понял, приведенный пример (без копирования) тоже жрет память? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2016, 14:49 |
|
Excel и память
|
|||
---|---|---|---|
#18+
Shocker.Pro, Да, открытие xml-файла отжирает 20 МБ, которые и накапливаются. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2016, 14:51 |
|
Excel и память
|
|||
---|---|---|---|
#18+
TeodorixДа, открытие xml-файла отжирает 20 МБ, которые и накапливаются.Если убрать остальную шелуху, запись в файл и т.п., оставить чистое открытие и закрытие - тоже накапливается? Если да - происходит это на ваших специфических файлах или на любых, включая пустые. Происходит утечка, если открывать-закрывать один и тот же файл? ЗЫ: cBook.Activate там зачем? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2016, 14:58 |
|
Excel и память
|
|||
---|---|---|---|
#18+
Shocker.Pro, Оставил только открытие и закрытие. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43.
Продолжает утекать по 20 МБ / 5МБ файл. Опробовал на XLS,TXT, XLSM, XLSX файлах - почти не утекает. Прирост 2МБ на 50 файлов по 10 МБ. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2016, 15:24 |
|
Excel и память
|
|||
---|---|---|---|
#18+
Доброго времени суток. Всем спасибо за предложенные варианты. Решил проблему запуском второго экземпляра Excel'я и переносом в него всей обработки информации. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2016, 10:02 |
|
|
start [/forum/topic.php?fid=61&msg=39324321&tid=2172916]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
31ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
others: | 16ms |
total: | 150ms |
0 / 0 |