Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Работа с памятью и Store
|
|||
|---|---|---|---|
|
#18+
Добрый день, товарищи! Делаю вэб приложение на ASP.NET+ EXT.NET. В приложении много такого вида кода, где привязываю данные из БД к гридам Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Проблема в том что после каждой такой процедуры занимаемая память на сервере растет, вплоть до полного объема памяти. Посоветуйте, пожалуйста, как в таких случаях нужно освобождать память. Пожалуйста, сильно не пинайте, если это просто и не достойно быть отдельной темой. Я реально ни разу не работал с памятью в ASP.NET и прибывал в наивной уверенности, что система сама все сделает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2017, 11:21 |
|
||
|
Работа с памятью и Store
|
|||
|---|---|---|---|
|
#18+
а почему ты думаешь, что проблема именно тут? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2017, 11:52 |
|
||
|
Работа с памятью и Store
|
|||
|---|---|---|---|
|
#18+
ilshatkin, профайлером его, профайлером, фас! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2017, 12:16 |
|
||
|
Работа с памятью и Store
|
|||
|---|---|---|---|
|
#18+
гарбаджколлектор.коллект() GC.Collect(); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2017, 13:24 |
|
||
|
Работа с памятью и Store
|
|||
|---|---|---|---|
|
#18+
german23, Сделал вот так, но проблема не решилась. Верно ли использовал GC.Collect();? Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2017, 16:08 |
|
||
|
Работа с памятью и Store
|
|||
|---|---|---|---|
|
#18+
hVostt, подскажи, пожалуйста, более точнее. Каким именно профайлером? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2017, 16:08 |
|
||
|
Работа с памятью и Store
|
|||
|---|---|---|---|
|
#18+
handmadeFromRu, Выяснил опытным путем. Открыл Диспетчер задач, там процесс w3wp.exe Начал делать разные действия в приложении. В итоге при обновлении любых сторов у которых код как в примере или даже проще без параметров, у процесса w3wp.exe увеличивается память от +1 мб до +20 мб. Так за несколько щелчков память достигает предела ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2017, 16:11 |
|
||
|
Работа с памятью и Store
|
|||
|---|---|---|---|
|
#18+
Давай код DatabaseAdapterUser.getExpInfo(). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2017, 17:19 |
|
||
|
Работа с памятью и Store
|
|||
|---|---|---|---|
|
#18+
НахлобучДавай код DatabaseAdapterUser.getExpInfo(). Вот код Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2017, 17:58 |
|
||
|
Работа с памятью и Store
|
|||
|---|---|---|---|
|
#18+
Решето же. Для начала попробуйте так: Код: c# 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2017, 18:10 |
|
||
|
Работа с памятью и Store
|
|||
|---|---|---|---|
|
#18+
Нахлобуч, мил-человек по твоей наводке попробовал сделать так Код: c# 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. Потестил уже вроде как лучше стало. Сейчас до дома доеду и попробую твой код. Отпишусь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2017, 18:17 |
|
||
|
Работа с памятью и Store
|
|||
|---|---|---|---|
|
#18+
диспозить надо конечно, ай ай ай ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2017, 18:54 |
|
||
|
Работа с памятью и Store
|
|||
|---|---|---|---|
|
#18+
ilshatkinНахлобуч, мил-человек по твоей наводке попробовал сделать так Почему не сделать ровно так, как я предложил? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2017, 18:56 |
|
||
|
Работа с памятью и Store
|
|||
|---|---|---|---|
|
#18+
Нахлобуч, сделаю как предложили, просто уже на радостях домой поехал с работы. Отпишусь по итогу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2017, 19:15 |
|
||
|
Работа с памятью и Store
|
|||
|---|---|---|---|
|
#18+
Нахлобуч Почему не сделать ровно так, как я предложил? Эх, что то я рано порадовался. Сделал как вы написали, но так же использование памяти безконтрольно растет. Мой код так же. Просто выдал желаемое за действительное. Может еще есть идеи как разобраться с этим? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2017, 22:40 |
|
||
|
Работа с памятью и Store
|
|||
|---|---|---|---|
|
#18+
ilshatkin Верно ли использовал GC.Collect();? нет, конечно. используй к примеру http://jetbrains.ru/products/dotmemory/ п.с. ты прям четко определил место в своем проекте что именно тут течет память - меня удивило, учитывая что ты не понимаешь как работает сборщик мусора. п.с. то что тебе посоветовал Нахлобуч 100% работает, что у тебя внутри DatabaseAdapterUser.GetSqlConnection() ? при условии конечно что именно этот твой метод течет что я сомневаюсь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2017, 23:03 |
|
||
|
Работа с памятью и Store
|
|||
|---|---|---|---|
|
#18+
ilshatkinhandmadeFromRu, Выяснил опытным путем. Открыл Диспетчер задач, там процесс w3wp.exe Начал делать разные действия в приложении. В итоге при обновлении любых сторов у которых код как в примере или даже проще без параметров, у процесса w3wp.exe увеличивается память от +1 мб до +20 мб. Так за несколько щелчков память достигает предела дык код который нахлобуч тебе написал надо везде использовать где соединения с бд если у тебя не закрывались соединения то у тебя ошибка кол-ва доступных соединений вылетела бы раньше чем память кончилась имхо, ну если у тебя там не впритык оперативки. п.с. сборщик мусора не сразу очищает за собой ресурсы..то что прирост идет эт нормально, вопрос только насколько прирост п.с. п.с. диспетчер винды ваще крайне плохой показатель ...даж встроенный в вижлу профилировщик и то информативнее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2017, 23:09 |
|
||
|
Работа с памятью и Store
|
|||
|---|---|---|---|
|
#18+
handmadeFromRu что у тебя внутри DatabaseAdapterUser.GetSqlConnection() ? при условии конечно что именно этот твой метод течет что я сомневаюсь Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Вот что внутри DatabaseAdapterUser.GetSqlConnection() ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2017, 23:11 |
|
||
|
Работа с памятью и Store
|
|||
|---|---|---|---|
|
#18+
handmadeFromRu используй к примеру http://jetbrains.ru/products/dotmemory/ Да, установил dotmemory, сел разбираться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2017, 23:21 |
|
||
|
Работа с памятью и Store
|
|||
|---|---|---|---|
|
#18+
ilshatkin, ну вот прокачаетесь когда найдете учетку памяти, заодно передавайте привет разработчикам кода и их полной не компетенции п.с. улыбнуло хранение строки соединения в сессии ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2017, 09:17 |
|
||
|
Работа с памятью и Store
|
|||
|---|---|---|---|
|
#18+
Спасибо вам добрые люди! Нашел главную дыру куда память уходила. Им оказался FastReport - генератор отчетов. Нашел с помощью dotMemory - отличная программа. handmadeFromRu, передать привет некому, сам и певец и жнец и на дуде игрец. Подскажи, пожалуйста, чем плохо хранение строки соединения в сессии и как лучше делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2017, 12:26 |
|
||
|
Работа с памятью и Store
|
|||
|---|---|---|---|
|
#18+
ilshatkinПодскажи, пожалуйста, чем плохо хранение строки соединения в сессии и как лучше делать? ну а смысл какой? у тебя что для каждой сессии свой конекшен ? обычно из конфиг файла, он в памяти всегда висит пока сайт работает. Код: c# 1. рекомендую еще посмотреть в сторону dapper.net, если у тебя голый sql, упростит маппинг на объекты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2017, 12:48 |
|
||
|
Работа с памятью и Store
|
|||
|---|---|---|---|
|
#18+
handmadeFromRuilshatkinПодскажи, пожалуйста, чем плохо хранение строки соединения в сессии и как лучше делать? ну а смысл какой? у тебя что для каждой сессии свой конекшен ? обычно из конфиг файла, он в памяти всегда висит пока сайт работает. Код: c# 1. рекомендую еще посмотреть в сторону dapper.net, если у тебя голый sql, упростит маппинг на объекты. Ну как какой, у меня на самом деле не сайт, а сервис и после авторизации у каждого пользователя/пользователей своя база данных к которой он и цепляется. dapper.net погляжу, спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.04.2017, 12:59 |
|
||
|
|

start [/forum/topic.php?fid=18&fpage=28&tid=1355541]: |
0ms |
get settings: |
7ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
14ms |
get topic data: |
5ms |
get forum data: |
2ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
| others: | 256ms |
| total: | 327ms |

| 0 / 0 |
