Вы можете попробовать что-то вроде:
InputStream stream = this.getClass().getClassLoader().getResourceAsStream("/images/image.jpg");
В вашем JAR-файле у вас может быть структура каталогов:
MyJAR.jar-com (файлы классов здесь) - images ---- image.jpg
blockquote>
Это абсолютно может повлиять на память, просто взгляните на некоторые счетчики perfmon и сравните их с обеими конфигурациями.
Если на вашем сайте много файлов, меня больше интересует диск io во временной папке asp.net.
Пара вопросов ...
Почему бы не использовать несколько конфигураций?
Web.Debug.Config - Включена ли отладка Web.UAT.Config - Независимо от ваших предпочтений Web.Release.Config - Отладка отключена
Таким образом можно свести к минимуму ошибки конфигурации регрессии, например, когда разработчик проверяет файл web.config с помощью debug = "true"
В производственных системах всегда устанавливайте Debug = false. Как подсказывает флаг, значение true следует устанавливать только при отладке системы разработки.
Этот флаг не имеет ничего общего с вашей проблемой фрагментации памяти.
Флаг отладки должен иметь значение false в web.config, если Вы на самом деле не должны отлаживать приложение.
Выполнение в режиме отладки может увеличить использование памяти несколько, но это - маловероятный случай как серьезные проблемы, поскольку Вы говорите о. Однако необходимо установить его на ложь для устранения эффекта, который это имеет, и посмотрите, можно ли заметить какое-либо улучшение.
, Когда выполнено в режиме отладки, сборка "мусора" работает по-другому. Время жизни переменных расширено от, он - фактическое использование к объему переменной (чтобы быть в состоянии показать значение в отладчике). Это делает некоторые объекты живыми дольше, прежде чем они будут собраны "мусор".
компилятор не оптимизирует код при компиляции в режиме отладки и также немного дополнительных nop
, инструкции добавляются так, чтобы каждая строка кода имела по крайней мере одну инструкцию, куда точка останова может быть помещена.
Выдача исключения берет значительно дольше в режиме отладки. (Однако обычно код не должен выдавать исключения настолько часто.)
AFAIK "отладка = верный" не вызывают ситуацию, которую Вы упомянули.
я столкнулся с той же проблемой с приложением ASP.NET, которое создало изображения на лету.
, таким образом, я думаю, что у Вас есть проблема с не расположенные ресурсы.
, Если Вы развертываете свои aspx файлы с кодом - позади файлов к серверу. Это будет скомпилировано однажды, когда запрос прибудет в aspx. тогда, это будет сохранено к кэшу, пока файл не изменяется.
Scott Guthrie (менеджер группы разработчиков ASP.NET) имеет интересное сообщение об этом .
наиболее важные моменты, почему Вы не должны уезжать debug="true"
:
- компиляция страниц ASP.NET занимает больше времени (так как некоторая пакетная оптимизация отключена)
- , Код может выполниться медленнее (так как некоторые дополнительные пути отладки включены)
- , Намного больше памяти используется в рамках приложения во времени выполнения
- Сценарии и отображает загруженный с обработчика WebResources.axd, не кэшируются браузером, приводящий к большему количеству запросов между клиентом и сервером
Он также упоминает флаг <deployment retail=”true”/
> в machine.config, который позволяет глобально переопределять отладку = "истинный" флаг всех приложений, работающих на машине (например, на рабочем сервере).
Обновление : развертывание веб-приложений с debug="true"
все еще плохо, поскольку можно читать в недавнее сообщение в блоге Scott Hanselman :
Вот то, почему отладка = "верный" плоха. Серьезно, мы не шутим.
- тайм-аут выполнения запроса Переопределений, делающий его эффективно бесконечный
- , Отключает и страницу и оптимизацию JIT-компилятора
- В 1,1, приводит к чрезмерному использованию памяти CLR для отладочной информации, отслеживающей
- В 1,1, выключает пакетную компиляцию динамических страниц, ведя к 1 блоку на страницу.
- Для кода VB.NET, приводит к чрезмерному использованию WeakReferences (используемый для редактирования, и продолжите поддержку).
важное примечание: Вопреки то, чему иногда верят, устанавливая розничную продажу = "верный" в элементе, не является прямым противоядием к наличию отладки = "верный"!