Тот же код C # медленнее в приложении ASP.Net по сравнению с приложением Winforms на той же машине - PullRequest
2 голосов
/ 15 сентября 2010

У нас есть функция в C #, которая использует метод декомпрессии ICSharpCode SharpZipLib BZip2 для распаковки некоторого XML, который мы получаем из базы данных. На двух наших веб-серверах (Win 2K и Win 2003 Svr) мы заметили проблему, заключающуюся в том, что выполнение этого кода занимает очень много времени и приводит к максимальной загрузке ЦП на этих серверах. Мы изолировали код и поместили его в приложение Winforms для тестирования, и при запуске этого же кода в приложении winforms на тех же машинах код работает намного быстрее. Это с той же сборкой SharpZipLib.

Пока что мы не знаем, почему код работает намного медленнее в процессе asp.net.

Есть предложения, идеи?

Заранее спасибо!

Ответы [ 3 ]

1 голос
/ 15 сентября 2010

Вы пытались просмотреть код в профилировщике, например RedGate ANTS Performance Profiler , чтобы увидеть, что делает код?

Код, размещенный внутри приложения ASP.NET, запускается в совершенно иных условиях, чем приложение WinForm. Вы можете столкнуться с проблемами ThreadPool при загрузке через рабочий процесс IIS.

Возможно, вы столкнулись с проблемой, когда ваш код не был предварительно скомпилирован в приложении ASP.NET.

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

1 голос
/ 15 сентября 2010

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

0 голосов
/ 15 сентября 2010

Убедитесь, что вы создаете веб-проект и скомпилируйте его для сборки выпуска. (Сборка -> Диспетчер конфигурации)

...